About half way through the project, I decided that the family would want some control, and using putty or a VNC client wasn't really suitable, after some googling I found the LIRC project which seemed ideal.

The LIRC project is designed to interface with several different kinds of Infra Red receivers and transmitters, like USB or Serial ones which actually decode the IR signal and home made Serial receivers which cheat by toggling the RTS signal line of the serial port. I decided to build one of these.

For this I first built the standard serial port IR receiver from the LIRC website, however, whilst this worked on my Armada laptop, the Latitude didn't put out enough voltage on the Serial port (only about +3V), so I built the more complicated RS232 compliant one. I also used a low voltage drop regulator, which was unfortunately only available as a SMB device, which isn't easy to attach to strip board ! Here's my schematic (I'll try to put some eagle schematics in here at some point, if I ever ressurect my Linux system).

 

IR_receiver_diagram

 

IR_receiver_schematic

Here's some pictures of the completed board. I built it on strip board, and if you do the same, please, a) make it a bit smaller, b) learn to solder better than I can.

 

PC310001.jpg
PC310002.jpg

 

The end result isn't pretty, but it works, which is all I need really. I am tempted to go way off the deep end of geekiness, and try iron on transfer PCB etching, but I'll leave that for another day... I then configured Lirc, Heres my .lircrc file (which wont make a great deal of sense without the other bits of software)

 

 

#
#.Lircrc File
# Created P Hurley 18 Dec 2007 (at work. shhh !)
#
#This file has the structure
#
#begin
# Prog = ...
# remote = ...
# button = ...
# repeat = ...
# delay = ...
# config = ...
# mode = ...
# flags = ...
#end
#
#
#Power Button should toggle screen
begin
prog = irexec
remote = sony0505
button = pwr
config = /home/paul/scripts/toggle_screen.sh
end
#ChUp button should go to previous photo, (by sending 'p' to feh)
begin
prog = irxevent
remote = sony0505
button = chup
config = Key p feh
end
begin
prog = irexec
remote = sony0505
button = chup
config = osdctl -s "Previous" &
end
#chDown button should go to next photo, (by sending 'n' to feh)
begin
prog = irxevent
remote = sony0505
button = chdown
config = Key n feh
end
begin
prog = irexec
remote = sony0505
button = chdown
config = osdctl -s "Next" &
end
#Speed up slideshow (by sending '+' to feh)
begin
prog = irxevent
remote = sony0505
button = up
config = Key + feh
end
begin
prog = irexec
remote = sony0505
button = up
config = osdctl -s "Faster" &
end
#Slow down slide show (by sending '-' to feh)
begin
prog = irxevent
remote = sony0505
button = down
config = Key - feh
end
begin
prog = irexec
remote = sony0505
button = down
config = osdctl -s "Slower" &
end
#Pause button should pause slideshow (duhh ! - send 'h' to feh)
begin
prog = irxevent
remote = sony0505
button = pause
config = Key h feh
end
#Red Button should Reload feh
begin
prog = irexec
remote = sony0505
button = red
config = /home/paul/scripts/cron_reload_frame.sh
end
#green Button should start feh in collage mode
begin
prog = irexec
remote = sony0505
button = green
config = /home/paul/scripts/start_collage.sh
end
#yellow Button should start clock
begin
prog = irexec
remote = sony0505
button = yellow
config = /home/paul/scripts/start_clock.sh
end
#Blue Button should start feh from removable drive
begin
prog = irexec
remote = sony0505
button = blue
config = /home/paul/scripts/start_removable.sh
end