Kawasaki Diagnostic Service Reader via Bluetooth
Branch: master
Clone or download
Latest commit ed820a8 Jan 22, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
ECU Emulation Update README.md Apr 27, 2017
HC06_Sniffer Update README.md Apr 27, 2017
.gitattributes :octocat: Added .gitattributes & .gitignore files Nov 5, 2015
.gitignore :octocat: Added .gitattributes & .gitignore files Nov 5, 2015
README.md Update README.md Jul 1, 2017



Kawasaki Diagnostic Service Reader via Bluetooth

Using an Arduino (Nano) to read parameter from a Kawasaki motorcycle by it´s diagnostic system. Requests can be submittet via bluetooth, by any ELM327 compatible device/application. Such as Android App Torque Lite, action cameras like "Garmin Virb X / XE" or other solutions, which are able to communicate with an OBD II Bluetooth Adapter.



Against all cars and trucks, the diagnostic interface is not standardized on two wheels. Neither the plug, nor the communication. Since ~1996 ODB and later on OBD II interface entered nearly every car. The motorbike manufactures are cooking their very own soup.

That´s why I cannot use a cheap (china) OBD II to Bluetooth adapter, to transfer RPM, Speed, Temperatures, Throttle, ect. to my Garmin Virb XE action cam. Also my bike doesn´t have any gear indicator. So I´d like to build my very own.


KDS Bus via K-LINE (Diagnostic plug). In my case KWP2000 (ISO-14230)


  • Arduino Nano
  • HC-06 Bluetooth
  • L9637D
  • Ceramic-Capacitor 10 nF 50 V/DC
  • 510Ohm Resistor
  • SOIC Board (to solder L9637 SMD on it)

The L9637 converts the one wire K-Line bidirectional into a serial signal (Rx & Tx). Connect Rx to Rx, Tx to Tx and VCC to 5V Output from Arduino. VCC, Gnd and K-Line to the Bike. A PullUp-resistor is needed between power supply (VCC) and K-Line! The capacitor reduces the 12V (or more while charging) to 6V to supply the Arduino VIN. HC-06 is a slave Bluetooth device. If needed, you can use a HC-05 master.


This has to be splitted into three parts:


Nearly all bluetooth OBD dongles are using an ELM327 chip, or a similar, cheap china clone. This is controlled/setup via "AT"-commands. They describe the format how data is transmitted, timing, reset the device or return protocol information.


Connection to the kawasaki diagnostic system. How the Arduino speaks to the Bike. Based on the great work of Tom Mitchell (Kawaduino).


Every ELM327 compatible device is using the stock OBD II protocol and its Protocol ID´s (PID). The bike is also using a similar communication. But the PID´s doesn´t mean the same, nor is the calcualtion equal. In that conclusion, the requested PID has to be translated into the according pendant and the result has to be calculated, to fit into the OBD ranges.

The most influential Tutorials/sources:

KDS Protocol


ELM327 AT Commands


My Cameras:

Garmin Virb XE Garmin Virb X

My Bike:


Kawasaki Z750r Black edition

My Videos (more to come)


Racetrack Mettet

My YouTube Channel