| There are two protocols for communicating with a Opel
display. The first protocol was analyzed by me and is described at the
Opel display page. This protocol works with
displays that have 8 characters. The protocol itself uses 11 bytes.
The second protocol is used by displays that have 10 characters and
uses 14 bytes. This was first shown by Luc Bulot as you can see here.
Luc indicated how it globally worked but did not give all the details.
I do not own such a display and could not test anything. Therefor
Edwin and David did some testing with a different 10 character
display. They found that my implementation of the 10 character
protocol did not function. But that their displays are backwards
compatible with the 8 character protocol, after we altered the timing
a little, which you can read here.
Except for Luc we were still not able to get 10 characters at a
display. Next, Fabio Bergamasco contacted me and showed that he had
altered my source to get it going at a 10 character display. He showed
me the following pictures and shared his source named dispv09.zip.
The changes between the protocols is described down below.

The circuit on a experiment board.

Yes, Fabio Bergamasco did it!!!!!

And has 10 characters on the display!!!

The source was changed to run my tacho meter using the 10character
protocol. He introduced some spaces to center the text.

No tacho signal.

I do not know if Fabio has set his function generator to 50 Hz or that
the circuit is picking up the 50Hz noise. Because the signal of 50 Hz
is multiplied by 30 to get to revolutions per minute, 50 * 30 = 1500!!

And a higher RPM value.
There are a number of changes between the 8 and 10 character
protocol. The 8 character was already described at the Opel
display page. The 10 character protocol is described as follows:
- Idle state all lines are high.
- Pull MRQ low for a short period and let it go high again.
- Send a "I2C Start"
- Send the address byte, 0x9B. (The 8 character display uses
0x94!!!!)
- Pull MRQ low.
- Send 13 data bytes. (The 8 character display uses 10 databytes!!!!)
- Let MRQ go high
- Send "I2C Stop"
- We are back in the idle state.
The bytes contain in total 9 bits. First there are 7 bits of data
followed by a parity bit (odd-parity) followed by an acknowledge bit
(Part of I2C specification).
The first byte is the address byte of the display. The next 3 bytes
control the "lights" like "CD", "RDS"
and the decimal points. The following 10 data bytes contain the
characters to be shown on the display using 7 bits ASCII. Decoding the
first block results in:
- 0x9B = 10011011A (This is the I2C address of the display)
- 0x01 = 00000001A (Turn the symbols off)
- 0x01 = 00000001A
- 0x01 = 00000001A
- 0x85 = 10000101A = "B"
- 0x8A = 10001010A = "E"
- 0xA4 = 10100100A = "R"
- 0x8F = 10001111A = "G"
- 0x83 = 10000011A = "A"
- 0x9B = 10011011A = "M"
- 0x83 = 10000011A = "A"
- 0xA7 = 10100111A = "S"
- 0x86 = 10000110A = "C"
- 0x9E = 10011110A = "O"
If you compare this with the 8 character
protocol, you will see that they are basically the same. Only this
protocol uses another address, 0x9B instead of 0x94, and has 3 instead
of 2 bytes for the symbols and 10 instead of 8 bytes for the
characters.
A second change is the speed of the protocol. Fabio decreased the
timer that determines the time length of one bit. This increases the
speed of the protocol. The pause time between two messages was
increased.
Fabio thinks that this 10 character protocol should work with
displays of OPEL AGILA, CORSA C, ASTRA G, MERIVA, FRONTERA and
ZAFIRA
Fabio also shows that if you keep both buttons pushed, an index
code will appear on the display:

The index code
An index code of 011 means that the display expects an original
Opel radio so it will remove the date and accept RDS information if
the radio is turned on. An index code of 012 means that there is not
an original radio installed and the date will always be shown. The
index code can be modified with a Tech2 Opel apparatus. Press both
buttons to view the index code.
I would like to thank Fabio for his great work!!!!
|