Flashing the USB IR Toy v2

I finally had some time to work on my temperature project and the first step was to make sure my 2 USB IR Toys worked (they finally arrived about 2 weeks ago).

One seemed to work fine (meaning my Raspberry Pi recognised it and enabled the device /dev/ttyACM0), but the other wasn’t being recognised. (In fact the LED was constantly on). I thought I got a faulty one.

I decided to try reflashing it.

Dangerous Prototypes had a howto on how to flash it, but I found it slightly confusing, so here are my instructions (that are for flashing the v2 board with a v22 firmware) on the Raspberry Pi:

Short pins PGC and PGD

First, need to short the PGC and PGD pins. This is simple enough - I just used simple jumper wire.

Get latest Firmware

Downloaded from



Get latest IRToy-specific Firmware Update Utility


This apparently is a patched utility from the board maker at Diolan.


Note, I had to do all of us sudo - kept getting errors while running these as user pi.
export LIBS=-lusb
sudo apt-get install libusb-dev
sudo ./configure (I got g++ errors if I run as pi)
sudo make
cd ..


sudo IRToy-fw_update/fw_update -e -w -v -m all -vid 0x04D8 -pid 0xFD0B -ix USBIRToy.package.v22/firmware/USBIRToy.v22.hex

Make sure your paths are correct in the above command. 

The successful output should look like:

U2IO flash erasing: DONE.

U2IO id programming: DONE.

U2IO eeprom programming: DONE.

U2IO flash programming: DONE.

U2IO id programming: DONE.

U2IO eeprom programming: DONE.

U2IO flash verifying: DONE.

U2IO id verifying: DONE.

U2IO eeprom verifying: DONE.

RESET Device

Operation successfully completed.

I was lucky. The IR Toy I thought was bad now seems to work fine!