Datalogging on BMW S1000RR/R 2013-2018

edited June 17 in DIY builds
Hi, I'm trying to set up OBD datalogging on my 2016 BMW S1000R. As far as I know, the motorcycle does not support classic OBD-II, however the messages on the BUS should be similar to OBD.
I have Android 10 and an OBDLINK Bluetooth dongle.
The setup works in general, as I was able to view live data via an app calles "MotoScan".
But I didn't manage to get any logging with RaceChrono nor was I able to view live data via Torque.

In RaceChrono I tried all standard protokolls with activated "fast" or "slow" channels.
I tried non-standard OBD-II
I tried "add channel" and rebuilt some OBD messages.
But whatever I try, as I start the session, instead of showing live data it only says "waiting for data" and nothing happens.

Does anybody have a solution or maybe already managed to get it running for a BMW motorcycle?

I post my debug-logs if thats any good.

Greetings and thank you in advance


  • aolaol
    edited June 23
    As far as I know the S1000RR does not support OBD-II. It does have CAN-BUS, which is also supported by RaceChrono. 

    Here's how to use the CAN-BUS feature with OBDLink readers with RaceChrono: 

    1) Enable "RaceChrono > Settings > Expert settings > Experimental devices" 

    2) Add a CAN-Bus recording device "RaceChrono > Settings > Add other device > OBDLink LX/MX/MX+ Bluetooth (CAN-Bus)", and then select your OBDLink device. Notice this will NOT work on any other reader. Also it will NOT work if you add the OBDLink with "Add OBD-II reader", you need to use the "Add other device" to add the reader specifically as a CAN-Bus device.

    3) You can now add CAN-Bus channels to the vehicle profile.  

    4) In the channel editor:
    - Channel and Channel postfix field defines how the channel shows up in your RaceChrono sessions
    - Source data field is data for testing your equations
    - PID field defines which CAN-Bus message has the information. 
    - The equation field defines where the channel data is located in the message, and how it is translated to actual channel values. The equations are explained here:

    The equations are proprietary for each manufacturer, and often they vary between vehicle models too. The S1000RR CAN-Bus messages have been reverse engineered already, and the message formats are described in this document:

    Translating this documentation to RaceChrono equations is perfectly doable, but requires some knowing some basic computer science methodology like bits and bytes.

  • edited June 30

    Thank you for your support. With the linked spreadsheet it is clear what to do.

    As a test I created a custom PID for RPM
    From the Spreadsheet:
    PID: 10C(h) or 268
    (Byte2 + Byte3(Low Nibble) * 255) * 5

    In Racechrono:
    PID Field = 268
    (bitstouint(raw,16,8) + bitstouint(raw,28,4) * 255) * 5

    I guess this should work, but unfortunately I'm unable to receive data when I start the session, it just says "waiting for data".

    What confuses me most, is the fact that when I choose "test connection" in the settings or start the session and look at the connection, it connects to my OBDLink but most of the time I only get lik 0,1 kbit/s.
    SOMETIMES I get changeing datarates arround 100 to 200 kbit/s. But I don't know why.
    But still, there is no datalogging.
    Furthermore I cannot check the box for "live data" in the Custom PID Screen.

    Any help or advice would be really great. Thank you very much!
  • aolaol
    edited July 2
    Hi, is your bike running when you do this? There could me multiple reasons why this happens, but sounds like there's no messages from the bus with this PID. You could try to use a terminal app to connect to the reader, and see what's going on with your bus.


    Reset device:

    Set protocol:
    ATSPn (Where n is protocol number, same as in RaceChrono settings. Start with ATSP0 for automatic protocol selection)

    Monitor CAN-BUS messages:

    You should see all messages from your bus. Make a note which PIDs you're seeing. These are the ones you can configure in RaceChrono.

Sign In or Register to comment.