ediabaslib

Replacement firmware for ELM327

There is now a replacement firmware available for ELM327L based Bluetooth and WiFi adapters, that has the following advantages over the standard firmware:

Bluetooth adapter top Bluetooth adapter bottom

Buy a standard Bluetooth adapter

It is required to buy adapters based on a PIC18F25K80 microcontroller.
Search for PIC18F25K80 ELM327 on Aliexpress. It’s best to buy it with a Bluetooth module based on a CSR BC417 chip. The ones with BK3231 chip are supported too.
For programming the firmware see: programming

Buy a preprogrammed adapter

You could buy the preprogrammed Bluetooth adapter also at EBAY.
There are also Deep OBD OBD-II bluetooth adapters for BMW vehicles types E36, E38, E39, E46, E52, E53, E83 , E85, E86 with a fixed pin 7 + 8 connection available.
Adapters from these links include a license for the BMW coding function of one F series or higher vehicle.

Vehicles E36, E38, E39, E46, E52, E53, E83 , E85 and E86 additionally require a connection between OBD pin 7 and 8 (or a pin7-pin8 adapter) to access all ECUs.
For vehicles with OBD I socket in the engine bay additionally the pin 8 of the OBD II socket has to be connected at the vehicle side (OBD1-OBD2.pdf)!
Hint: For some Android radio models the Bluetooth name OBDII is required for pairing!
Hint: To prevent entering Bluetooth PIN manually on the android smartphone you could use the app Bluetooth Force Pin Pair and configure the PIN accordingly.
For BMW F-models use the ENET WiFi Adapter.

Factory reset

Beginning with firmware version 0.6 there is the possibility to perform a factory reset of the adapter. This resets the Bluetooth pin to 1234, the Bluetooth name to Deep OBD BMW and the mode to D-CAN.
To perform the factory reset you have to open the adapter and connect the unused pad of R26 with GND during power on.
If the firmware updated failed, use firmware update failure procedure.

Use the adapter with INPA, Tool32 or ISTA-D

You could use the Bluetooth adapter on a windows (10 or higher) PC (with INPA, Tool32 or ISTA-D as a replacement for an OBD or ADS adapter. The following steps are required to establish the connection:

Programming ELM327 adapter with Deep OBD firmware

First programming of PIC18F25K80 microcontroller should be done with a PICkit 3 programmer. Here is instruction for flashing ELM327 adapter with Deep OBD firmware.

The source for the firmware could be found in the subdirectory CanAdapterElm.
If not explicitly specified, default LED layout is: (RX LED: PB6, TX LED: BP7).
The subdirectory names below are the Bluetooth chip types:

There are two firmware files, the complete file (CanAdapterElm.X.production.unified.hex) and the update file (CanAdapterElm.X.production.hex) without bootloader, that is only needed by the Deep OBD app.
The latest firmware version will be always included in the Deep OBD app.
Also you can get compiled firmware files from the latest binary package.

ELM327 V2.3 firmware

There is improved ELM327 V2.3 compatible firmware available. It switches adapter to a mode compatible with most ELM327 softwares. Flashing can be done over bluetooth with the Deep OBD app (at the moment this is only available for Bluetooth adapters). Afterwards you can flash the Deep OBD replacement firmware over Bluetooth firmware again.
Binariy files (complete ELM327V23.X.production.unified.hex) and (update ELM327V23.X.production.hex) could also found in the the latest binary package.

Firmware update failure

If the firmware update or switching to the ELM327 firmware fails, all LEDs are active and the adapter stops in the bootloader mode.
In this state it’s possible to retry the update in the adapter menu of the Deep OBD app after reconnecting the adapter and ignoring the error message.