Summary of OBD-II ELM327 compatible AllPro adapter using PIC18F2455
This article describes the AllPro OBD-II adapter: a USB/Bluetooth interface compatible with the ELM327 command set that supports major OBD-II physical layers (J1850 PWM/VPW, ISO 9141-2, ISO 14230-4, ISO 15765-4 CAN). It is built around NXP LPC1517 Cortex-M3 (or similar LPC15xx), with firmware available on GitHub and prebuilt hex; PCB Gerbers and programming instructions are provided. A Bluetooth variant uses an SPC-CA v3.0 module (Beken BK3231). The kit includes an eight-pin connector mapping to the J1962 vehicle OBD-II connector.
Parts used in the AllPro OBD-II adapter:
- NXP LPC1517JDB48 ARM Cortex M3 72MHz processor (or LPC1549 alternative)
- State Configurable Timers (on NXP chip)
- CAN transceiver and CAN FIFO buffers (on board)
- USB interface circuitry
- J4 eight-pin OBD-II connector
- SPC-CA v3.0 Bluetooth module (Beken BK3231) for Bluetooth AllPro
- Power supply components for Vehicle Battery Positive (pin 16)
- PCB and supporting passive components (as per Gerber files)
- Bootloader/USART or CAN programming interface circuitry
Overview
This adapter allows you to interface with your car’s OBD-II bus. It provides you a USB interface using the ELM327 command set and supports all major OBD-II standards:
- SAE J1850 PWM
- SAE J1850 VPW
- ISO 9141-2
- ISO 14230-4
- ISO 15765-4 CAN
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.
Adapter firmware:
- AllPro Github repository
- allpro-hex.zip — the prebuilt firmware
The software and other materials in allpro-src.zip is released under GPLv3. If you want to reuse the source code in your commercial products, contact me for a commercial license.
The printed circuit board data are available separately:
- allpro-mfgr-data.zip — Gerbers, drill files
The OBD-II Cable Connector
The adapter uses eight pin connector to link up to vehicle’s OBD-II J1962.
|
Bluetooth AllPro
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:
Source : OBD-II ELM327 compatible AllPro adapter using PIC18F2455
- What OBD-II protocols does the adapter support?
The adapter supports SAE J1850 PWM, SAE J1850 VPW, ISO 9141-2, ISO 14230-4, and ISO 15765-4 CAN. - Which microcontroller is used in the adapter?
The adapter is built around the NXP LPC1517JDB48 Cortex-M3, with LPC1549 as an alternative option. - Is firmware available for the adapter?
Yes, firmware source is available in the AllPro Github repository and a prebuilt allpro-hex.zip is provided. - How can the firmware be programmed into the device?
The NXP chips have a ROM bootloader supporting loading via USART or CAN; instructions and Flash Magic programming guidance are provided. - Are PCB design files available?
Yes, PCB manufacturing data including Gerbers and drill files are available in allpro-mfgr-data.zip. - Does the adapter support Bluetooth connectivity?
Yes, a Bluetooth AllPro version uses an SPC-CA v3.0 module based on the Beken BK3231 chip. - What connector does the adapter use to connect to the vehicle?
The adapter uses an eight-pin connector mapped to J1962 OBD-II pins as listed in the article. - Which pins on J1962 are used for CAN High and CAN Low?
CAN High is mapped to J1962 pin 6 and CAN Low is mapped to J1962 pin 14. - Is the project software licensed for reuse?
The source in allpro-src.zip is released under GPLv3; contact the author for a commercial license.