# The IrToy driver

The IrToy by Dangerous Prototypes is a versatile and cheap USB sender and receiver that can be used with Lirc. It is "open hardware" with circuit plans etc being freely available. Since Lirc 0.9.2, there is native driver, written by Peter Kooiman, contained in Lirc. Previous versions could use it utilizing the IrMan emulation in the IrToy.

## Firmware version

Only version 2.2 is supported by the driver. For instructions, programs, and firmware, see this guide.

## Device file

Linux (udev really) assigns a connected IrToy a name of the form `/dev/ttyACMn`, where `n` is the smallest non-negative integer not yet taken. This can cause unpredicted behavior, not only when using several IrToys, but also in context of other device using the same names, like Arduinos. By using `--device=auto` when as argument to Lircd, the lowest `/dev/ttyACMn`, that actually contains an IrToy, will be used.

## Debugging LEDs

There are a few GPIOs which are normally unused. Attaching LEDs to these is great for debugging, not only of the IrToy and the driver, but also of Lirc itself. For this, solder LEDs between the different "pins" and ground, as follows:

- RA5, the "open" LED". This will be on whenever the device is held open from the host.
- RA4, the "sending LED". Lights when IR transmission takes place.
- RA3, the "receive LED". This is on whenever the device is expecting to receive IR signals.

This behavior is the same as in IrScrutinizer.

LEDs with build-in resistor are recommended. Otherwise, be sure to include a resistor of a few hundered ohms up to a few kiloohms (depending to desired brightness and the type of the LED) in series with the LED.

## FAQs

### Is there a forum for the IrToy?

Yes.

### The orange LED is permanently on, the device does not show up as /dev/ttyACMn any longer, and cannot be accessed from Lirc.

The device has gone into the bootloader mode, and expects to be flashed with "new" firmware. See this guide.

### How do I find out the firmware version?

Start Lircd with loglevel 8 or higher, and search for `irtoy_getversion` in the log file. Alternatively use IrScutinizer.

### How do I use udev to get a permanent name for the device?

Put a file with the following content in, e.g., `/etc/udev/rules.d/11-irtoy.rules`. (Tested with Fedora)

    SUBSYSTEMS=="usb", ATTRS{idProduct}=="fd08", ATTRS{idVendor}=="04d8", SYMLINK+="irtoy"

### How is it supposed to look like with the present software?

When sending, the opening LED and the sending LED go on, and then out immediately. Note that Lirc (at in the present version) closes the device directly after sending, i.e. the opening LED goes out. When receiving (can be tested with `irw`), the opening and the receiving LEDs go on.