Go Down

Topic: Bike interface OBD (Read 103146 times) previous topic - next topic


Yes it is strange but maybe the TPS is limited by the ride by wire maps on the ECU while not in gear and a very low RPM.... I have to test it on the road logging the value.

I'll let you know


I just got started with this library.
I got a vfr 1200 and want to create a new cockpit.

I've order the additional component. And started with the emulator on a pi 3. But I can't get it to work with the latest version of python.

It doesn't handle request.clear()
Can you help out with a new version?



Jun 03, 2019, 10:28 am Last Edit: Jun 03, 2019, 10:30 am by sudolea
(Sorry, this post should have come in another thread on this forum)



I finally got the OBDII port hooked up to my bike and want to test the 21 08 command that TriB mentioned in post 190. I am hoping for some assistance so that when I go to try i'm not stuck researching for hours to get it to work.

Initialization command (Post 190): ATWM8012F1013E\nATSH8112F1\nATFI\nATSH8012F1

Bluetooth Terminal App:

"Bluetooth Terminal" by Qwerty

My questions:

1) do I initialize through RaceChrono App and then use a bluetooth terminal to send the 21 08 command? Or do I send the Initialisation command directly through the bluetooth terminal application?

2) To send the 21 08 command what is the exact numbers that I have to type in the command prompt?



If you want to configure RaceChrono to make it work, take a look at Anttis Forum:
There you will find all you need  8)


Hey guys would this work on Yamaha? I sniffed some communication lines from the YDS scan tool and I cant seem to understand the protocol and format. See below

Line 1: Initializing ECU
FD 00 E5 ED E5 ED FE 10 FF 15 FE 10 FF 15

Line 2: Sensor Data Log
00 00 01 00 02 06 03 57 12 00 13 00 0A 00 0B 00 14 00 15 00 16 00 17 00 20 00 21 00 04 03 05 00 06 FF 07 FF 08 02 09 99 0E 00 0F 00 42 FF 41 F2 26 00 27 27 30 04 31 02 32 50 34 02 37 80

These 2 lines keep repeating over and over.

I dont know if any of this makes sense. But I need to figure out what is the Transmit command so I can get a reply from ECU



Hello swellracing,

as far as I know, Yamaha does not work with a header. And I cannot see any kind of format with known SID and PID values, which Suzuki and Kawasaki are using.
So it is not a proper KWP2000 or ISO14230 protocol.

If both lines are getting repeated over and over, it seems to be a keepalive-value rather then a real message.

So to guess what this values means, we need:
  • The message from YDS to the adapter, accordingly to what will be displayed on the YDS-tool (f.e. RPM)
  • The response from the bike to the YDS-Tool, with the value shown within the tool (f.e. 2,500)

Then move on to the next value like speed, temperature, pressure, etc.
Or reading diagnostic information.


Hi Guys,

I have had a quick read of this thread and it seems to be olong the lines of what I am chasing.

Firstly, I am just getting into this Arduino thingy so be gentle.

I have a Suzuki VZ1800, the tacho has crapped itself so I want to do a bit of a custom job with fancy effects on a colour disply. You guys have managed to play with the OBD code from the ECU, what I am specifically looking for is the data stream from the ECU to the tacho. I know what wire it is on and I have captured a couple of minutes of data with a logic analyser but it is all Greek to me. Where do I start? How do I pul apart this data? I am assuming there will be some sort of start byte. How would I recogonise it?

Would it be possible for one of the GSX owners be able to have a play and detemine what I am looking for or at least direct me in the right direction.



Hi Dragondude,

it is possible to grab the cable from the ECU to the tachometer. There are several different approaches. It can be controlled by raising voltage on older bikes. But also by some kind of a bus-like system.
There are plenty of aftermarked speedometer, which also can show the milage and stuff.

This thread covers the diagnostic interface, only. Which will not cover what you want.

Me personally does not know enough about the communication between the ECU and tachometer-unit.


Thank TriB, I will keep slaving on with it. As far as buying a speedo it sort of defeats the purpose. My brain will cease up if it doesn't get used.


Hello Guys,

I currently got a diagnostic interface borrowed and will sniff what it will exchange.

My approach will be to sniff the commands, which will be sent from the software to the bike for
  • All Data in 0x08(Where is which data)
  • DTC (Diagnostic Trouble Codes)
  • Test functions (Activate fan, drive exhaust valve, etc.)

Most of it is already known. But not everything and some PID´s are still unknown or the calculations are wrong.
  • Fix Calculations
  • Find more functions
  • Understand the diagnostic trouble codes

On top of that, I found several pieces of software which partially were open source or easily extracted  :smiley-roll: They even could set some values like speed limits, gear restriction, max RPM or write whole maps.
Nothing I´d do, but interesting to know.

It seems that this adapter is also capable of my Kawasaki. I´ll check that afterwards and go on with the same approaches, then.

Hopefully I can figure some things out, we currently do not know and make my Sketch more stable with this findings.


A small update about my current findings.
They are nothing totally new, but maybe give you some insights.

First of all: RPM
I was sure, it is easily calculated (A * 255 + B) * 2 but that not seem to be correct!
The right equation should be: (A * 255 + B) / 255 * 100.
This will explain my RPM drop over 14.000.

Manifold Pressure: A * 166.7 / 255 - 20 => kPa
Engine Coolant: A * 160 / 255 - 30 => °C

DTC works like that:
>>80 12 F1 04 18 00 00 00 9F
<<80 F1 12 0E 58 04 03 51 A0 03 53 A0 03 54 A0 16 55 A0 D9

You all know the header, so I will not deepdive into that!
04 Number of Errors
03 51 P0351 Ignition coil A circuit malfunction
03 53 P0353 Ignition coil C circuit malfunction
03 54 P0354 Ignition coil D circuit malfunction
16 55 P1655 Secondary throttle motor circuit malfunction
A0 Seperator

Now you have like 2 * 5 error storages:
80 12 F1 02 21 40 E6 -> 80 12 F1 02 21 45 EB
80 12 F1 02 21 50 F6 ->  80 12 F1 02 21 55 FB
This five "4X" requests give me values from the P1655 message. All equal.
The "5X" requests gives me slightly different values, because the malfunction appeard during a started engine. So it will give you some data, when the error happened:
80 F1 12 12 61 50 03 53 A0 FF 4A BD 62 AD B8 03 8F
03 53 Trouble Code P0353 All the same, not 0351 or 0354  ::)
A0 FF Placeholder, Space, idk. Equal on any message
4A BD RPM (74 * 255 + 189) 19133 / 255 * 100 = 7.503
62 Throttle Pos 98 / 255 * 100 = 38% || 98 / 2 = 49° (Not totally sure about the last calculation)
AD Manifold Pressure 173 * 166.7 / 255 - 20 = 93kPa
B8 Engine Coolant (184 * 160 / 255) - 30 = 85° Celsius
03 Gear 3
BF SecThrottle 143 / 255 * 100 = 56%

An open question is how the messages are related to each other. 4 Errors reported and 10 outputs displayed (6 different). And the "P"-Number is different in the 04 18 Message to what the error storage shows.
Sadly the Kawasaki DTC Table sparely fits to SDS. Just have several dozend codes, but not all like I got from Kawa.

Next stop: Activating the Fan, Solenoid and stuff.
Then I´d like to ensure the equations of the data from 21 08 message.

Stay tuned :)


Nov 21, 2019, 06:41 pm Last Edit: Nov 21, 2019, 07:10 pm by IgorShobik
Hi all. I carefully read this thread and have been trying to connect to my Kawasaki Versys 1000 2015 motorcycle for three weeks now. None of the existing projects are suitable.
I 100% claim that the diagnostic interface does not have the KWP2000 protocol.There is a very serious suspicion that kawasaki in 2015 made changes to the exchange protocol. Can anyone have any information about this?
Or, maybe someone will respond, who has a kawasaki of 2015 and above, and everything work with KWP2000 - then, maybe my motorcycle has a wiring problem.


Hi Igor,

this thread is about Suzuki SDS. Which is also a KWP2000 protocol and close to Kawasaki, but not equal  ::)
Have you tried my code from my thread?
AFAIK Kawa enhanced the system to OBD2, which is mandatory for EURO4.
But you can still talk to the ECU via KDS (Kawasaki Diagnostic System). Knowing that, I don´t expect it will be different to your Versys.
Do you know which ECU manufacturer your bike has?

Also, afaik it is equal to the Z1000 or Z1000SX, where I know it works with 2015 bikes.

Are you sure the bike has a wiring problem and not your very own schematics? The bikes cable-tree is protected against reverse polarity.


I have z1000 my2012 from USA, in this ECU there is no immobilizer and there is no sensor lambda.

I cannot connect to the ECU via the k-line bus. I use k-line, GND and + 12V from the diagnostic socket. No connection even when using ELM327 and Torque app, but with another z1000 my2017 motorcycle the connection is ok.

Before that I used arduino to connect and the result was negative.

Can you tell me what idea to make a connection?

Go Up