New $RC3 sentence?

I am building my own logger (not specifically for track work, just for fun) and having used Racechrono before, I thought it would be handy to have the ability to use Racechrono with all its great features, with data from my logger. No doubt there are others out there that have already had similar thoughts and of course there is already RaceDAC too. I know there are RC1 and RC2 sentences available, but these seem to be intended to be used in conjunction with the internal or an external GPS.

I am suggesting that a new sentence could be created, say $RC3, which could be used by itself.

For example if you had a logger with its own built-in GPS and microprocessor, it could collect the necessary information from the GPS and combine it with analogue signals and then transmit them via a single sentence - something like this:
$RC3 ,UTC Date,UTC Time,Latitude,N/S,Longitude,E/W,Heading,Speed,AN1,AN2,AN3,AN4,AN5,AN6,AN7,AN8,AN9,AN10,AN11,AN12

AN1,...AN12 are the analogue signals (allow for say 12).

In my case, I am not particularly concerned about how many satellites I can see, or my altitude etc, so my logger only collects data from the $GPRMC sentence. However, other information that RaceChrono might like to see could be included in a more general form, like this:
$RC3 ,UTC Date, UTC Time, Latitude, N/S, Longitude, E/W, Heading, Speed, Altitude, No.SatsUsed, GPSModeIndicator, AN1,AN2,AN3,AN4,AN5,AN6,AN7,AN8,AN9,AN10,AN11,AN12

If there is no data for a particular field it could just be left blank in the output, eg

$RC3,170813,133703.533,3343.7754,S,11844.8747,E,267.5,102.3, , , ,-5.6,782,-28.6,5.8,84,0,-12,134,969,431,198,33

The ability to deal with signed, decimal values for the analogue channels rather than just unsigned integers (as I think is the case now for $RC1 and $RC2) would be preferred.

Any thoughts?



  • Nice one sgrobler. I too built one more for the learning of getting into microcontrollers etc. Currently I'm just using the RC2 sentence via Bluetooth to RaceChrono. I must admit having not touched c++ for over 10 years it was a couple of weeks of getting back on the horse, but it's working. The RC3 would be great to include GPS data I think. Currently I use a Qstarz GPS and my microcontroller for RPM and gear position, but with say RC3 you could send GPS and bike sensor data via the one connection. It would mean one device for sensor data and position.
  • Hi, I rather not add any more sentences. I propose that you send GPRMC+GPVTG+GPZDA+RC2 which is not too much more bandwidth than sending the proposed RC3. You can even leave out fields you don't need from the GPS sentences, as long as you send latitude, longitude, speed, altitude, bearing, date, time, satellite count and fix type.

    What I can do, is to fix the support for stream combining GPS and RC1/2, which I think is broken on the Android version at the moment. If someone send me a file combining the two.
  • Sorry I don't have my GPS module yet. Might be a few weeks from ebay (China somewhere). if no other replies here till I get it Ill get some data streams sorted. Thanks for the reply aol. Side note RaceChrono is an awesome product. I'll be making my donation/purchase today. :)
  • Wouldn't it be possible to implement a user customizable sentences / data frames?
    I would like to be able to log data from this AFR controller with a bluetooth spp / uart converter

    I can imagine a lot of people having different datastreams they would like to log.
    I understand supporting each device separately would be impossible, but a customizable serial sentence might help a lot of us.

    Kind regards,
  • aolaol
    edited January 2014
    Hi TuTone165, if you implement the RaceLogger format, you can put any data to the a1-a8 channels:

    This is already implemented so you can start prototyping with it immediately.
  • Hi, I have a gyro/accelerometer sending lean angle to racechrono in $RC1 format. I must admit have not done a live test, but Racechrono picks it up a second data source. My question is, when you export the session data there are 3 additional columns which are empty, RPM, ThrottlePosition and Trap Name. Do the additional sensor data that come from a1-a8 in the $RC1 format appear in the export as new columns?
  • aolaol
    edited February 2014
    gfirth, to get $RC1/$RC2 channels exported, you need to export in the new "v2" .csv format, which you get by selecting the RaceRender2 export option. I'm assuming you work on the Android version.

    BTW, next version will support signed decimal values in $RC1 and $RC2 sentences.
  • I was at the track on the weekend and tested out the additional data from another sensor using the $RC2 format. RaceChrono reported as connecting to GPS and itead which is my bluetooth logger which provides angle sensor and gear position. When I export the data in V2 format I don't see the additional columns.
    The RC data format is this:

    The first "0" is y-angle, the second value is x-angle "30, 32,.." and the third "0" is gears. This was just data I produced now to show the format. The "12" column and the next, "120..." are just time tics and program loops.

    I was using RaceChrono version 2.45

    I am trying version 2.90 at the moment and its now saying at the bottom "no data from racedac".

    Do I have something wrong with the format above? I assume this is why I may have no data from the weekend using v2.45

  • Further info to that I can see in RaceChrono it reports approx 2.0k/bps transfer rate for my bluetooth logger and I confirmed using Blueterm+ that I can see the data via Bluetooth.

    Any help would be great.
  • The "No data" error message is new. Not sure which one is correct, the error or kbps, but I don't think it affects the data reception so you might as well be using v2.90. You can turn on 'RaceChrono > Settings > Expert settings > Save device output' and then extra files will be saved under session folders. One of them will be for your device, and it has all the data RaceChrono has received from your device.
  • I have enabled that and found the file device_output_2.nmea in the session folder. The file contains the correct data in the RC2 format as shown above. What does RaceChrono check to verify the data is good? Could my checksum be incorrect? If RaceChrono doesn't see the correct number of commas, fields etc does it report as "no data from racedac"?
  • The parsing fails and therefore 'no data'. I think I should improve the feedback from parsers to users... :) Anyways, your checksums are wrong. You are including the dollar sign in checksum calculations, but you should not.
  • edited April 2014
    Awesome it's working great now. I removed the $ sign now I see all the channel data in RaceChrono. Thanks for the help. This is simply an awesome bit of software.
Sign In or Register to comment.