So we have out unit unlocked. We have the keypad protocol now time to see how the diaplay works. The keypad never changes its behaviour so the previous section applies and I wont show the keyboard data.
It seems that there are at least 4 modes :
“SAFE” this simply displays the word SAFE and nothing else.
“TAPE” Likewise although there are two direction indicators that show
Text mode. This allows freeform text. There are a number of legends too that sadly cant be seen on my display.
Radio Mode. This displays a frequency. It seems to take an 8 bit step number which the display translates.
All commands to the display start with 0x94, there then follows a command byte and the various commands seem to have different lengths. As with the keyboard there is no CRC generation.
“Safe” mode: Assuming you’ve powered up your radio from cold and its been out of the car a while AND its not had the code disabled (some seem to) you’ll be presented with a screen that says SAFE. This is the code entry screen and it seems to be one of a number of stored screen modes. We see the following commands at boot into safe mode:
0x25, 0x25 : Init from keypad
0x09, 0x61, 0x0B sent along with 0x13, 0x40, 0x00, 0x00 right after. 0x13 is LED and LCD teltale command and this sets a single bit so its possibl this is what actually sets the SAFE display, HOWEVER 0x09 controls the tape direction telltales so this could also be involved here. Until I’m able to extract the codes for the Teltales which will mean being able to see them, I cant be sure what the LED command is doing here. I do plan on sending some of these commands to the display to see what happens so that may help here too. Pressing and holding RDS and TP will send keycode 0x1E and the micro issues a new sequence of commands:
0x9A, 0xE1, 0xFB – No idea what this does.
0x9A, 0x61, 0x0B – This apears to activate the SAFE display.
Once this sequence is done, the second sequence is resent every 2S. Pressing and holding RDS+TP to go into code entry gets the following:
0x9A, 0x13, 0x40, 0x00, 0x00 – 0x13 IS led control. Byte 3 is LCD telltales as far as I can see.
0x9A, 0x23, 0x00 ,0x00 ,0x00 – LCD Clear
0x9A, 0x92, 0x10 ,0x00 – This is code entry mode. the last 4 nibbles are the currently displayed code. so in this case 1000.
Hitting 1,2,3 or 4 to change the code now will resend the above command with the nibbles altered. eg, if you hit 2 twice you’ll get
0x9A, 0x92, 0x12 ,0x00
Pressing and holding TP+RDS will either start a normal boot (next page) or restart the whole process.
On to RDS and Radio modes