This document describes how to replace ELM327 adapter firmware
- ELM327 adapter with PIC18F25K80 chip. For the best models to buy from aliexpress, search PIC18F25K80 ELM37 and refer to #39
- PICkit 3 or 4 programmer
- 12V power supply to power ELM327 adapter via OBD2 connector
From left to right: MCLR
(orange), 5V
(green), GND
(yellow), PGD
(purple), PGC
(blue)
Option 1 (Recommended):
- Download MPLAB X IDE and install it, start MPLAB X IPE and select device
PIC18F25K80
. - Go to the Step2.
Option 2:
- Download and install the PICkit™ 3 Programming App and Scripting Tool v3.10
- Edit the
PICkit3.ini
in the folder where the tool has been installed and add the following lines to the end of it:
TMEN:
REVS: Y
- Download the File
PKPlusDeviceFile.dat
from https://sourceforge.net/projects/pickit3plus/ - Delete original
PK2DeviceFile.dat
in the tool folder, and renamePKPlusDeviceFile.dat
toPK2DeviceFile.dat
- Start PICkit 3 v3.01
- Connect your PICkit 3/4 to the test points on the board of ELM327 adapter (see photo above)
- Connect 12V (pin 16) and GND (pin 4) from power supply to ELM327 ODB2 connector: https://www.obd-2.de/stecker-belegungen.html
- Take
CanAdaapterElm.X.production.unified.hex
fromhc04
folder of the latest binary package - Try to flash CanAdaapterElm.X.production.unified.hex. If it fails with the error "Cannot flash Device-ID", then edit it using Tools->Testmemory to the value in the original hex-file
- Repower Elm327 adapter, connect to it over bluetooth and make a pair with it (standard PIN:
1234
) - Connect to the bluetooth COM port assigned to the paired device on PC or use Serial Bluetooth Terminal for Android in HEX mode
- When sending strings to the adapter you should at least get an echo from the adapter, otherwise there is a problem with the connections.
Try to read ignition pin state with the following command (hex values):
82 F1 F1 FE FE 60
The response should be:82 F1 F1 FE FE 60 82 F1 F1 FE <state> <checksum>
where bit 0 of<state>
will be set to 1 if ignition is on.