Programming the OPEL TID
My program displays several scroll texts and the current speed on the
display of an Opel TID.
You will also find all which is neccessary to program the
The TID protocol is based on the I2C protocol but there is one extra
Here you can find a very good description of the protocol in German: http://www.carluccio.de/index.php?page=pro-tid
Here the same in English from Eelke Visser with examples for a
tachometer and fuel control: http://www.eelkevisser.nl/display.htm
I use a PIC16F84A from Microchip
to control the TID. The reason is simply that Eelke Visser provides
source code (GPL) for this chip which made the development easier.
Programming the PIC
If you want to save the costs for a starter kit you can easily build
your own programmer. I use the Classic Tait Programmer for which the
components cost only a few Euros.
Here is my programmer:
I use PiKdev to develop the
PiKdev supports the Tait programmer and can program the PIC16F84 and
The application runs under Linux with KDE. There is also an addon to
calculate delay loops, PiKloops.
The compilation of the assembler code can be done with gpasm.
There is also an simulator for PICs under Linux: gpsim
The scroll texts are too large for the internal EEPROM of the PIC1684,
therefore I save them in a 24C65 EEPROM from Microchip.
The 24C65 is controled via an I2C interface.
The programmer can be built easily, too. You can put it on the same
board as the PIC-programmer.
Debian users can use eep24c
which uses the following schematic:
Board to connect to TID
Schematic (Eagle format): Schematic
The PIC can be placed together with the 24C65 and a fixed voltage
regulator on a small board. This will fit behind the TID without
My schematic is based on the layout of G�bor Gr�tzl (fogy.zip).
With the transistors at the outputs it is not needed to switch
input/output for the B ports.
The pin DIS is connected to the antenna signal (Pin 8 at Corsa B).
Godja Cristian has
created a PCB: circuit.zip
Version 1.0 (only scroll texts)
Version 2.1 (with speed display)
The program shows a welcome message when the car is started and then
every 5min a message from the EEPROM as scroll text on the TID.
The texts in the EEPROM begin at addresses 0000, 0100 to 1F00 and can
be 256 characters long. If you use a 64kBit EEPROM then 32 texts are
possible. All texts must have a null byte at the end.
The archive contains a PHP script which can convert the texts to a
format that is readable by txt2ihex.
The display switches between date, scroll texts, speed and top speed.
1. Date: 1min
2. Speed: 1.5 min
3. Top speed: 10s
4. Speed: 1.5 min
5. Date: 1min
6. Scroll text
The 24C65 includes texts which are displayed as scroll texts on the
You can get the speed signal from SDV at the TID connector. This
can be used to display the speed with much more accuracy than on the
There are 32 impulses for every rotation of the wheel on SDV. If you
know the wheel circumference you can calculate the current speed.
The time to count the impulses is set to a value where the number of
impulses is equal to the speed in km/h.
T = (3.6 * U) / 32 (U: circumference, e.g.
After every speed measurement the top speed is changed, if needed. It
is permanently stored in the PIC's internal EEPROM.