Prototype: USB infrared remote control receiver/transmitter

The most recent documentation is now on the wiki.

UPDATE: there is now a USB IR Toy v2!

Infrared remote controls are ubiquitous, they’re used everywhere but we don’t give them much thought. The goal of this project is to investigate the invisible signals emitted by remote controls.

This IR hacking tool can visualize infrared signals on a Java logic analyzer, record and replay infrared signals, and decode them. USB infrared remote control receiver transmitter is a mouthful, so we just call it the USB IR Toy.

  • Control your computer with a remote using the IR decoder mode
  • Visualize IR remote signals on a PC logic analyzer
  • Raw IR IO mode receives, transmits, and clones IR signals
  • Play the TV-B-Gone TV POWER codes
  • USB upgradable
  • Open source code and hardware

You can get an assembled USB IR Toy for $20, including worldwide shipping. Seeed Studio is currently hosting a preorder. The hardware will be manufactured the first week of February, but it might not get packed and shipped until later in February due to the Chinese New Year holiday.

Read about the design after the break.


There’s lots of interesting infrared projects on the web. Serial port infrared PC remote control decoders have been popular for years, Ian published a USB version at Hack a Day. Jremin recently demonstrated an inexpensive wireless connection using an IR LED and receiver pair.  The TV-B-Gone is a popular kit that turns most TVs off by transmitting POWER codes with infrared LEDs. The IR Toy combines all these projects into an upgradable USB dongle, with some extra functions, like a simple logic analyzer that visualizes remote control signals.


Click for a full size schematic image [PNG]. Schematic and PCB are done in the freeware version of Cadsoft Eagle, download the project from our Google Code project page.


The Design is based on a 28pin PIC 18F2550 with USB. This chip is used in lots of hobby projects that need USB.

It runs at 5volts, so power is taken directly from the USB port without regulation. This 28pin chip has a single power supply pin that gets a 0.1uF decoupling capacitor (C1). The USB features require a 20MHz external oscillator (Q1, C5, C6).

The chip is initially programmed thorough a 5pin ICSP header. A 10K pull-up resistor (R1) and a diode (D1) on the MCLR pin protect the rest of the circuit from the 13volt signal used during programming.

An indicator LED (I) displays power, USB, and infrared mode status. The UART pins are exposed for debugging, and could be re-purposed as a serial port or general purpose IO.


The USB transceiver has an internal 3.3volt regulator that requires a 220nF (0.22uF) external capacitor. We always use two 0.1uF capacitors instead because they’re so common. You could use a single 0.22uF capacitor in C3 and omit C2, as the manufactured version does.

We used a USB MINI-B connector (J1). This is a somewhat difficult part to solder. We initially tried a PCB-edge connector, but normal circuit boards aren’t thick enough for solid contact.

Infrared receiver

An infrared receiver (RX) detects infrared remote control transmissions. We used a receiver centered at 38kHz, but it will work over a large range of frequencies that includes 56kHz.

The receiver connects to a PIC pin with an edge selectable interrupt (RB2/INT2) so we can detect the start of IR activity. RB2 has a Schmidt trigger to ‘clean up’ a noisy signal.  The RX output is also connected to one of the interrupt-on-change pins (RB4) if you want to experiment with a different interrupt type and a TTL pin buffer.

Infrared transmitter

An infrared LED (TX) is used to transmit signals. An infrared LED is like any other LED, with its color centered around 940nm. Current limiting resistor R4 gives the LED 20mA, though you could probably mod it with a smaller resistor for increased range (key calculation constants: 5volt supply, 1.5volts forward voltage).

Most IR ’emitters’ are rated for short bursts of up to 100mA, but a PIC pin can only source 20mA. We put an NPN transistor (T1) between the PIC and the LED so the IR Toy can handle higher loads. Resistor R5 limits the current pulled though the PIC pin and dumped into the transistor base.

The transistor is connected to a PIC pin with a hardware pulse-width modulator. The PWM hardware makes it easy to create infrared pulses at frequencies visible to IR receivers.


We used the freeware version of Cadsoft Eagle to make the schematic and PCB. Download the latest designs and firmware from the project Google Code page. Seeed Studio sells the extra PCBs from our order.

The PCB is small and tightly packed, but it’s not too difficult to solder. We found the SMD USB jack to be the most difficult part to solder because it’s so close to the PIC.


Click for a full size placement image.

Part Value
C1-C4 0.1uF capacitor (0805)
C5,C6 27pF capacitor (0805)
D1 Small signal diode (DO323)
IC1 PIC 18F2550-i/so (SOIC28W)
ICSP 0.1″ pin header (1×05)
J1 USB MINI-B jack (SMD)
Q1 20MHz crystal (SMD/HC49UP)
R1 10,000 ohm resistor (0805)
R2 2700 ohm resistor (0805)
R3 390 ohm resistor (0805)
R4 180 ohm resistor (0805)
R5 1000 ohm resistor (0805)
T1 NPN transistor, hfe 30+, 200mA+ (0805)
I indicator LED (0805)
RX 5volt 38kHz IR receiver (eg: TSOP38238)
TX ~940nm, 20mA IR LED (5mm)
S1 small tactile switch (optional)


The firmware is written in C and compiled with the free Microchip C18 compiler. You can download the latest files from our Google Code project page.  The v1 firmware has three primary modes: logic analyzer, raw input/output, and an IRman compatible remote control decoder.

We used the Microchip USB stack to run the 18F2550 as a virtual serial port. Microchip’s code is open but not redistributable. If you want to compile the source, download the stack from Microchip, then drag the IR Toy source code into the install directory. See the detailed instructions at the top of main.c.

An alternate firmware plays TV POWER codes from the TV-B-Gone by Mitch Altman and Limor Fried, released under Creative Commons Attribution Share Alike. All files retain their original license.


You don’t need a driver to use the USB IR Toy, but you will need a .inf file to tell Windows how to use the device. A suitable .inf is included in the project archive.

The virtual serial port (CDC) is an open standard, it should work on any modern operating system. We’ll post link to instructions for Linux and Mac in the IR Toy manual.

Remote control decoder


The IR Toy default mode is a simple IRman compatible USB remote control decoder. Command your PC from a remote control with lirc/WinLIRC, Event Ghost, PC Remote Control, Girder, etc. The LED will blink very briefly each time it decodes an IR signal.

IRman has a simple handshake: when the PC says “IR”, the IRman responds “OK”. Decoded signals are sent as 6 byte packets. The device ID and command code are in the first two bytes, the rest are 0x00.

RC5 and RC5x are currently the only supported remote control protocols. RC5 is usually available as a low-number Phillips code on universal remote controls. We’d like to add more protocols in a future firmware upgrade.

A sampling receiver

A generic, sampling receiver is a popular idea, but it requires PC-side decoding support. Why? Because IR protocols have a few quirks that make the samples inconsistent.


Most protocols toggle a bit between 0 and 1 each time a button is pressed (shown in red). The receiver checks this bit to tell the difference between a long button press and multiple button presses. The toggle bit is only the same once every other button press, a waveform matcher won’t recognize half of the transmissions.


Some protocols only send the command once, and then send a simple repeat blip while the button is held down (shown above). These remotes only generate an identical waveform once per button press, no matter how long you hold it down.

Without PC decoding support, a generic waveform sampling approach won’t consistently detect button presses.


These commands are available in remote control decoder mode:

  • 0x00 – Reset, return to RC decoder mode (all modes)
  • 0x01 – SUMP run (captures and sends data to SUMP logic analyzer client)
  • 0x02 – SUMP ID (responds: 1ALS )
  • 0x52 (‘r’ or ‘R’) – IRman handshake (responds ‘OK’).
  • 0x58 (‘x’ or ‘X’) – Enter raw IR/IO mode (responds ‘X01’)
  • 0x24 (‘$’) – Trigger the bootloader (no jumper required)

SUMP logic analyzer


The IR Toy captures and displays remote control waveforms with the SUMP open source logic analyzer client. Sampling is triggered by a change on the IR receiver, it won’t start capturing until it gets a valid IR source.

The logic analyzer mode currently operates at 10kHz with a fixed 1024 sample buffer.  This isn’t high-speed or long-sampling, but we were able to capture every mode we tested on a universal remote using these settings. Different speeds are possible, and could be added in a future firmware upgrade.

Remote control codes are generally carried on 38kHz modulated light, so data bits won’t be shorter than 26us. The Nyquist sampling theorem suggests 76khz as the minimum sampling rate, twice the maximum data resolution. However, most IR receivers reject signals shorter that a few cycles so we can get away with much less.

The IR Toy has a SUMP protocol compatible state machine. It receives all commands correctly, but it only processes RESET, ID, and RUN; other commands are discarded. Future firmware might add a speed setting, but SUMP doesn’t provide a lot of useful resolution in the low sampling frequency range of the IR Toy. It might also be possible to double the number of samples in a future firmware update.

SUMP is written in Java, and was originally intended for various FPGA setups. To use it, install Java, the rxtx serial port library, and the SUMP client.  Jack Gassett at the Gadget Factory has a version compiled from the latest source code. He also has a Windows compile of SUMP for his ButterFly Platform that doesn’t require you to install Java. SUMP has a SourceForge page, but it’s not very active.

Capture with SUMP


Start SUMP and press the rocket button (or Device->capture from the menu) to configure an acquisition.

The important connection settings are shown above.

  1. In the Connection Settings box, choose the correct serial port and set the speed to 115200bps.
  2. In the Analyzer Settings box set recording size to 1K and make sure only the first channel group is selected. Set the sampling rate to 10kHz so the timing chart aligns properly, but this currently has no actual effect on the IR Toy sampling rate. All other settings are ignored by the IR Toy and don’t impact SUMP performance.
  3. Press start to arm the IR Toy trigger and wait for a signal. The IR Toy LED lights.
  4. A change on the IR receiver triggers the sample timer. The LED turns off, and 1024 samples are taken at about 10kHz (every 100us).
  5. When capture is complete, the IR Toy dumps the samples back to SUMP. The IR Toy returns to remote decoder mode until SUMP is armed again.

Note that the IR Toy inverts the samples. The actual pin readings from the IR receiver are 0 active and 1 idle.


IRIO is a raw infrared input/output mode, it sends and receives raw IR waveforms. This mode can clone remote controls, and playback the signals to operate devices from a computer.

Click for full screenshot. In the screenshot we’re running two IR toys on the same PC. One is in IRIO mode (left) the other is in RC5 decoder mode. First, we pressed #1 on a remote. The left screen shows the raw 10khz waveform samples (black text). The right screen shows the RC5 decoded output. We copied the waveform bitmap from the terminal and sent it back to the IR toy to transmit (pink text). The second IR toy received and decoded the signal just like it came from the original remote control.

Receive state

IRIO mode is always in the receive state, except during transmission. Any activity on the IR receiver triggers sampling at 10kHz.

7F C0 1F E0 0F F8 07 FC 03 FE 01 FF 00 FF FF 80 3F E0 00 1F FF F8 07 FC 03 FE 01 FF 00 00 00 00 00

Each bit represents a sample of the IR signal state taken every 100us (10kHz), most significant bit first. Sampling stops after 40 consecutive samples (5 bytes) with no change on the IR receiver pin. The LED will light each time a sampling period starts, and turn off when it ends.

If there’s ever so many samples that the IR Toy can’t push data to the PC fast enough, the LED will stop blinking but data will continue. This is known as a buffer overflow. We haven’t encountered it 10kHz, but it’s a concern at higher sampling rates.

Transmit state

The IRIO mode exits the receive state and begins transmitting when it receives a data bitmap. Data bitmaps represent the IR waveform to reproduce in 100us (10kHz) segments.


Data bitmaps are single byte values that carry 7 ‘frames’ of an IR transmission. The most significant bit of the byte is set to 1 to indicate a transmission bitmap. The remaining 7 bits toggle the modulated IR LED on (1) or off (0) for 1 time period. The default time period is 100us (10kHz).

The indicator LED will light while the transmitter is active. The IRIO mode returns to receive state when there’s no data left to transmit.


  • Reset 0x00 (returns to remote decoder mode)
  • Setup sample timer 0x01 (send 2 bytes)
  • Setup TX modulation 0x02 (send 2 bytes)
  • 8bit TX enable 0x03

Send ‘X’ to put the IR Toy in raw infrared input/output mode. The IR Toy will respond ‘X01’, where 01 is the protocol version. Once in IRIO mode, use the commands to send and receive raw infrared signals.

0x00 returns the IR Toy to remote control decoder mode. This command is consistent across all modes (IRIO, SUMP), you can always send 0x00 to exit to remote control decoder mode.

Setup sample timer

IRIO mode starts with a 10kHz sample and playback timer. This can be changed by sending the the setup timer command, followed by two bytes that set the timer 1 offset. The first byte is the high 8bits, the second byte is the low 8bits. Use a PIC timer calculator to find the values (key calculation constants: timer 1, 1:1 prescaler, 48MHz fosc, 12MHz fcyc). See an example.

Setup TX modulation

The default infrared transmitter is modulated at 36kHz with a 50% duty cycle. This can be changed by sending the setup PWM command, a byte for the PR2 period register, and a don’t care byte. The duty cycle is always 50%. Use a PIC timer calculator (update: our favorite online PWM calculator) to find the value (key calculation constants: timer 2/PR2, 48MHz fosc, 12MHz fcyc, 4x prescaler). See an example.

8bit TX enable

Send this command to enable 8bit transmit mode. The IR Toy transmits all 8bits of every byte it receives, instead of the 7bits described above. This mode works with the same 8bit values that the IRIO mode outputs when it receives a signal. It allows more data using fewer bytes, but there’s no exit command. You’ll have to unplug the IR Toy from the USB port to get out of raw mode.

TV-B-Gone firmware port

TV-B-Gone is a simple IR device that plays 130 POWER codes for TVs, the goal is a universal off (or on) button. Adafruit has a kit with source and excellent documentation. We ported the TV-B-Gone POWER codes to the IR Toy and wrote a simple player for the PIC microcontroller.

This feature doesn’t need USB connectivity, so we put it in a separate firmware that uses the PIC sleep mode when it’s not transmitting. Load it into the IR Toy with the USB bootloader (see the bootloader instructions below).

When the PIC starts, the POWER codes will play and the indicator LED will blink after each code is transmitted. The IR Toy will play the TV-B-Gone codes once, and then go to sleep. They can be played again by resetting the PIC, either by cycling the power, or temporarily connecting the MCLR pin to ground. The PCB has a footprint for a reset button (the button is not populated on the assembled version at Seeed, this is strictly DIY!).

The PIC architecture can’t handle a single array with all 130 North American TV POWER codes, but we did manage to fit 120. If the codes were broken into smaller chunks, the PIC could hold both the NA and EU sets with plenty of room to spare. We didn’t include the European codes because the original samples were missing from the project archive. We’ll add the EU codes if the files are posted.

The IR Toy controls a single IR LED with an NPN transistor. The LED is set to 20mA current with a 180ohm resistor. A ‘real’ TV-B-Gone uses transistors to switch several IR LEDs at closer to 100mA, so the range of the IR Toy is only a fraction of the range of the TV-B-Gone.

Most IR emitters are rated for 100mA, so you could swap R4 (180ohms) with a 39ohm resistor to increase the power. Keep in mind that we used an NPN transistor rated for 200mA maximum, but you could also swap the transistor with a higher rated version and connect several high-power LEDs.


The IR Toy can be upgraded over the USB connection. It uses a modified version of the Diolan USB PIC bootloader. This is a great bootloader, written in ASM and released under the GPL, that enumerates as an HID device. The bootloader app is included in the project archive.

A neat thing about the IR Toy firmware is that it can be loaded with a normal programmer too. The firmware has a jump instruction at the appropriate location so that if a bootloader isn’t present it will still work.

Follow these instructions to bootload a new firmware into the IR Toy.

Step 1. Activate the bootloader

Open a terminal to the IR Toy virtual serial port, type $. Alternately, place a jumper between the PGC and PGD pins, and then plug in the IR Toy.

The indicator LED will light when the bootloader is active.

Step 2. Upload the firmware

Run the bootloader app and upload a new firmware. Bootloader applications are available for Windows, Linux, and Mac.

Step 3. Reset the IR Toy

Unplug the IR Toy, remove the jumper, and plug it back in. The upgrade is complete.

Taking it further

The USB IR Toy is ready for hacking.

  • The IRIO mode can be updated to capture and replay IR signals, including 2000 samples stored in the 256 byte internal EEPROM.
  • Software to record remote control signals and automate TVs, cable boxes, etc.
  • New speeds and sample lengths can be added to the SUMP logic analyzer mode.
  • Additional protocols can be added to the remote control decoder.
  • Add emulation of IR decoders besides IRman.
  • Add a reset button to the footprint on the back.

We’ll post the most recent firmware updates on our blog.You can also join the discussion in the USB IR Toy forum.

Get one!

You can get an assembled USB IR Toy for $20, including worldwide shipping. Seeed Studio is currently hosting a preorder. The hardware will be manufactured the first week of February, but it might not ship until later in February due to the Chinese New Year holiday.

Your purchases at Seeed Studio keep the open source project coming, we sincerely appreciate your support!

Join the Conversation


  1. There’s lots of questions about stand-alone operation. The next ‘alternative’ firmware will probably be something that records samples to the EEPROM, can replay them, and later dumps them over USB for analysis on a PC.

  2. I think there would be demand for this an XBMC or MythTV dongle. Perhaps using an original Xbox remote (I’ve got a couple kicking around somewhere). At $20 it would be one of the lowest-priced solutions.

    1. Unfortunately no kit on this one yet. Seeed is really busy before their coming Spring holiday, so there won’t be a kit for now. Maybe I can get it worked out in a month or two.

  3. Hi

    Unfortnatly Seed does not sell the pcb alone, like mentioned in your article.

    Its a pitty, because I have most of the required parts at home.
    Same with the bus pirate, since V3 there are no empty pcbs available anymore.


      1. Hi Ian

        Thank, that would be very nice!
        Could you please also ask Seed about selling bus pirate v3 pcbs ?

        Since I built my reflow station from a waffle iron, I simply love to reflow pcbs it.Buying a finished circuit is somehow half of the fun imho. ;)


    1. The EAGLE files are provided, so you could have circuit boards made on your own. Sunstone Circuits in Oregon would do this for $28 with free shipping, and if you order 4 or 5 the price drops to around $10 each. 20 gets you below $6 each. This is US only. Other places charge by the square inch. I believe there is a place in Australia with lower prices. Certainly China is cheaper.

      I realize this might cost more than the kit, but if you’re like me then there is a benefit besides price when you can use parts that you have. That’s more environmental and saves the landfill from accumulating electronics.

  4. This is a great project! I’ve just discovered Dangerous Prototypes via a friend who recommended the OpenBench Logic Sniffer, and I couldn’t help but pounce on this project at the low price of $20 shipped.

    I’ve been interested in hacking IR remotes since I got my second one and noticed how annoying it can be to juggle several of them. I entertained the idea of buying an Apple Newton to program just for its IR capabilities and nothing else, but the task of learning a new programming environment on a dying platform stopped me from dropping $100 on that potential. Meanwhile, the universal remotes are not powerful enough for a hacker. A USB device is perfect for this, especially the input and analysis phase.

    I’ve been designing hardware and firmware for platforms like the EZ-USB, PIC18F67J50, and TMS320VC55x low-power USB processors. While I’m sure I could design my own IR Toy, there’s no way I could touch the $20 cost. I’m really happy you used the PIC18, since that means I have nothing new to learn, seeing as how I’m already familiar with the Microchip USB library. I don’t know if I’ll be able to improve on the firmware you have so far, but I will be paying attention to the forum and see how things work out after this thing ships!


  5. Hmm, why didn’t you use the emitter follower circuit described by San Bergmans? I guess your design saves two diodes, but I imagine that you could alter the circuit so that the diodes are optional. I guess it’s unlikely that the USB voltage would change much, but since you’re using that voltage unregulated, and it can vary between 4.0V and 5.25V, your IR current might be a little more controlled with the fancier transistor circuit. I haven’t experimented with these circuits, yet, so take my comments with a grain of salt.

    1. That’s just a small signal, small current diode for the MCLR pin of the PIC. You could replace it with that part, but you’d need to change the PCB. The part I used is do323, a 2 pin diode package.

      1. The most important value is the DO323, a.k.a. SOD-323. As Ian says, you can’t easily squeeze a different shape onto the PCB.

        What I always do is hit Mouser. Start with a search for BAS16HT1G, and when you click on the Mouser part #, you’ll be given the opportunity to search for similar replacements. In this case, Mouser uses SOD-323 as the package / case. You can basically turn off the checkbox for everything else, because you don’t care about brand or other overly specific values. In the results that appear after clicking “Show Similar,” I tend to sort by price and then start narrowing down the options. Mouser finds about 425 options that would fit the PCB.

        The actual selection process can be a little tricky. I recommend keeping a browser window open on the original part, and then use it as a guide to narrow things down in the search results. For example, after selecting general purpose diodes in the search results, I see recovery times of 4 ns, 6 ns, and 50 ns. Since the original part is 6 ns, I just select 4 ns and 6 ns to weed out the slower 50 ns diodes, just in case speed is important. Meanwhile, the lowest voltage is 70V and the smallest current is 150mA, so probably anything will do. If you’re concerned, then start specifying more values to narrow the results.

        You’ll note that there is a 1N4148 in SOD-323 as part of the results.

        If you want to speed up the process, the Mouser part # page for the original part will update the number of similar parts Found as you check or uncheck different specifications, so you can quickly experiment with how precise you want the match.

  6. Could one also “Setup TX modulation” to use no modulation at all?

    Would be pointless with “nothing but IR” of course, but RF transceivers (for which to be toggled by software instead of IR the PIC even has some leftover pins) could be driven by LIRC too, simply using the base-band TTL (as the 433&868 MHz AM transceivers at just dollars apiece have their own internal oscillators), in order to end up with something like the albeit in a much less expensive and more flexible way – and hence combine cheap RF-controlled sockets/dimmers/roller blinds motors etc. with IR gear, e.g. to set up the entire home cinema with just one button or even a “Star Trek style” voice command.

  7. i think you guys will receive some orders for this since its the cheapest way to hack your ps3.

    let me ask one question:

    will it work with every properly compiled hex file or do i have to take care of some special bootloader stuff?

    1. Hi Peet – “will it work with every properly compiled hex file or do i have to take care of some special bootloader stuff?” – I’m sorry, I don’t quite know what you mean.

  8. my intention is to run other code on this thing.

    I’m wondering if i can use any hex file for a pic18f2550 on your board or do i have to care about some special things that come from the fact that there is a bootloader installed?

    to be precise, i want to load this hexfile
    in the device.

    will it work? i guess yes, but im not sure how the bootloader effects the programmed hex file. i think it does NOT interact with the loaded hex. but i dont know.

    can you answer my question?

    1. This particular bootloader needs a relocated start vector. So no, it will not work with code that is not compiled specifically for the bootloader.

      1. this sounds like i’ve just to add a single statement to my c code?

        sorry, i’m not very experienced with µC stuff.

        would you mind giving me some hints what i have to add to my software to make it run on the IRtoy?

        thanks in advance

  9. oh sorry, just overread it.

    but it tells me its not necesarry? so my hex file should work on the IRtoy board??

    1. Export is not needed, it will work with the proper vector adjustments.

      Can we please follow up in the forum instead? It is hard to find your reply in this old post with so many comments.

  10. Guys, seriously.

    Is there any chance this would work as an IR transmitter (used for “external tuner box” channel-switching) in MythTv – as in without having to recompile half of it, you know, for every-day-I-don’t-have-to-touch-“make”-and-linux-command-line-yet-again-is-a-great-day kind of folks…?

    PS. Why do I fiddle with MythTv/linux if I hate servicing it so much then? Oh, you better believe me, if I could get ALL the equivalent functionality and flexibility some other way I would never think twice…

  11. Hi,

    I would like you to contact me for a possible rather large order, first I just need to know the capabileties.

    In Sweden lots of apartmentcomplex outer doors are opend via IR signal. Now we have to carry lots of diffrent senders and would love one that could transmit them all and only needed to “see” the signal to store it.

    Kind regards Daniel

    1. Hi Daniel,

      The IR Toy currently only works when attached to a PC. Those types of capabilities could be added, but you’d need to do some coding.



      1. Well we do always carry some form of computors with us for diagnostics so I guess they could do the trick.

        What sort of coding would be needed, language and what sort of in-deapth knowlge is needed and do the device remember the latest frequency that it was programed with?


      2. The IR Toy doesn’t have a memory or storage system for codes or frequencies. You can record codes and play them back from a computer using various utilities. Here’s some of the IR Toy software here:

        The various modes and protocols are also documented further down on that wiki page. If you have a PC available, you can program it in pretty much any language that can use a serial port (USB virtual serial port…).

  12. Is the IR Toy much different than the USB IR Widget?

    That also plugs into your pc via usb, and decodes IR.

    Also, I know most remotes are IR, but is there any reason why rf isn’t used more often (like high end remotes)? I’m thinking it would be great to be able to control a pc via a diy rf remote.. possibly doing 2 way communication for some real interesting projects!

  13. @ben: Yes, there is reason: cost. Traditionally, IR communication could be done for pennies (encoder output to one transistor + 1 IR LED -> cheap integrated IR receiver to decoder), while RF communication required complicated (and precisely tuned) mostly discrete modulator and demodulator circuits (and antennas) which were always significantly more expensive (today’s cheapest modules are mostly still using a handful of discrete components on a small PCB).

    Currently, RF modules are still substantially more expensive then IR, but the gap is slowly getting smaller, and if the “ubiquitous wireless sensor networks” ever finally take off for real (they have been doing that for a few years now, still not quite there), the transition will eventually happen.

    The current push is certainly in that direction – no line of sight requirement and two-way communication (=certainty of command execution) are most cited as factors; the current contender being ZigBee RF4CE, with Bluetooth 4.0 coming up fast from behind (if you believe the hype).

    And yes, of course, it is perfectly possible to use just about any kind of RF modules you might have to whip up a custom RF remote of your own…

  14. Hi,
    I see plans for IR Toy v2. Will it be available for purchase soon? Or, assuming the functionality is the same, should I just buy the current version?


    1. Hi Doug,

      IR Toy v2 is complete, but it will still be an unknown amount of time before it hits the shelves.

      The differences are:
      *Raw frequency measurement (not used by 99% of people)
      *Better transmitter circuit (might be useful)
      *Extra pins broken out to a header

      1. Thanks, Ian.

        I think I might wait a bit as I have a projector and a receiver I would like to transmit to and may benefit from a better transmit circuit. In the meantime, I’ll limp along with a generic USB HID IR device I have that is somewhat functional.


  15. Hi, I’m planning to use my PC as a remote control for TV, satellite receiver, etc using vocal commands. I’m developing the application in C# and i’m looking for an IR receiver/transmitter that could replicate signals from a remote control with a working distance of about 4m and a 30-40 degrees wide range.

    Is IR Toy v2 an option for me in this case. Could I interface it in a .NET application?

    Thank you.

  16. Hi !! I need this USB infrared remote control but I see it is out of stock. When will it be available again?

  17. Dear All,
    Can I use this usb transmitter for IR Control helicopter to operate through computer. and any software for that…Plz anybody help me..for this regards

  18. Hi there,

    Just discovered the site and the USB IR Toy. I just bought an old programmable touchscreen remote (Philips Pronto) which I can’t get to auto-learn without crashing. So I need a way of capturing the set hex bytes for each button command on my remotes so I can manually put it into the remote configuration program.

    Would the USB IR Toy be suitable for this purpose – It sounds like the “Simple record and playback” program you listed on one of the details page would do the trick.

    Thanks for your time.

    1. Hi Chris,

      I think the problem will be decoding any given protocol. It might take a lot of trial and error (and learning) to get the _actual_ HEX values for the codes,. T he IR Toy represents a code by sampling the length of pulses and reproducing it, ignorant of the protocol itself.

  19. Is thre a easy way to add functionality? My problem: I’d like to switch on/off my tv using a 12v signal comming from my Marantz AV receiver. Unfortunately the only way to switch on/off my Samsung tv is by ir remote control. Is there a chance to add a 12v trigger to the usb ir tool?

  20. Greetings!
    Question: oscillator 24 MHz(type 24.00HR20) is good?
    I because you have one.
    I’m waiting for you please reply!

    F.L. from Hungary

  21. Hello,

    have the following problem.
    Windows Server 2012 R2 64 bit I can not reach port via the USB to IRTOY.
    The CD drive is not working.
    Is there a solution?
    In advance many thanks for the help.

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.