|
From: Paul F. <pg...@fo...> - 2007-05-14 19:03:04
|
hi --
this is an announcement of a new, serial-based IR receiver design.
it's a one-chip solution based on an Atmel AVR microcontroller.
i've been using lircd for a really long time. (i just checked,
and the first of the saved messages in my lirc mail folder is
from sometime in 1997 -- how time flies!) i've used a combination
of commercial (the original "packard bell" receiver) and
home-built serial-based IR receivers -- essentially what's
described on the lirc web page as "homebrew serial" receivers.
i've had three of them attached to various systems in the house.
these have all worked well, but lately i've become less
satisfied. the reason is that in the past, i didn't upgrade my
kernel very often -- i'd install a major release, and live with
it for months, or even years. i'd recompile a new kernel once in
a while, but often it was just a reconfig, and out-of-tree
drivers, like the lirc drivers, didn't necessarily need to be
rebuilt -- they just kept working.
but these days i run either debian or ubuntu, and just about any
time i do an "apt-get update; apt-get upgrade", i have to expect
that i might get a new kernel. and since these kernel updates
are all (rightly) very strict about driver versioning, it means i
have to rebuild the lirc drivers pretty often. multiply that times
three machines, and it's become tiresome.
the other issue i've had with the traditional serial receiver has
been the requirement of a real, physical, serial port. because it's
monitored via the modem-control lines, the receiver can't be
connected to a terminal server, for instance, nor to a USB-to-serial
converter.
so i looked at alternative receiver designs. i got excited about
the audio input method, but whether it's my soundcard, or user
error, i couldn't get it to work. (i also run NAS, for network
audio distribution, and that added complications to my configuration.)
i looked at the microcontroller USB solutions, but most of those
were either a) closed source, b) very windows-centric on the host side,
or c) required a linux kernel driver, one of the very things i was
trying to avoid. besides, not all my systems have USB.
what i really wanted was a solution based on passing data across
a serial port, using the "real" data stream, not using the modem
control lines. i eventually located some rough code (by karl
bongers) called "avrlirc" which did most of what i needed, using
an AVR micro. so i cleaned it up (mostly rewritten by the time i
was done), and built some hardware. it's a one chip solution.
well, almost: there's also the little 3-pin IR detector module.
the serial data from the atmel micro is read by a small daemon i
wrote, which in turn relays the data to lircd via a socket, using
lircd's built-in UDP driver. so lircd doesn't need any
modifications at all to be used with this device -- hook it up,
start the data relay daemon, and you're all done. standard lirc
configuration is used, and recording a new remote works normally.
i've documented the design i came up with here:
http://www.foxharp.boston.ma.us/avrlirc/
there's a pointer to the source (which is GPL, of course), as
well as some photos of my completed hardware.
enjoy. i'd certainly appreciate hearing from anyone who builds
one of these for themselves!
paul
p.s. christoph -- you should feel free to include that link in the list
of supported homebrew hardware if you'd like. please call it "avrlirc"
if you do so. thanks!
=---------------------
paul fox, pg...@fo... (arlington, ma, where it's 68.7 degrees)
|