- Toyota Obd1 Serial Interface For Arduino Programming
- Toyota Obd1 Serial Interface For Arduino Esp8266
- Toyota Obd1 Serial Interface For Arduino Ide
- Toyota Obd1 Serial Interface For Arduino Microcontroller
- Toyota Codes Obd1
ObdiiUartMkrShield is a socket board for Arduino MKR board to talk with vehicles through ODB-II interface.
This board allows you to interface with your car’s OBD-II bus. It provides you a serial interface using the ELM327 command set and supports all major OBD-II standards such as CAN and JBUS. The board also provides a footprint which mates directly to our FTDI Basic or a Bluetooth Mate. The DB9 connector mates with our DB9 to OBD-II cable listed.
Open up a serial terminal at 115200 bps, 8,N,1 connecting to the serial port the simulator is configured to. Configure the simulator to the protocol you desire to test. Connect to your ECU device (OBD-II board, CAN-Bus Shield, Raspberry Pi, etc.). Toyota OBD1 arduino scanner. Contribute to Danile71/TOBD1 development by creating an account on GitHub. Finally got the interface to work with my 2000 Peugeot 306 HDi, this shows live RPM and ECT being read.The project uses a bluetooth ELM327 adapter to read the d.
- 14,443 views
- 33 comments
- 88 respects
Components and supplies
| × | 1 | |
| × | 1 | |
| × | 1 |
Apps and online services
About this project
Background
Previously, I published a blog of 'IoT4Car' demonstrating how to collect the vehicle data using a SparkFun OBD-II UART board and an Arduino MKR1000 board, and uploading the data into clouds for real-time monitoring. That prototype was made on a breadboard with a lot of wires, which makes it vulnerable to vibrations and bad contact. So I decided to make a customized PCB board, so called ObdiiUartMkrShield, that has similar functionalities but compatible to Arduino MKR board form factor and IO voltage tolerance.
Design Flow
On-board diagnostics (OBD) is an automotive term referring to a vehicle's self-diagnostic and reporting capability. Up till now, OBD has evolved to OBD-II standard with 16 pins interface. 5 signaling protocols are permitted in the OBD-II interface, being SAE J1850 PWM, SAE J1850 VPW, ISO 9141-2, ISO 14230 KWP2000, and ISO 15765 CAN. To simply the design, this PCB only supports Controller Area Network (CAN) protocol.
The communication between an Arduino board and a vehicle is realized by two chips. MCP2551 is used as the interface between a CAN physical layer and a CAN protocol controller. STN1110 is a multiprotocol OBD to UART interpreter that supports all 5 protocols. Here we only use its CAN protocol translation functionality. The schematics of the connection is shown in the attachment.
Though both chip datasheets provide sample circuit schematics, It is worth noting that selection of the capacitors for the crystal is critical. Differential crystal may have different cap loading. Selecting wrong cap values will result in different oscillation frequency, and thus the communication between STN1110 and MCP2551 will fail. Adafruit has a good tutorial of how to calculate the value of the capacitors that attach to the crystal. A general rule of thumb is C1, C2 = 2*CL - 2*Cstray, where CL is the crystal's load capacitance, Cstray is the parasitic capacitance and is approximately 2-5 pF.
PCB Design
The PCB layout is implement in KiCAD, which has no limitation on board size or number of connections. The schematic can be found in the attachment. Below is a screenshot of the layout.
The 3D model is rendered by raytracing engine in KiCAD.
Assembly
The PCB was fabricated by OSHpark. It usually takes 10 days to fab, and a few more days for shipping. After get the boards back, and purchasing the required components, the device is ready to be assembled. For a hobbyist like me, I usually choose through hole components because they are easy to solder. Electrical engineer veterans and professionals should use SMT components because they are cheaper.
Test
To test the ObdiiUartMkrShield PCB board, I wrote a program that can collect the car speed, and uploaded the code in an Arduino MKR1000 board. The program is available in the attachment. The car speed will be collected and plotted on the screen. Place the ObdiiUartMkrShield PCB under the Arduino MKR1000 as a socket, and connect the PCB with a DB9 to OBD-II cable. The OBD-II connector will be plugged into the car.
Here is a simple demo video. After introduction, you will see the comparison of car speed from the car dashboard and the Arduino serial plotter.
Code
Schematics
Author
zhaoshentech
Toyota Obd1 Serial Interface For Arduino Programming
- 5 projects
- 57 followers
Published on
November 5, 2018Members who respect this project
and 80 others
See similar projectsyou might like
Table of contents
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
|
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.
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.
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
Toyota Obd1 Serial Interface For Arduino Esp8266
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 5wire Vf1 to com port pin 6Connect both wires with capacitorCable is complete

Toyota Obd1 Serial Interface For Arduino Ide
[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)
Toyota Obd1 Serial Interface For Arduino Microcontroller
- 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