Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Input format $RC2 and $RC3 used by RaceDAC and DIY-loggers

edited February 2017 in RaceChrono for Android
This discussion was created from comments split from: RaceLogger bluetooth input format.


  • aolaol
    edited July 2016
    Here's the format description for RaceDAC and DIY devices:


    - $ is message start character
    - RC2 and RC3 are message identifiers
    - time stamp is not used (empty). (for blended GPS support this should be a GPS synchronized realtime timestamp in NMEA 0183 format).
    - count is an overflowing line counter 0-65535. Can be left empty if GPS timestamp is provided.
    - acc fields: -1.000 = -1G, 1.000 = +1G
    - gyro fields: degrees per second, -1.000 = -1 deg/s, 1.000 = +1 deg/s
    - dx are digital channel fields, range -2000000.000 - 2000000.000
    - ax are analog channel fields, range -2000000.000 - 2000000.000
    - * is message separator character
    - NMEA 0183 type checksum, with two uppercase hexadecimal digits (one byte)
    - each line is terminated with CR plus LF

    So pretty much same as $RC1, but with 3 more analog channels, one added digital channel (other being RPM field), and lost gyro channels (which were never used by RaceChrono on the $RC1 format either...).

    Notice: steady update rate is needed for this format due to the algorithm that RaceChrono uses to synchronize with GPS time. So pick update rate that is close as possible to 1/5/10/20/30/40/50/100 Hz. If you have to skip an update, make sure you add the 'count' field even for the skipped updates.

    Updated 4.3.2014 with some new information about v2.60 and update rate
    Updated 24.7.2016 with $RC3 format with gyro channels and more analog channels
  • Updated 24.7.2016 with $RC3 format with gyro channels and more analog channels
  • What version of RaceChrono will support the $RC3 message format?
  • RaceChrono v4.7 will have the $RC3, currently under development but soon in beta testing.
  • Great! With $RC2 I was slowly short in space.
  • @aol I am doing some updates to my data logger for my track bike and thought I would start to populate the count attribute in my RC3 lines just for future proofing in case I move to different data paths (BT & Wifi) or decide to use a different external GPS receiver etc.

    I see above that the value is an unsigned int (65535). Currently I am sending RC3 records at 50/s. I know I can slow my rate down but currently I get to the max value after about 20min

    So should I restart at 0 if I wrap?
    Is there an option to use a long (or unsigned long)? Lots of record bandwidth with that counter size.

    Thanks, Jeff
  • BTW, sending 50/s mostly 'because I can' though at top speed 260kph I am doing about 72m/s and since I am working to add suspension sensors thought 50 records per second was about right to see my suspension every 1-1.5 metres at high speed.

  • aolaol
    edited January 8
    After 65535 comes 0 and the code is tested to do that. 50 Hz should be no problem for RC. On some phones 50 Hz graphs may be sluggish, but I plan to optimise this further in future.
  • @aol thanks for the quick reply. Will wrap back to 0
Sign In or Register to comment.