Toyota Obd1 Serial Interface For Arduino



  1. Toyota Obd1 Serial Interface For Arduino Microcontroller
  2. Toyota Obd1 Code Reader
  3. Toyota Obd1 Serial Interface For Arduino Esp8266
  4. Toyota Codes Obd1

Open-source ELM327 OBD adapter

The AllPro adapter is a small device that plugs into your automobile's On-Board Diagnostic (OBD) port, which grants access to the car's computerized self diagnostic system. All cars manufactured in 1996 and later have an OBD-II port, which is usually located under the dashboard on the driver's side.The adapter 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 OBD-II standards:

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.). The OBD-II adapter is capable of outputting filtered and regulated DC 5V up to 2A. So there is no need for additional power cable. All the parts can be connected with wires as following diagram and no soldering is needed. Connecting OBD-II to Arduino Nano. The OBD-II adapter provides power for Arduino and serial UART connection.

Toyota Obd1 Serial Interface For Arduino Microcontroller

Toyota obd1 serial interface for arduino programming
  • SAE J1850 PWM
  • SAE J1850 VPW
  • ISO 9141-2
  • ISO 14230-4
  • ISO 15765-4 CAN
  • SAE J1939

Hardware

The adapter kit schematic is shown here. It is built around NXP LPC1517 Cortex-M3 microprocessor with 64 kB program memory, but can accommodate another chip from same family like LPC1549 with 256 kB if required.The NXP chips has a ROM-based bootloader that supports loading a binary image into its flash memory using USART or CAN.All the software is written in C++ for NXP LPCXpresso IDE which is essentially using GNU toolchain for ARM Cortex-M processors. However, it can be compiled with other pre-built GNU toolchain, like GCC ARM Embedded or even with Keil uVision IDE.

The Highlights

  • NXP LPC1517JDB48 ARM Cortex M3 72Mhz processor
  • 64kB Flash, 12kB RAM
  • Using NXP sophisticated State Configurable Timers to do the precise signal handling for J1850 PWM and VPW protocols
  • CAN FIFO buffers for handling some not-strict ISO-compliant ECUs
  • Botloader for initial firmware programming
  • Low power consumption

See building the adapter firmware from the source code. Or, if you just want to program the firmware check the programming the Adapter with Flash Magic. Also, you might consider ELM329 AllPro adapter. It is year 2018 and most likely you need only CAN protocol.

The link to GitHub repository.

The OBD-II Cable Connector

The adapter uses eight pin connector to link up to vehicle's OBD-II J1962.

J4DescriptionJ1962 Pin
1Signal Ground5
2CAN High6
3CAN Low14
4J1850 Bus +2
5Vehicle Battery Positive16
7K Line7
8J1850 Bus -10

Bluetooth AllPro

Toyota Obd1 Code Reader

Bluetooth version of AllPro adapter is ready-to-use fitted to 'de-facto' standard OBD connector case and paired with SPC-CA v3.0 Bluetooth module based on Beken BK3231 chip. Apparently Beken bought the license for old ARM9E-S core with a substantial discount for their Bluetooth SOC. The core goes back to year 2004. You will need a debugger to program the device though.

Here is the popular Android Torque application output:

USB ELM327

Toyota Obd1 Serial Interface For Arduino Esp8266

The USB version of AllPro adapter is using CH340G USB to UART chip. Here is the schematic.

Toyota Codes Obd1

I am trying to use can bus shield to read data from obd2 and then modify some of the data and then output the modified data to an external device. The external device is normally connected directly to the can bus plug so the data it receives is from the high and low cables. My question is once I modify the message via the processing the data in arduino and using my custom sketch how do I output it back out into the high and low cables from arduino output so that the external device receives the modified data in the hi / low format that the external device it’s expecting when it’s connected directly to the ond2 port.