Datalogging on BMW S1000RR/R 2013-2018

edited June 2020 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 2020
    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 2020

    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 2020
    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.

  • hi, today i was trying to get data on my s1000rr 2015, with an obdlink lx, but there was no way. It connects via obd can bus, I test the connection and fine, but within the session it does not open any channel or receive data. I was looking at the table of the previous link in this post, but I am unable to put the channels manually and then read them. Has anyone got it? thanks.

  • There is something that I do not understand.

    when I connect the obdlink lx and put the motoscan, I can read data in real time of rpm, throttle position, ... that is, if it send that data, it should be possible to extract the same for the racechrono.

    Do you know if they sell any cable that plugs into the canbus connector where the aim solo2 dl is plugged in, that transforms from canbus to obd? or would someone know how to do it? thanks.

    Enviado desde mi Mi 9T Pro mediante Tapatalk

  • Alguna ayuda @aol ??

    Lo conseguiste @Schnellfahren ?

  • aolaol
    edited October 2020
    The connection can be established without defining the channels, but the channels need to be configured correctly to get any data. I do not have BMW S1000R myself, so I cannot give the correct equations for the channels. The other app probably has a profile for your bike, with all the channels already configured. RaceChrono does not have any already made profiles.
Sign In or Register to comment.