I took a crack at understanding the data section... It seems pretty clear that the static 16-bits before the midframe burst are the device/subdevice. The parts after though seemed all over the place. The first bits are static 0101 so I've thrown those out. I took the other 16 bits and after a lot of trial and error, I noticed a pattern in some of the bits...but I needed to read them LSB instead of MSB...
Code: Select all
A B C D E
Power = 00001100 01010100 | 0101 00000010 01001111 | A=48, B=42, C=10, D= 64, E=242, D+E=306
1 = 00001100 01010100 | 0101 00010010 01010111 | A=48, B=42, C=10, D= 72, E=234, D+E=306
2 = 00001100 01010100 | 0101 10010010 10010111 | A=48, B=42, C=10, D= 73, E=233, D+E=306
3 = 00001100 01010100 | 0101 01010010 00010111 | A=48, B=42, C=10, D= 74, E=232, D+E=306
4 = 00001100 01010100 | 0101 11010010 11100111 | A=48, B=42, C=10, D= 75, E=231, D+E=306
5 = 00001100 01010100 | 0101 00110010 01100111 | A=48, B=42, C=10, D= 76, E=230, D+E=306
6 = 00001100 01010100 | 0101 10110010 10100111 | A=48, B=42, C=10, D= 77, E=229, D+E=306
7 = 00001100 01010100 | 0101 01110010 00100111 | A=48, B=42, C=10, D= 78, E=228, D+E=306
8 = 00001100 01010100 | 0101 11110010 11000111 | A=48, B=42, C=10, D= 79, E=227, D+E=306
9 = 00001100 01010100 | 0101 00001010 01000111 | A=48, B=42, C=10, D= 80, E=226, D+E=306
0 = 00001100 01010100 | 0101 10001010 10000111 | A=48, B=42, C=10, D= 81, E=225, D+E=306
Rew = 00001100 01010100 | 0101 10000101 10001001 | A=48, B=42, C=10, D=161, E=145, D+E=306
Fwd = 00001100 01010100 | 0101 00000101 01001001 | A=48, B=42, C=10, D=160, E=146, D+E=306
Play = 00001100 01010100 | 0101 11001010 11111011 | A=48, B=42, C=10, D= 83, E=223, D+E=306
Stop = 00001100 01010100 | 0101 00101010 01111011 | A=48, B=42, C=10, D= 84, E=222, D+E=306
Rec = 00001100 01010100 | 0101 01001010 00000111 | A=48, B=42, C=10, D= 82, E=224, D+E=306
Menu = 00001100 01010100 | 0101 10000010 10001111 | A=48, B=42, C=10, D= 65, E=241, D+E=306
Up = 00001100 01010100 | 0101 11000010 11110111 | A=48, B=42, C=10, D= 67, E=239, D+E=306
Left = 00001100 01010100 | 0101 10100010 10110111 | A=48, B=42, C=10, D= 69, E=237, D+E=306
Down = 00001100 01010100 | 0101 00100010 01110111 | A=48, B=42, C=10, D= 68, E=238, D+E=306
Right = 00001100 01010100 | 0101 01100010 00110111 | A=48, B=42, C=10, D= 70, E=236, D+E=306
Sel = 00001100 01010100 | 0101 11100010 11010111 | A=48, B=42, C=10, D= 71, E=235, D+E=306
CH+ = 00001100 01010100 | 0101 11000101 11110001 | A=48, B=42, C=10, D=163, E=143, D+E=306
CH- = 00001100 01010100 | 0101 00100101 01110001 | A=48, B=42, C=10, D=164, E=142, D+E=306
Back = 00001100 01010100 | 0101 01000010 00001111 | A=48, B=42, C=10, D= 66, E=240, D+E=306
Text = 00001100 01010100 | 0101 01101010 00111011 | A=48, B=42, C=10, D= 86, E=220, D+E=306
The | represents the midframe burst...so we have A and B beforehand (interpreting them as LSB as well for A=48 and B=42)... Afterwards, we have the static C as 0101 everytime...
Then we have D and E...I noticed when I converted them to decimal (reading LSB), I got two numbers that always added up to decimal 306. That fits the pattern for all of these learns. Now, I have no freaking clue where the 306 came from (I tired to figure it out but found nothing)... However, I think a protocol could be written that would use either D or E as the OBCs and calculate the other as 306-OBC and it would work. It would probably only work for these exact signals though...I doubt you'd be able to try random other OBCs and have any luck. The 306 and the fixed 0101 (C in my text above) are probably derived some way I don't understand or are additional parameters to the protocol.
I'm not sure if we actually have the capability to write a protocol in such a fashion. I tried to figure out a relationship between them using only bitwise operations, but I found nothing.
Hope that helps...