Next, it was time to use the irw program from LIRC to test the buttons on the remote, firing up irw was as simple as typing this in the console.
irw
So, after irw had started, I began pressing buttons. Nothing! What a surprise, it's never that simple is it. I moved on to using irrecord with an empty conf file to see if it was picking up anything. irrecord was not picking anything up either. I was stumped for a bit on this, but I later realized that xoscope was showing the signal on the right channel and not the left. Since I was only reading the left channel in the modified driver code, it was obviously not reading valid samples. So I went back to the prototype board again and switched the pin that the signal was being sent on to the opposite channel, checked in xoscope that it had switched, which indeed it had.
Being confident that it would work, I went back to using irw to see if the button presses would get recognized. I shouldn't have been so confident, it did not work. This time though irw was showing various space synchronization problems as I was pressing buttons, so at least samples where coming though. This one took me longer, I had to step through the hw_audio_alsa code using gdb. The problem was that the signal coming from the IR receiver wasn't clean enough, and the audio_alsa driver was detecting pulses/spaces at the incorrect time. I made a simple modification to the hw_audio_alsa.c file. All this done was to have a ceiling and floor value for the samples being read. Here is a comparison of the samples before and after the modifications.

As you can see, the bottom is the cleaned up version of the signal.
Now it was time to try it again. Hopefully third time lucky. I fired up lircd/irw once again, and began pressing buttons. This is what I got.
00000000003ff3fe 00 1 SKY+_DVB-S
00000000003ff3fd 00 2 SKY+_DVB-S
00000000003ff3fd 01 2 SKY+_DVB-S
00000000003ff3fc 00 3 SKY+_DVB-S
00000000003ff3fb 00 4 SKY+_DVB-S
00000000003ff3fa 00 5 SKY+_DVB-S
00000000003ff3f9 00 6 SKY+_DVB-S
00000000003ff3f8 00 7 SKY+_DVB-S
00000000003ff3f7 00 8 SKY+_DVB-S
00000000003ff3f6 00 9 SKY+_DVB-S
00000000003ff3ff 00 0 SKY+_DVB-S
00000000003ff3a7 00 UP SKY+_DVB-S
00000000003ff3a4 00 RIGHT SKY+_DVB-S
00000000003ff3a4 01 RIGHT SKY+_DVB-S
00000000003ff3a5 00 LEFT SKY+_DVB-S
00000000003ff3a6 00 DOWN SKY+_DVB-S
00000000003ff3a3 00 SELECT SKY+_DVB-S
00000000003ff3df 00 CH+ SKY+_DVB-S
00000000003ff3de 00 CH- SKY+_DVB-S
00000000003ff333 00 TV_GUIDE SKY+_DVB-S
00000000003ff333 01 TV_GUIDE SKY+_DVB-S
00000000003ff333 02 TV_GUIDE SKY+_DVB-S
00000000003ff382 00 BOX_OFFICE SKY+_DVB-S
00000000003ff382 01 BOX_OFFICE SKY+_DVB-S
00000000003ff382 02 BOX_OFFICE SKY+_DVB-S
00000000003ff381 00 SERVICES SKY+_DVB-S
00000000003ff381 01 SERVICES SKY+_DVB-S
00000000003ff381 02 SERVICES SKY+_DVB-S
00000000003ff30a 00 INTERACTIVE SKY+_DVB-S
00000000003ff30a 01 INTERACTIVE SKY+_DVB-S
00000000003ff30a 02 INTERACTIVE SKY+_DVB-S
00000000003ff37f 00 SKY SKY+_DVB-S
00000000003ff37f 01 SKY SKY+_DVB-S
00000000003ff37f 02 SKY SKY+_DVB-S
00000000003ff392 00 RED SKY+_DVB-S
00000000003ff391 00 GREEN SKY+_DVB-S
00000000003ff390 00 YELLOW SKY+_DVB-S
00000000003ff38f 00 BLUE SKY+_DVB-S
All the buttons worked! So with a few modification to the audio_alsa driver I managed to get LIRC working with the Sky+ remote for no more than a few pennies.
You can view/download the patch here, it will allow the use of sound cards that don't support a mono capture and help with noise on the top and bottom of pulses.
(as of 2nd June 2008 LIRC has support for audio-alsa using stereo directly in the LIRC CVS repository)
My next task will be to create a small PCB for the IR receiver so that it can fit nicely into the TF5. So until then...
Pages: 1 · 2

What do you get when you click on the link, it seems to work for me?
Thanks for pointing that out. The link now works without being logged in. Although you don't really need it any more since the latest version of LIRC has the patch merged already
10/(80+22+10) * 5 = 0.446 V
(if 5 V is the supply voltage, then the correct value for the calculation is 5 V - nothing else...)
The internal pull-up resistor in TSOP1736 makes R1 completely unnecessary. Replacing R1 with a copper wire and selecting R2 = 15 kohm will give:
15/(80+15) * 5 = 0.789 V.
(I wouldn't recommend a higher output than ½ of max input voltage)
http://ubuntuforums.org/showpost.php?p=8339472&postcount=6
If I could figure out how to set the timings of the pulses then the signal could be cleaned up and have the right timings for a given protocol, all the time. Currently the timings are not reliable enough from press to press.