Newbie question regarding bike OBD

Just purchased race Chrono and am reading post saying about syncing with the OBD.
I know what an OBD is but can anyone tell me how I can connect one to my GSXR 1000 k5 and sync it to race chrono? Do I need to buy a bluetooth OBD module and connect it to the bikes ECU? Then sync it to my phone.


  • aolaol
    edited March 2019
    This is a question that cannot be answered completely without knowing the bike. OBD-II is required by law on cars, but not on bikes. This means there's no guarantee a bike will support OBD-II. Some do some don not. Best way to find out is to ask from brand specific bike forums.

    But for example, on my 2018 KTM 790, which supports OBD-II as standard, it works like this. Connect an OBD-II adapter cable to the 6-pin KTM diagnostic port. And then connect a OBD-II reader to end of that cable. Then you can just add the OBD-II reader in RaceChrono settings, and use as you'd use it with a car. There's a list of recommended readers in the Support > FAQ on this web site.
  • This can be answered completely ;)
    No, the bike does not support OBD II. OBD was just a standard for trucks in 1996, then cars ~2005 and introduced for bikes not before 2018.

    But yes, you can build a custom device with an Arduino (or similar) and translate the values into OBD compatible values. Or use the upcoming feature to use custom PID´s in RaceChrono.
    I did that for my Kawasaki and enhanced it to Suzuki (but not yet published, due to some reliability issues)
    as you can see here

    And there are several other solutions, which are made open source!
  • Thanks guys.
    I`ve done a search and found this.

    I`ll check out the recommended CAN bus readers in the forum.

    I take it once it`s mated to the app, you can download the revs to the app and then sync it with a vid.

    That vid above is good! How did you get your BPM reading?
  • This cable is for OBD II. As I wrote: Your Bike has no OBD II, neither it has CAN Bus.
    You bike uses K-Line communication KWP2000 (ISO-14230).

    It could be possible to connect an ELM327 device (for which this cable was designed) with that cable to you bike. But you need a custom initialization process.
    And you need a custom PID. One!
    Because the bike gives you all information in a single response. I don´t expect @aol to design the custom PID functionality in this way.

    You will not get around a custom solution with a microcontroller...
    Please find anything needed here:

    PS: I recorded the video with a Garmin Virb XE camera. It is compatible with a HRM-strap.
  • @TriB that's interesting information! I could support multiple data channels per PID. Do you have more info? I'd be interested seeing whole terminal session, starting from initialisation to requesting the PID couple of times. You can also email that info to tracks(at)
  • After some further research (together with aol), we got some new findings.

    The adapter cable from the link above won´t work! It´s connectors are wrong and maybe the plug also won´t fit. SDS has (with the clip on the top, bikes perspective):
    | + 0 0 |
    | 0 K - |

    It is possible to reconfigure the ELM327, to "speak" SDS. This means, the communication would be possible. But that does not mean, the values can be understood by any application (They must be converted: separated & recalculated).
    aol is working on that and he´s aware about how it must be done, theoretically.

    I just messed around with some cables, plugs and adapters. More or less connected a cheap ELM327 china clone to the bike with three cable lugs.
    It doesn´t work! The ELM got power and responded to some commands. But the reconfiguration didn´t work. Most AT-commands were answered with a "?" command unknown. I guess it is due to the clone version of the adapter...

    So I cannot create test data, aol could work with. An original ELM327 might work, I don´t know. What I´ll do is to create some data with my very own adapter, so at least aol can check the new custom PID functionality.
  • @TriB, thank you for testing! Let's continue our email exchange, maybe we can figure something out eventually.
  • @TriB is KDS/SDS still limited to 10 or less updates per second? When I looked into this it seemed to be the update rate was not very fast.

  • Hi Jeff, yes it is. You can ignore more or less the timing on your side, the ECU will just answer delayed. So every ~120 - 140ms you can receive a dataset.

    But as you will receive all values at once, you can temporary store them and speed the communication up a lot.
    If RaceChrono questions for RPM, Temperature, Speed and TPS, you can theoretically get 4 values per 140ms, which leads you to an impressive update rate.
    This only works for SDS. On KDS you only get a single value per request and cannot optimize this.
  • Hi TriB,

    Any progress on this topic? I have a OBDLINK LX and the racechrono beta version on my Suzuki gsxr750 k5, so I could test some things. Basically I am at the same level of being able to send some commands, but not getting any data. Just need to know what commands to give to racechrono. Maybe you can help out?
  • Hello @Pilz
    aol already introduced this feature in the latest beta. As I understand, it is not completely capable of processing/converting all data at once, but this will be available, soon.

    Until then, you can test it yourself with a Notebook or Smartphone (App: Serial Bluetooth Terminal).
    You have to reconfigure the initialization process, keepalive-message and the format. Then you can test receiving the dataset.
    Here is an explanation, how to do this:

    These commands also can be added to the custom init process in RaceChrono.
    Good luck :)
  • aolaol
    edited June 2019
    @TriB I think you're referring to our pre-beta discussions. I did change the data handling before the release. Now RaceChrono should be able handle these long responses. So you can do equations with bytesToUint etc. functions over all the response bytes.

    I haven't tested any of this, but in theory you should be able to set the correct initialisation string, and then just create channels with that one PID 2108 and appropriate equations.
  • @TriB @aol thanks for the replies and tips. I tried some other things, but I still don't get any data. By using a bluetooth terminal i was able to discover that my bike ECU did not respond to the ATFI command nor the 2108 command which should give the data. For ATFI it gives ? And for 2108 it says unable to connect. So I first need to solve this I guess before trying things in Racechrono. I will try ATSI and perhaps some other codes I found online. I am also planning to use a sniffer program on my laptop to see what initialisation command the SDS monitor program sends to the ELM327/ECU. If anyone has some other suggestions, please let me know. Will continue with it next week. I'm still convinced it can be done, just need to figure out all the required codes and commands step by step :)

  • aolaol
    edited June 2019
    Just guessing here, try
    > ATWM8012F1013E
    > ATSH8112F1
    > 2108
    > ATSH8012F1
    > 2108

    It should initialise the bus on the first PID request. Also consider that the wires might not be correctly connected, as it says "Unable to connect".
  • edited July 2019

    In the past weeks I made a little bit progress. I managed to read data with the terminal, but have not yet succeeded to read the data in racechrono. It turned out i had to manually set the protocol to 5, see pictures below, and the I can read data.

    The top right datapoint is for throttle position, it shows different numbers for closed and fully open. So I still think it can work and that it now is just a matter of putting the right codes on the right place in racechrono.

    Unfortunately, I will not be able to do any further research as I totalled my bike a few weeks ago and and lost my odblink during the crash. Maybe in the future I will try to get it to work on my streetbike (R1 '07) with the carista that i still have.

    @aol thanks for the support and all the good work!

  • Oh, what a mess that you totaled your ride :(
    Hope you are fine!
    Thanks that you shared your findings, anyway!
  • aolaol
    edited July 2019
    @Pilz Sorry to hear about the crash!

    Looks like you managed to access the data successfully.

    Way to add it to RaceChrono would be to create a vehicle profile with special init string and custom channels.

    OBD-II init string: ATWM8012F1013E\nATSH8112F1\ATFI\nATSH8012F1
    OBD-II protocol: 5

    And then add all channels with PID 0x2108 and equations to parse the channels from the byte array. The Suzuki's SDS protocol has been reverse engineered (Google gives many sources), so I'm thinking at least some data should be easily extracted.
Sign In or Register to comment.