Here is a simple driver for a Global Cache GC100 to decode IR signals from our different remotes and to do automatic AV source selection on my Denon AVR4800 receiver.

It listens to the Infra Red (IR) data stream and recognizes key signals to identify individual remote controls. In particular, it recognizes the two tivo remotes and a DVD player remote as well as the signals from the Denon receiver itself.

It keeps state about the currently selected AV input in order to avoid sending reselection events that are not necessary. On my receiver, this causes a menu to pop up on the display for a few seconds, which is not ideal.

It listens for power on/off events and unconditionally reselects the source after this. As a result, when you pick up a random remote from the table to turn on the receiver, it automatically comes up with the right input selected. Also, one of the spare buttons on the tivo remote causes the input to be reselected.

Why not use a universal remote? Because they all suck. I have not found anything that comes even remotely close to the usability of the tivo remotes. And given that we use the tivos 99.9% of the time, switching to an inferior remote a deal clincher. In particular, the key layouts suck because they are optimized for channel number access rather than play and menu access. As any tivo user knows, you almost never key in a channel number anymore. And then they go and hide the play/pause/etc buttons in awkward places while they're nicely laid out on the tivo remotes. Secondly, they generally don't support multiple tivo IR addresses - we have two, a "his" and "hers" tivo. The remotes would need to support multiple tivo addresses and they usually do not. Tivo "peanut" remotes have a switch option to support two tivos with the one remote.

Source code: autosource.c

Other Home Automation source code

Home: Peter, Rosemary and Tristan Wemm