PDA

View Full Version : IR Codes



timmy
31-03-2004, 08:43 PM
Well i'm keen to build up a repository of IR codes for various STB's in NZ. Who's keen to buy a pronto remote and go about it? hehe no takers?

Seriously, i'll contribute say $40 towards someone buy a remote and doing their best to make as many codes as they can, and ideally keen to lend it to others to help make codes too.

How about we start with a list of the STB's for starters. eg what boxes (make/model) are there for Saturn, Sky Digital. anyone got any dirt on Sky boxes or sky in general? heh

zollymonsta
31-03-2004, 09:20 PM
I can help with the Saturn boxes ;)
Sounds like a good plan to me.

jaidev
01-04-2004, 04:26 PM
I know of three current models for sky, Pace, Zenith and Motorola.

We currently have codes for

Pace DSR 600/2000 series
Motorola ?? err Ill find out the model :P

zollymonsta
03-04-2004, 11:52 AM
From what I can tell, the tivo will work with the older Jerrold 7000 series decoder on Saturn.

Looks like it may natively control General Instrument decoder boxes too, if this is the case then the TiVo will control all the current Saturn Decoder boxes out in the wild. I'll confirm this when I recieve my TiVo this week (Has just been cleared by customs overnight by the looks of it).

Not sure at this stage wether it will work with controlling the digital stb's once digital cable gets under way. At this stage and with the info I know, I don't think it will.

number6
04-04-2004, 07:23 AM
Well i'm keen to build up a repository of IR codes for various STB's in NZ. Who's keen to buy a pronto remote and go about it? hehe no takers?

Seriously, i'll contribute say $40 towards someone buy a remote and doing their best to make as many codes as they can, and ideally keen to lend it to others to help make codes too.

How about we start with a list of the STB's for starters. eg what boxes (make/model) are there for Saturn, Sky Digital. anyone got any dirt on Sky boxes or sky in general? heh

Hmm, I saw a post on This Link (http://www.tivocommunity.com/tivo-vb/showthread.php?s=&threadid=167585) about someone creating a TCL app to remove the Sky+ Red-Dot they get in the UK.
In one of the posts, someone showed a brief snippet of code using irtest
to send IR data.

There is also This post (http://minnie.tuhs.org/pipermail/oztivo/2002-August/000585.html) on Minnies oztivo maillist archive about using IR Test to capture the information from other remote controls.



switcherstart -k
irest -t /dev/ttyS0 -l
Will output something like:
174.0000.1 85.0175.0 10.0261.1 10.0272.0 10.0283.1 9.0294.0 10.0304.1
10.0315.0
10.0326.1 10.0337.0 9.0348.1 10.0358.0 11.0369.1 9.0381.0 9.0391.1
10.0401.0
11.0412.1 9.0424.0 9.0434.1 11.0444.0 9.0456.1 10.0466.0 10.0477.1
10.0488.0
9.0499.1 10.0509.0 10.0520.1 32.0531.0 9.0564.1 10.0574.0 10.0585.1
10.0596.0
9.0607.1 10.0617.0 10.0628.1 32.0639.0 9.0672.1 32.0682.0 9.0715.1
10.0725.0
11.0736.1 9.0748.0 9.0758.1 11.0768.0 9.0780.1 10.0790.0 10.0801.1
10.0812.0
9.0823.1 10.0833.0 10.0844.1 10.0855.0 9.0866.1 10.0876.0 10.0887.1
32.0898.0
9.0931.1 32.0941.0 9.0974.1 32.0984.0 11.1017.1 30.1029.0 10.1060.1
32.1071.0
10.1104.1 31.1115.0 10.1147.1 125.1158.0

174.0000.1 42.0175.0 10.0218.1 122.0229.0



Which looks similar to whats in the IR database in the Tivo MFS for each digit.
[without the leading 2 numbers which encode the frequency of the IR].

So, you can probably skip the Pronto and just use the Tivo to build your code database.

You jusy have to kill the "switcher" process to do this (swticherstart -k), then reboot your TiVo afterwards to restore normal operation.

FWIW - My Sky DigitalDecoder is a Pace, I use the UK Tivo "Pace" STB setting and find the "medium" setting works best. Same for my US Tivos.

Oh, yes, before anyone asks about the Sky UHF Decoder - forget it, the codes change on that remote with every button press and cannot be learned or played back by the Tivo AFAIK.

number6
04-04-2004, 07:43 AM
Heres the Command line options for the /sbin/irtest program (I got it by running strings across the binary, not sure if the program prints this message or not):



Usage: %s -t tty -w -l -v -?
-t Specify TTY, default is /dev/cua1.
-w Print IR waveform.
-l Print pulse length report.
-v Print verbose Sony IR decode information.
-b IR blast test (Sony volume up command).
-s n Turn on some LEDs.
-c n Turn off some LEDs.
-r Read state of LEDs.
-e Exercise commands during standard mode receive.
-d Diagnostic loopback mode for IR.
-- Remaining args are a TiVo remote code to blast.
-? This message.


Not sure what -w does - might be interesting to play with it as it may save some pronto-ing.
Same for -l which is what it spat out before
(and -v looks interesting too - if you have a Sony remote).
Using -w and -l you could probably put together a simple script to capture any IR commands from any remote and turn it into valid IR blast data to control any set-top box.

number6
04-04-2004, 08:47 AM
I fired up irtest on my UK Tivo
using this command:


/sbin/irtest -t /dev/ttyS0 -w -v -l


And got these results when I pressed VCR change channel buttons 1 2 & 3

Might need to cut and paste this test below into Notepad or similar to get it all in one line. Forgive the very wide listing of this but it makes it much clearer when shown this way.



Microcode version 00034.

***********************************************... ........************...........************....... ....************...........************........... ************...........************...........**** ********............***********************....... ....************************...........*********** *...........***********************............*** ********.......................................... .................................................. .................................

47.0000.1 10.0048.0 11.0059.1 10.0071.0 11.0082.1 10.0094.0 11.0105.1 10.0117.0 11.0128.1 10.0140.0 11.0151.1 10.0163.0 11.0174.1 10.0186.0 11.0197.1 11.0209.0 22.0221.1 10.0244.0 23.0255.1 10.0279.0 11.0290.1 10.0302.0 22.0313.1 11.0336.0 10.0348.1 124.0359.0

000000011010 (good Sony12) 580
Sony 12: 580
<repeats 5 more times>


***********************************************... ........************************...........******* *****...........*************..........*********** *...........*************..........************... ........*************...........****************** *****...........************************.......... *************...........************************.. .........************............................. .................................................. ............................................

47.0000.1 10.0048.0 23.0059.1 10.0083.0 11.0094.1 10.0106.0 12.0117.1 9.0130.0 11.0140.1 10.0152.0 12.0163.1 9.0176.0 11.0186.1 10.0198.0 12.0209.1 10.0222.0 22.0233.1 10.0256.0 23.0267.1 9.0291.0 12.0301.1 10.0314.0 23.0325.1 10.0349.0 11.0360.1 122.0372.0

100000011010 (good Sony12) 581
Sony 12: 581

<repeats 9 more times>


***********************************************... .......**************..........******************* *****...........************...........*********** *...........************...........************... ........************...........******************* *****...........***********************........... ************...........************************... ........************.............................. .................................................. ..........................................

47.0000.1 9.0048.0 13.0058.1 9.0072.0 23.0082.1 10.0106.0 11.0117.1 10.0129.0 11.0140.1 10.0152.0 11.0163.1 10.0175.0 11.0186.1 10.0198.0 11.0209.1 10.0221.0 23.0232.1 10.0256.0 22.0267.1 10.0290.0 11.0301.1 10.0313.0 23.0324.1 10.0348.0 11.0359.1 121.0371.0

010000011010 (good Sony12) 582
Sony 12: 582

<repeats a bunch of times>


Now, what this shows is this:

1. The -w flag prints out a "string" containing * when the IR led was lit and "." when the IR led is not lit [dark].

2. Each * or dot represents 1 time interval (I believe this is 17.136uS, but can be deduced from the sony IR code strings as the "initial" IR on/then off burst on Sony remotes has a fixed/known duration.

3. The Timing string (underneath the **.. string) shows the timing of each IR "burst", with the number being a floating point number of intervals for each IR burst. the ".1" or ".0" after each string shows whether the IR LED was lit (.1) or dark (.0) for this timing period, so this can be used to determine numbers you need [in fact if you were to read these numbers as is, and ignore anything after the first decimal point, these numbers should probably be able to be used "as-is" to make a "digit" string for the Tivo.

The -v option decodes that string into a valid Sony IR remote code - since I'm using a Sony Remote control, then I should get the correct Sony Remote code value for the button I press and the -v option confirms this code back to me.

(if you want to go and dig up some info on the Sony IR control format to verify this please do so, but trust me, it matches what I know of these codes).

The 010... string printed shows the "Binary" representation of the IR Remote control command [again assuming code is in Sony format, but its shown from MSB to LSB - the reverse of hows its sent by the IR remote] and then it shows the Code length (Sony12 or Sony15 depending on Remote control used, OSny 12 = 12 bit Sony code, Sony 15 = 15 Bit Sony code), then is shows the Hex value of the decoded remote code [58X], where in this case, X will equal 0 for Number 1 key, 1 for Number key 2 and 2 for number key 3 [as per Sony IR remote protocol].

Note: I have removed repeating IR output samples as the Sony Remote normally sends each command 4 times - more times than this again if you press the button longer, hence the variable number of repeats as I probably pressed the keys too long.

Also, note in the Sony protocol the IR command "bits" are sent LSB first, so thats why the ***... string varies after the initial 47(*)10(.) "lead-in" string as the next (i.e. lowest) 2 bits of the IR command are the only ones that change for these 3 different button codes.

Also note - the "58" value will differ depending on what Sony device you are using the remote from - and in the case of a TV or VCR, what "device" code (1,2 or 3) you are using [in my Case it was VCR remote, set to VCR code "3"]

Given this information, we should be able to match this up with what TiVo has in its IR database for any Sony Device, and then work out what the additional bytes on the front should be for timing info.

Then you can kiss your Pronto requirement goodbye and use the Tivo for all your IR code capturing, which with a smart bit of software can deduce everything needed from this information provided by irtest.

timmy
04-04-2004, 03:43 PM
sweet..

ok sounds like a nice little project for someone :)
any takers?

jaidev
04-04-2004, 04:45 PM
nup not me hehe :) well not now anyway... got guide stuff to do

brucer
06-04-2004, 11:59 AM
I've created an IR Code file for the Zenith Sky decoder.. You can grab it at http://www.zitafarm.com/zenithSky.tcl

timmy
06-04-2004, 03:08 PM
excellent Bruce, have put a link to it on my howto.
I hope you dont mind me linking and using your name :)

cheers mate

brucer
06-04-2004, 03:38 PM
that's cool :)

zollymonsta
07-04-2004, 02:59 PM
Theres a standard General Instrument code that works for Saturn's 2200 and 3300 decoders (look on the bottom to see what model you have) the code is
10006 :) Works great. I'm still to see if this works on the older models.

Looks like I had it easy for now. :) Digital Cable still to come, and an unsupported digital box :)

Fuzion
07-04-2004, 10:27 PM
Hi,

I have created a code for this box which I have to decode Sky with.

www.fuzionnet.com/Tivo/MotorolaDTH325-4.tcl

Done using the tivo to capture, used a Palm Pilot (Omniremote) to get Frequency.

Works for me, hope they do for you if you need them.

Steve

ehintz
12-04-2004, 11:01 AM
Anybody had success with this? The reddot folks reference sending the codes thus:

/sbin/irtest -t /dev/ttyS0 -- (code here)

But in testing I consistently get "Cannot find microcontroller on /dev/ttyS0". I can of course kill MyWorld, but that sort of defeats the purpose of having a cmd line way of sending an ir command to the STB.

number6
12-04-2004, 11:27 AM
Anybody had success with this? The reddot folks reference sending the codes thus:

/sbin/irtest -t /dev/ttyS0 -- (code here)

But in testing I consistently get "Cannot find microcontroller on /dev/ttyS0". I can of course kill MyWorld, but that sort of defeats the purpose of having a cmd line way of sending an ir command to the STB.

Just to confirm you are using /dev/ttyS0 (thats Zero not Oh, and S must be capitalised, check also that there is a space between -t and /dev/tty...).

Also, the UK folks had a lot of trouble getting this to work properly, so the IO redirections > and >& are important I believe or it may not work right.

Also, some UK folks reported that it only seems to work properly when doing this from a bash prompt on the serial port [rather than over the Ethernet via telnet].

I know the /sbin/irtest -t /dev/ttyS0 -v etc I did last week worked fine on my UK TiVo.

I tried this command on my UK TiVo from a Telnet session:


/sbin/irtest -t /dev/ttyS0 -- 0 47 34 2 514 259 33 32 33 32 33 96 33 32 33 32 33 32 33 32 33 96 33 32 33 32 33 96 33 96 33 96 33 96 33 32 33 32 33 32 33 96 33 32 33 32 33 32 33 96 33 32 33 32 33 96 33 32 33 96 33 96 33 96 33 32 3 3 96 33 96 33 2424 514 128 33 5529

and it seemed to work [didn't report any errors like you said you got], it only echoed back the Mirocontroller firmware (microcode) version (00034).

The above string is "digit 9" for my Sky Decoder and needs to be one long line.

I found that the string to be sent (0 47 ...) must not be enclosed in single or double quotes or I got a message about Missing Tivo Format string.
Maybe try the above and see what happens in your case.

Also, heres a ls -l of my /dev/ttyS* files:


crw-r--r-- 1 0 0 4, 64 Apr 12 14:20 /dev/ttyS0
crw-r--r-- 1 0 0 4, 65 Jan 20 2003 /dev/ttyS1
crw-r--r-- 1 0 0 4, 66 Jan 20 2003 /dev/ttyS2
crw-r--r-- 1 0 0 4, 67 Apr 4 16:12 /dev/ttyS3


If your /dev/ttyS0 does not have Major/Minor numbers of 4 & 64 resp. try using the device in your /dev folder that does - as there may be naming differences between the UK Tivo software and the V3 Tivo software.

ehintz
12-04-2004, 11:59 AM
Very odd, Number6... I was doing precisely the same thing (except that the ir code is different of course) and getting the errors. I did notice that if I kill MyWorld I get the microcontroller version response, but of course nothing gets sent out the irblaster.

Here's my ls -l


[TiVo [p0] ~]# ls -l /dev/ttyS*
crw-rw-rw- 1 0 0 4, 64 Apr 12 14:29 /dev/ttyS0
crw-rw-rw- 1 0 0 4, 65 Jun 8 2002 /dev/ttyS1
crw-rw-rw- 1 0 0 4, 66 Jun 8 2002 /dev/ttyS2
crw-rw-rw- 1 0 0 4, 67 Apr 12 13:23 /dev/ttyS3

And when capturing ir codes I was certainly using ttyS0. I think perhaps there's some sort of sw difference between the US and UK models causing pain. This is of course bad, because I am looking at modifying those reddot scripts to deal with the PIN.

What brought all of this up in the first place is getting a value for the Sky enter key (it didn't exist in the code list I got from Daniel oh those many months back). I have the value from following the ir howto on minnie, but it's useless without a way of invoking it...

number6
12-04-2004, 12:38 PM
Very odd, Number6... I was doing precisely the same thing (except that the ir code is different of course) and getting the errors. I did notice that if I kill MyWorld I get the microcontroller version response, but of course nothing gets sent out the irblaster.

Here's my ls -l



And when capturing ir codes I was certainly using ttyS0. I think perhaps there's some sort of sw difference between the US and UK models causing pain. This is of course bad, because I am looking at modifying those reddot scripts to deal with the PIN.

What brought all of this up in the first place is getting a value for the Sky enter key (it didn't exist in the code list I got from Daniel oh those many months back). I have the value from following the ir howto on minnie, but it's useless without a way of invoking it...

Umm, have you rebooted your Tivo since you captured those codes for the Enter key via irtest?
On my Tivo once I had captured the codes, the Tivo stopped responding to the IR remote and I had to reboot to restore normal functionality.
I'd suggest a reboot first to verify that it does not work on a "clean" Tivo [right after reboot].

then if that fails, try asking in the Tivo UK forum on tivocommunity.com as I'm sure someone has tried to make the noreddot stuff work with a non-UK Tivo in the UK, so if its a generic "R3.0" software problem, then they will have had the problem also and either have the fix or have thrown it in to the too hard basket.

As I don't run 3.0 on my US Tivos I can't test that part for you either - may be someone else with a 3.0 system can.

The solution could be to get a UK Tivo (or run UK Tivo software on a US Tivo), if there is no other fix.
[Either that or beat Sky with a big stick until they submit and turn off the stupid PIN feature - yeah Right].

Note: I've never been asked for a PIN number by my decoder unless I've tried to record a PPV channel. I have my "ratings" set to the highest (R20), and I don't record movies from Sky Digital either, so I guess I'd never be asked for a PIN in normal circumstances, but I can see it being a problem.

ehintz
12-04-2004, 12:49 PM
Didn't reboot-'cause the tivo I pulled the codes from is my mates which I haven't yet delivered... (used his to pull the code rather than mine since I didn't want to take mine offline). :) Actually, I did subsequently reboot after killing MyWorld to test, and no change was observed. As long as MyWorld is active I can't get microcontroller response.

Unless somebody else here says their US 3.0 works, I'll assume it's a US issue and do some digging in the UK areas... Thanks for the info, it's helpful to know that at least in theory I'm doing this right...

There's probably another way to do this though. Obviously the Tivo can send digits, so all we'd need to do is tap into the stream and tell the tivo what digits to send. Presumably this can be done with a method other than irtest, though I've not the slightest what that method might be.

Oh-and I mentioned this earlier, but Sky seems to have stopped demanding PINs for the moment. Though I shan't be at all surprised if this is just a brief pause before they decide to do something even more unpleasant.