Please use a browser that supports javascript

Bogeskov.dk

Lirc - inject driver - hidraw & SoundGraph iMON 2.4GHz LT/GT

I've had some troubles with the lirc (Linux Infrared Remote Control). I was using a SoundGraph iMON 2.4GHz LT, and then I upgraded (to squeeze I think) my system, suddenly the imon was taken my the kernel hid system, and I couldn't associate the remote. And building lirc from source didn't really work at the time, so I bought a Windows Media Center Remote Control. Unfortunately It appeared as both a mouse and a keyboard, setting up 2 remotes is annoying. So I thought: Why not just make a driver that just accepts ir-codes, and then a daemon that pushes keycodes from the remote into the lirc daemon.

Inject driver

The inject driver is an udp socket simply receiving 8 byte codes and using them as a ir-code.

The resulting patch was first posted to the lirc mailing list in late august 2011 (original post here). Nothing really has come of this. But I use it on a daily basis, So I've packed it as a debian package and put it in my repository.

hidraw - inject daemon

Given that the daemon now could accept udp literal ir-codes, then you could have several daemons injecting ir-codes into the system, eg. one for each hid device. I then wrote such a daemon and put in the repository under the name "lirc-hidraw-inject". You can run the daemon in the foreground with debug like this:

/usr/bin/lirc-hidraw --debug  /dev/input/event15

Then you press a key and you get output like this:

INFO: 0000000400000003
INFO: 0000000400000003
INFO: 0000000000000003

imon - inject daemon

The SoundGraph iMON 2.4GHz LT/GT, is a small rf-based remote. It has a (IMO) a nice formfactor, and does not require line of sight to the dongle. Unfortunately it's discontinued. However as long as it works I'll keep using it.

I've botch together something that could associate the remote and use the inject driver to deliver keycodes. This is also in the repository under the name of "imon-2.4ghz"

Configuring

The important part is:

/etc/lirc/hardware.conf:

DRIVER="inject"

and /etc/lirc/lircd.conf:

begin remote
  name            inject
  bits            64
  repeat          250000

  toggle_bit_mask 0x0

      begin codes
          KEY_ZOOM                 0x0000270004
          KEY_T                    0x00005A0004
      end codes

end remote

And just fill in the codes section with keys as defined in /usr/include/input.h with the output of the daemon with --debug