Infrared software

I’ve been looking at PC based IR control options and have spent some time experimenting with LIRC and the Arduino IR library which have both proved to be usable and popular methods of IR control.

The Arduino IRremote library supports of a variety of Arduino hardware and, despite it’s name, also caters for different prototyping boards such as the Teensy (1 and 2) and Sanguino. It appears to have been very popular for hobby prototypists with since it’s release and to highlight the current level of interest in the Arduino IRremote library the git repository has been forked a total of 115 times to date!
Interest has sparked the addition of more remote control protocols by the Arduino community (such as Samsung, Panasonic and more) which have gradually made their way onto Ken Shirriff’s blog. I worked these additions into my local copy of the library and began testing with the range of remotes I had available – Samsung, Elmo (NEC), Panasonic, Hauppauge (RC-5), Kramer (NEC), Mitsubishi, Toshiba (NEC), LG (NEC). The results were mostly successful, some of the protocols weren’t recognised and couldn’t be decoded but could be recorded in raw mode. I only managed to find one, Panasonic, remote that the library didn’t seem to respond to.

However the one real draw back of using an Arduino for infrared control is that the Arduino has a limited number of timers available for PWM (which is used to drive the emitter). With Ken’s library, the emitter has to be connected to pin 3 – meaning 1 emitter per Arduino and with an Arduino Uno currently costing in the region of £25, attaching lots of these to a small PC would start to take up space required for the control system and significantly increase costs.

I’m now taking a different direction, with LIRC, which has been around for years and is much more established and commonly used for HTPCs in the linux world. I recently found licensing documentation bundled with a new Toshiba Blu-Ray player that showed the player was using LIRC as part of the firmware on the device. Encouraging to know that LIRC is used by big companies in industry.

Since LIRC is most commonly configured to run, as a single instance with a single receiver (for use with a HTPC), how then, can I use LIRC with multiple infrared transmitters and receivers that are both small and cheap? More to follow in my next post!