OBD-1 Serial Interface
Some Toyota ODB-1 ECUs have a serial output allowing an appropriate scan tool to read and display live engine operating parameters, similar to what a standard OBD2 scan tool does. This feature is referred to as Toyota Diagnostic Communication Link (TDCL).
Contents |
[edit] Identifying TDCL support
According to Autoshop47, presence of TE2 pin indicates that the ECU supports OBD1 serial output. The TE2 is either on DLC1 or DLC2 connector and the serial output stream appears on either VF1 (DLC1) or ENG (DLC2) depending on vehicle. It is activated by grounding the TE2 pin.
[edit] Which ECUs have TDCL?
According to Autoshop47, serial interface was available on Cressida starting in 1989, Camry starting in 1992 and all Lexus models(?).
This 3S-GTE pin-out file found here suggests that all 3S-GTE after 08/91 have TE2 pin and therefore have the serial interface.
[edit] Serial Protocol
Autoshop47 says it's 100baud with updates every 1.25seconds. Output consists of 14-20 status words.
More info needs to be gathered. For example there appears to be a lot of discussion on this topic on Russian Carina-e forum
Algorithm for decoding the serial stream from chem407: To avoid confusion using "one" to indicate logic 1 and "1" to indicate numbers, like bit number 1 (which could be zero) 1. Look for one (Ищем единицу) 2. Check if it's one, if zero, reset and go to step 1 (Проверяем единицу, если ноль, то сброс и всё заново на шаг 1) 3. If more than 15 ones have passed, then go on. If not go to step 2 (Если прошло более 15 единиц, то дальше ; нет - на шаг 2) 4. Look for starting zero (0th non-standard byte) (Ищем первый стартовый 0 (нулевого нестандартного байта)) 5. Skip half a bit (Отступаем пол бита) 6. Read 14 bits (Считываем 13 бит) 7. Skip 1 bit (get to stop-bit one) (Отступаем бит (попадаем на стоповые 1)) 8. Look for starting zero of 1st byte (Ищем стартовый 0 первого байта) 9. Skip 1.5 bits (skip starting zero and half of 1st bit) (Отступаем полтора бита (пропускаем стартовый 0 и пол первого бита)) 10. Read 8 bits of data (Считываем 8 бит данных) 11. Skip 1 bit (again we are on stop-bit one). Отступаем бит (опять на стоповые 1) 12. If read fewer than 12 bytes goto stop 8 (not done reading 12 bytes) (Если считали меньше 12 байт то на шаг 8 (пока не считаем все 12 байт)) 13. Skip 2 bits (should get us back to start of 13 bytes) ((Отступаем 2 бита (на якобы стартовый 13 байта)) 14. If zero, set a flag that there is something extra, in addition to 13 bytes known to us. Go back to stop 1. (Если 0, то ставим флаг что есть что-то ещё кроме известных пока нам данных (13 байт) и наверх на самое начало - шаг 1.) That's how my program works. Good luck hacking (Вроде так работает моя программка. Удачи в осваивании)
Improved decoding of signals from PC COM port
[edit] Available Software
There exists software written by chem407 member of www.carina-e.ru, which can decode and display this serial data. It is in Russian. Last maintainer appears to be Fuse
It's mirrored here ( CarTester8000StableEdition.rar ), also available from here and here.
Claimed to work on Caldina, Lucida-X 1993 4WD 3C-TE (diesel), RAV4, Starlet, Toyota CarinaE, 7A-FE 1996, Estima 1999 2TZ-FZE.
[edit] Data cable
Cable requires two wires, female 9 pin connector for com port, and a 1.5 - 3.3 nF cap; Wire Te2 and E1 to com port pin 5 wire Vf1 to com port pin 6 Connect both wires with capacitor Cable is complete
[edit] Typical Usage
- Ground PC (do not use a laptop plugged into a power adapter without ground)
- Choose serial port
- Click read button (Читать)
- Start engine
- Data should be read (counter on bottom should increment)
- not all data is understood yet, so you may not see parameter you looking for
- ignore bit 12.7, it is not understood
- oxygen sensor should flop (simply an explanation of normal sensor operation)
- Turn off consumers, A/T in N
- Coolant temp at least 85 C
- Press record (запись)
- start engine
- idle 15 sec.
- stop engine
- wait for 11.0 (starting mixture)
- prop throttle to 2500-3000 rpm, wait 3 minutes
- quickly close throttle - wait 3 minutes
- if AT hold brake, shift to D, wait 3 minutes
- stop engine, stop recording, save record
[edit] Normal readings
- MAP at idle 25-30kPa
- (TPS or ICV?? I don't know) should be at 30-40% when idle
- Ignition normally 10-25 deg - when Te1 + E1 shorted, it's fixed at 10 deg
- Correction when warm normally 1.25-3.75v