Close

Reverse engineering the Renault Update List display - Part 2

A project log for Smart car radio

I reversed engineered the canbus screen in my Clio and created a bluetooth remote control to listen to webradios without touching my phone.

manuManu 09/28/2017 at 07:090 Comments

My setup to go deeper in the system:

- the original Renault Update List car radio (I will replace it with an Alpine unit in my car, that's why I want to know the display protocol)

- AFFA2 canbus display

- logic analyzer with canbus interpreter

- canbus sniffer with Arduino Uno & canbus shield (cf. previous log)

On the PCB of the display, I discovered a PCA82C250 canbus driver on which I probed the canRx and canTx pins (1 & 3) with the logic analyzer and sniffed the CANL and CANH pins (6 & 7):

To display some text on the screen, four 0x121 Can packets are sent from the head unit to the display. For example, the radio named "Europe 2" on the first preset (button "1" of the head unit, "P1" in the frame) I probed this:

Corresponding data frames:

msg11[8] = {0x10, 0x19, '~', 'q', 0x01, 'E', 'U', 'R'};
msg12[8] = {0x21, 'O', 'P', 'E', ' ', '2', 0x10, ' '}; 
msg13[8] = {0x22, 'E', 'U', 'R', 'O', 'P', 'E', ' '};
msg14[8] = {0x23, '2', ' ', 'P', '1', 0x00, 0x81, 0x81};

The first byte is used as a sort of numbering and follows a sequence: 0x10 -> 0x21 -> 0x22 -> 0x23. The text "Europe 2" is repeated (I don't know why, maybe legacy reasons...) 2 times and spread between the 4 frames.

The first packet (0x10) starts by a fixed sequence of 5 bytes (0x10, 0x19, ~, q, 0x01) followed 3 bytes of text.

The second packet starts with 0x21, then the remaining 5 bytes of text (spaces are inserted if less than 8 characters to display) then 0x10 and space.

The third packets starts with 0x22 followed by 7 chars (spaces are inserted if less than 8 characters to display)

The fourth packet starts with 0x23 followed by the 8th char (or space), a space, 'P' for preset, one char as preset number ('1' in this example). The frame is ended by 3 bytes 0x00, 0x81, 0x81

It seems that, whatever the text is in packets 0x10 & 0x11, it is the text that is in packets 0x22 and 0x23 that is displayed.

Discussions