WiFi Pseudo-GPS Receiver (Python)

Great application - using the Pro version on Android!

Whilst there isn't an official NMEA import facility for RaceChrono yet, I'm looking at other techniques to bring in my NMEA data to RaceChrono on Android from an external source and save as a session. I don't want to have my Android phone on track, so using an external GPS feed to get my NMEA log.

I've successfully "replayed" the NMEA file using the "debug" option and it works great, however, I would like to save this session rather than just view it.

After a bit of investigation, I've tried - with some success - creating a simple Python script (on a remote Linux computer) which transfers back to RaceChrono (using the input source of "WiFi GPS receiver"), but have issues.

It appears that my script is requested for a TCP response around every second and the RaceChrono screen then has the red banner stating that it is waiting for the GPS. There is clearly valid NMEA data being transferred to RaceChrono, as it does show a session being recorded, but it is inconsistent (e.g. altitude data appears, then disappears). I've double-checked the stream going back from my script, via WireShark, and the individual lines are correctly terminated with x0D x0A characters. I've tried a number of permutations within Python (batching multiple NMEA lines together, inserting small delays), but this then causes socket errors. For information, I've been using the standard library SocketServer module.

Is there anything inherently wrong with my arrangement, or perhaps there is a simpler method to fulfil this requirement (e.g. Linux netstat or socat commands, use Bluetooth)?


  • In RaceChrono Pro for Android you can already do this easily. Copy your NMEA file to /Android/data/com.racechrono.pro/files/input/ , then enable Settings > Expert settings > Experimental devices. Then just add ”NMEA file” device and select your file. Start a session and it does exactly what you were looking for :) Notice unfortunately this does not yet work for iOS. I will create separate file importing.
  • If you’re having problems with the NMEA file then send it to tracks(at)racechrono.com and I’ll see why it is failing.
  • Cheers @aol

    User error!

    The debug NMEA sessions were actually getting saved, but I didn't spot them in the session list on screen. I had a copy of these sessions already (as they were in fact real sessions recorded using RaceChrono on my phone and exported out as NMEA from the app) and didn't spot the duplicates.

    I *presumed* that the newest sessions would appear at the top of the list, but it is absolutely sensible that they are list in chronological order.

Sign In or Register to comment.