Luc Bulot also reverse engineered the protocol one year
ago. He has send me this e-mail showing his name on the Opel display.
This display is some what newer and more advanced than mine is. Luc
wrote:
Hello Eelke,
Sorry for the late response. All my stuff was packed away as I moved
house.
A picture of the display is attached.
I've wanted to interface to the display since I purchased the car. I
could
not find anything anywhere which explained the way to talk to the
TID. All I
had was some clues from the naming of the signals (SDA, SCL, etc.)
which
would suggest that it was probably I2C.
I then found the Opel forum site. No one would openly help me or
give me
hints, thus I decided to reverse engineer the communications between
the
radio and display.
I borrowed from work a Hioki HiCorder wave recorder and logged the
power-up
sequence of the bus. You could see the diagnostic pulses and initialization
of the bus. I also confirmed that the bus was I2C and noticed how
the MRQ
behaved.
Anyway, knowing everything now I worked on the code and implemented
an I2C
controller and display formatting module (flashing text, scrolling,
refresh
updates etc.).
The TID is capable of having its time set via RDS. In order to get
this to
work you need to unlock the "Global RDS" feature by
holding the buttons in a
certain way. Once unlocked you can send a special datagram to the
display
which contains time and MJD date format as sent by RDS.
I found out that you need to change the locality of the TID using a
TECH 2
tester. I haven't tried this yet - I'll inform you of my progress.
Regards,
Luc.
In a second e-mail Luc told me:
The protocol for a 10 digit display is as follows:
The address byte is 0x4D (0x9B with parity bit) for 10-digit
displays. In
all, you should send 14 bytes to the display.
You will also find that 10-digit displays also respond to 8-digit
datagrams.
Here's another picture for your webpage. It shows some extended
characters.
I plan to use the display for a trip computer. The core code is
nearly
completed, it's now a matter of creating a decent menu system and
fine-tuning some calibration tables and calculations.