Bungzilla wrote:[REMOTE]
[NAME] Arris 5662 - Linux
[TIMING]
[0][N]5[1]304 320[2]312 640[3]616 328[4]616 640[5]304 89696[RC]2[FL]101[RO]13[FREQ]38[FREQ-MEAS]
[1][N]3[1]312 320[2]304 640[3]624 632[RC]1[RP]0[FREQ]35[FREQ-MEAS]
[2][N]7[1]304 320[2]304 640[3]624 320[4]624 640[5]624 38848[6]616 88872[7]624 89704[RC]1[RP]0[FREQ]35[FREQ-MEAS]
[COMMANDS]
[POWER][T]0[D]01300330032140130033003210
[B0][T]1[D]012002200222
[B1][T]1[D]01200220000020
[B2][T]2[D]01300330000360130033000035013003300003412010330021000
For anyone interested in the REM format, above is just a snippet (full code is
here). The [TIMING] section gives you the key to reading the [COMMANDS] section, but here's the kicker, they don't use one key for the whole section, each row gets a new key. The first number in each [TIMING] entry is the number of the key, then in the [COMMANDS] section, the first entry is the name of the button, the second entry is like this "[T]0", that means that entry using timing entry #0, so the POWER button using #0, the B0 and B1 buttons use #1 and the B2 button uses #2, etc.
Here's the key for decoding the [TIMING] entries (taken from
here, section 4.4 on page 8) ...
[0] : Number of the timing
[N][3] : Number of time values inside of this timing
[1]2408 608 : Pulse / Pause pair. Values in µs. The resolution is 8 µs.
[RC]2 : Number of repeats
[RP]24 : Pause between two repeats in ms.
[FL]100 : Framelength of the IR signal (replaces [RP])
[FREQ]40 : Carrier frequency of the IR signal (0 = Not modulated)
[SB] : Code uses a Startbit
[RS] : Startbit is repeated
[RC5] : RC5 Code (No timing info needed)
[RC6] : RC6 Code (No timing info needed)
[NOTOG] : RC5 / RC6 toggle bit will not be used
So, let's break down the first entry...
[0] - this is entry #0
[N]5 - there are 5 burst pairs in this entry
[1]304 320 - this is the 1st burst pair
[2]312 640 - this is the 2nd burst pair
[3]616 328 - this is the 3rd burst pair
[4]616 640 - this is the 4th burst pair
[5]304 89696 - this is the 5th burst pair
[RC]2 - there are 2 repeats
[FL]101 - the frame length is 101
[RO]13 - don't know what this is
[FREQ]38 - the frequency is 38kHz
[FREQ-MEAS] - don't know what this is
Here's another curve ball they throw at you, the numbers in the code are offset down by 1 compared to the listing above, so if there's a "0" in the code, it means to use [1] from above, a "1" means to use [2], etc.
One thing that you quickly learn when decoding IR signals is that the timings are approximate, so with rounding, those burst pairs should be:
[1]300 300 - this is the 1st burst pair
[2]300 600 - this is the 2nd burst pair
[3]600 300 - this is the 3rd burst pair
[4]600 600 - this is the 4th burst pair
[5]300 90000 - this is the 5th burst pair
Experience tells me that this is going to be a bi-phase signal, like RC5 or RC6, where the pairs here being "+300 -300" and "-300 +300". Normal signals are PWM (Pulse Width Method) like NEC1 where the pairs are "+550 -550" and "+550 -1650".
I had to write a spreadsheet with lookup code to find the right key for each button to translate it.
http://www.hifi-remote.com/forums/dload ... e_id=25913
One I got the translated code, I had to convert it to binary, the results being...
110100010100000010 - B1
110100010100000101 - B2
110100010100000110 - B3
110100010100001001 - B4
110100010100001010 - B5
110100010100001101 - B6
110100010100001110 - B7
110100010100010001 - B8
110100010100010010 - B9
110100010100010101 - B0
110100010100010110 - POWER
110100010100011001 - UP_ARROW
110100010100011010 - DOWN_ARROW
110100010100011101 - LEFT_ARROW
110100010100011110 - OK_BUTTON
110100010100100001 - RIGHT_ARROW
110100010100100110 - VOLUME_UP
110100010100101001 - NEXT_CHANNEL
110100010100101010 - VOLUME_DOWN
110100010100101101 - PREV_CHANNEL
110100010100110001 - LAST
110100010100110101 - STOP
110100010100110110 - PAUSE_PLAY
110100010100111001 - RECORD
110100010100111010 - EXIT
110100010100111110 - GUIDE
110100010101000010 - PREV
110100010101000101 - REWIND
110100010101000110 - FORWARD
110100010101001001 - NEXT
110100010101001101 - PVR
110100010101010010 - NO_SOUND
110100010101010110 - OPTIONS
110100010101011010 - MENU
110100010101101101 - VOD
110100010101101111 - SEARCH
Next, I had to try and find a known protocol that matched it, otherwise I'd have to write my own, and I found
TDC-38
This one is further complicated by the fact that our setup for TDC-38 differs from UEI's treatment of it. We regard it as having a fixed bit of 1, followed by two 5 bit device codes and finally a 7 bit OBC. UEI treats it as having a 2-bit device code, followed by an 8-bit sub-device code, and an 8-bit OBC. Neither version treats the final bit of the OBC as a checksum, which is the case here (the last bit is always the complement of the preceding bit). So, I couldn't use the translators built into RMIR, I had to figure out the right hex codes myself and force them into RMIR. (In other words, the OBCs that it displays are not the right ones).
Here are the real OBCs for your signals...
01 - B1
02 - B2
03 - B3
04 - B4
05 - B5
06 - B6
07 - B7
08 - B8
09 - B9
10 - B0
11 - POWER
12 - UP_ARROW
13 - DOWN_ARROW
14 - LEFT_ARROW
15 - OK_BUTTON
16 - RIGHT_ARROW
19 - VOLUME_UP
20 - NEXT_CHANNEL
21 - VOLUME_DOWN
22 - PREV_CHANNEL
24 - LAST
26 - STOP
27 - PAUSE_PLAY
28 - RECORD
29 - EXIT
31 - GUIDE
33 - PREV
34 - REWIND
35 - FORWARD
36 - NEXT
38 - PVR
41 - NO_SOUND
43 - OPTIONS
45 - MENU
54 - VOD
55 - SEARCH