ArduinoHondaOBD
Collections of Arduino codes that reads and translates Honda OBD codes to ELM / OBD 2 PID codes. It also process and displays the output to a LCD or transmit the output to a bluetooth channel.
Install / Use
/learn @kerpz/ArduinoHondaOBDREADME
ArduinoHondaOBD
An arduino code that reads Honda OBD Protocol and translates it to ELM327 protocol. I use Torque app to read and display the data on my android phone (via bluetooth), and a LCD (2x6) to display it on my car's dashboard.
Please refer to the screenshots below.
Applications
- Datalogging
- Diagnostics
- Trip Computer
- Etc
Supports
- Honda ECU's before 2002
Files
- hobd_uni - unified code for ELM bluetooth and LCD display with other improvements.
- hobd_elm - implements Honda OBD to ELM OBD2 protocol (bluetooth) - not updated
- hobd_lcd - implements Honda OBD to LCD display - not updated
- UNI_wiring.png - Unified wiring diagram for arduino UNO (compatible)
Wiring for hobd_uni (Joined ELM and LCD codes)
Honda 3 Pin DLC Arduino Uno
Gnd --------------------- Gnd
+12 --------------------- Vin
K-line ------------------ Pin12
HC-05 Bluetooth Arduino Uno
Rx ---------------------- Pin11
Tx ---------------------- Pin10
LCD 16x2 Arduino Uno
RS ---------------------- Pin9
Enable ------------------ Pin8
D4 ---------------------- Pin7
D5 ---------------------- Pin6
D6 ---------------------- Pin5
D7 ---------------------- Pin4
VO ---------------------- 10k Potentiometer (+5V to Gnd)
Piezo Buzzer Arduino Uno
(+) --------------------- Pin13
(-) --------------------- Gnd
Tact Switch Arduino Uno
(+) --------------------- Pin17 (A3)
(-) --------------------- Gnd
Voltage Divider Arduino Uno
+12V divider circuit ---- Pin14 (A0)
(680k ohms and 220k ohms)

Wiring for hobd_elm (Deprecated use hobd_uni)
Honda 3 Pin DLC Arduino Uno
Gnd --------------------- Gnd
+12 --------------------- Vin
K-line ------------------ Pin12
HC-05 Bluetooth Arduino Uno
Rx ---------------------- Pin11
Tx ---------------------- Pin10
Wiring for hobd_lcd (Deprecated use hobd_uni)
Honda 3 Pin DLC Arduino Uno
Gnd --------------------- Gnd
+12 --------------------- Vin
K-line ------------------ Pin12
LCD 16x2 Arduino Uno
RS ---------------------- Pin9
Enable ------------------ Pin8
D4 ---------------------- Pin7
D5 ---------------------- Pin6
D6 ---------------------- Pin5
D7 ---------------------- Pin4
VO ---------------------- 10k Potentiometer (+5V to Gnd)
Screenshots (LCD 16x2)

Screenshots (Andorid App TORQUE)

NOTES
- Added button for changing page (5ms) and changing ecu mode (3s).
- Added Fault codes reader @ lcd page 3
- Added LCD @ I2C support
- #define LCD_i2c TRUE // Using LCD 16x2 I2C mode
- Added direct HOBD access API (ELM mode) used for undefined PIDs on OBD2
- // direct honda PID access
- // 1 byte access (21AA) // 21 = 1 byte, AA = address
- // 2 bytes access (22AA) // 22 = 2 bytes, AA = address
- // 4 byte access (24AA) // 24 = 4 bytes, AA = address
- Added direct Arduino Pin access API (ELM mode) used for keyless entry and other stuff
- // set arduino pin (ATSAPNNX) // NN = pin, X = value (value is 1 or 0)
- // get arduino pin (ATDAPNN) // NN = pin
- Tested on P2T ODB2 stock and P30 ODB1 chipped
TODO
- Add 128x64 LCD @ SPI support
- Add 20x4 LCD @ I2C support
Related Skills
node-connect
334.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.2kCommit, push, and open a PR
