PDR data decoded...
This isn't really new, but I thought I'd put it out there. I've written a python script that pulls all the meta data out of the PDR recordings. All the data and the Metadata tags (keys to decoding the data) are in the mp4 files recorded by the PDR. There are other tools that can pull the data, but I wanted to write one in Python. When the script is done running, it outputs a csv file with all tags on the top (67 parameters), time at the left and the rest of the spreadsheet filled with the data sampled during the mp4 recording.
It's interesting to see this information all in one place. One thing I've done with it so far is a lap analyzer. This is my first session of the day at Portland International Raceway.
Lap Analysis:
================================================================================
Lap Clock Time Lap Time Speed @ S/F GPS Location
--------------------------------------------------------------------------------
1 2.22 min N/A N/A 45.594689, -122.693509
2 4.13 min 114.58s N/A 45.594682, -122.693499
3 5.98 min 111.10s N/A 45.594681, -122.693471
4 7.81 min 110.00s N/A 45.594683, -122.693511
5 9.61 min 108.10s N/A 45.594677, -122.693490
6 11.50 min 113.10s N/A 45.594681, -122.693507
7 13.33 min 110.10s N/A 45.594709, -122.693513
8 15.02 min 101.29s N/A 45.594681, -122.693499
9 16.83 min 108.50s N/A 45.594687, -122.693503
Lap Time Statistics:
--------------------------------------------------------------------------------
Fastest lap: 101.29s (Lap 8)
Slowest lap: 114.58s (Lap 2)
Average lap time: 109.60s
Total session time: 876.77s (14.61 min)
If anyone has any suggestions for this tool, let me know. It's a public repo on github if you want the code.
ACV
Channel 01: Boost Pressure Ind
Channel 02: Coolant Temp
Channel 03: Intake Boost Pressure
Channel 04: Oil Pressure
Channel 05: Oil Temp
Channel 06: RPM
Channel 07: Accelerator
Channel 08: Clutch Pos
Channel 09: Brake Pos
Channel 10: LF Tyre Pressure
Channel 11: RF Tyre Pressure
Channel 12: LR Tyre Pressure
Channel 13: RR Tyre Pressure
Channel 14: LF Tyre Pressure Status
Channel 15: RF Tyre Pressure Status
Channel 16: LR Tyre Pressure Status
Channel 17: RR Tyre Pressure Status
Channel 18: LF Tyre Temp
Channel 19: RF Tyre Temp
Channel 20: LR Tyre Temp
Channel 21: RR Tyre Temp
Channel 22: Gear
Channel 23: Trans Oil Temp
Channel 24: Fuel Level
Channel 25: Fuel Capacity
Channel 26: Steering Angle
Channel 27: Distance
Channel 28: Speed
Channel 29: ABS Active
Channel 30: Traction Control Active
Channel 31: Vehicle Stability Active
Channel 32: Performance Traction Management
Channel 33: Driver Performance Mode
Channel 34: Battery Voltage
Channel 35: Lateral Acceleration
Channel 36: Longitudinal Acceleration
Channel 37: Vertical Acceleration
Channel 38: Latitude
Channel 39: Longitude
Channel 40: Altitude
Channel 41: Heading
Channel 42: GPS Fix
Channel 43: GPS Precision
Channel 44: Number of Satellites
Channel 45: Beacon
Channel 46: Temperature Multimedia Processor
Channel 47: CPU User
Channel 48: CPU System
Channel 49: CPU Idle
Channel 50: CPU IO Wait
Channel 51: CPU IRQ
Channel 52: SD Card Read Data Rate
Channel 53: SD Card Read Operations Rate
Channel 54: SD Card Read Time
Channel 55: SD Card Write Data Rate
Channel 56: SD Card Write Operations Rate
Channel 57: SD Card Write Time
Channel 58: Recording Event Odometer
Channel 59: Wheel Speed Left Front
Channel 60: Wheel Speed Right Front
Channel 61: Wheel Speed Left Rear
Channel 62: Wheel Speed Right Rear
Channel 63: Outside Air Temperature
Channel 64: Intake Air Temperature
Channel 65: Temperature Internal Board
Channel 66: Temperature Camera Module
Channel 67: Yaw Rate
For me this journey started when the ZR1 did not crush the overall Nürburgring record. I believe it has to do with active aero. I decided to see what the PDR had in terms of data to decide if it was enough to control an active aero wing and dive planes. In short: it is. My thought was I could make a demo of this using small servo motors and a microcontroller. Imagine watching the PRD video and having a small wing / dive planes on the desktop reacting to the what's happening on screen. Also, with the speed of these cars, I would add a pitot tube to the system to get static and dynamic pressure, so the wing is working like a true airfoil. It's reacting to the driver input and the air around the car -- just like a modern fighter jet. All of this is not only possible but cost effective.
It took me a minute to figure out what to do with everything, but some Google and AI queries got me squared away.
I'm able to extract the meta data and create the .csv file. Unfortunately I'm a google sheets person and not a MS Office person. Google can't handle more than about 147,000 rows with the full data (limited to 10M cells). Excel can handle a LOT more, but I don't have it.
Is it possible to be able to tack a single PDR input file and break out the .csv of the meta data by lap? So the output would be PDR_####-Lap-1.csv, PDR_####-Lap-2.csv, etc.?
If that's possible then Google Sheets could handle the resulting number of output cells required by lap for a large session.
I use a Garmin Catalyst for the coaching part, so far I've loved it.
Using the files from HiPo driver on his website I've been able to do lap to lap comparisons just fine. (https://www.hipodriver.com/resources)
You'll want to scroll down and download this: PDR2-Lite-2022-11
If other drivers would share their files one could simply import their data and compare it to their own data and overlay the two in Cosworth Pi.
One thing I would LOVE is to be able to edit the files and keep the meta data. I haven't found a video editor (yet) that doesn't destroy the meta data. Is it possible to scrape the data into a file, edit the video file in your editor of choice, and then write back the correct data? I could understand if the trim was only made at the end this might be possible, but if I trim 10s from the start and 20 mins. from the end how do you sync the data back up?
Last edited by rlhammon; Oct 15, 2025 at 12:05 PM. Reason: add lap break out comment
Care to share the Github link?
Keep in mind that Cosworth Toolbox (a limited version for GM) and Pi Toolbox (the full Cosworth product) have very different capabilities.
The GM Cosworth one is very limited. Pi toolbox lets you do lap analysis, turn analysis and comparisons and such, so has most of the capabilities being referenced.
The Best of Corvette for Corvette Enthusiasts
Channel 01: Boost Pressure Ind
Channel 02: Coolant Temp
Channel 03: Intake Boost Pressure
Channel 04: Oil Pressure
Channel 05: Oil Temp
Channel 06: RPM
Channel 07: Accelerator
Channel 08: Clutch Pos
Channel 09: Brake Pos
Channel 10: LF Tyre Pressure
Channel 11: RF Tyre Pressure
Channel 12: LR Tyre Pressure
Channel 13: RR Tyre Pressure
Channel 14: LF Tyre Pressure Status
Channel 15: RF Tyre Pressure Status
Channel 16: LR Tyre Pressure Status
Channel 17: RR Tyre Pressure Status
Channel 18: LF Tyre Temp
Channel 19: RF Tyre Temp
Channel 20: LR Tyre Temp
Channel 21: RR Tyre Temp
Channel 22: Gear
Channel 23: Trans Oil Temp
Channel 24: Fuel Level
Channel 25: Fuel Capacity
Channel 26: Steering Angle
Channel 27: Distance
Channel 28: Speed
Channel 29: ABS Active
Channel 30: Traction Control Active
Channel 31: Vehicle Stability Active
Channel 32: Performance Traction Management
Channel 33: Driver Performance Mode
Channel 34: Battery Voltage
Channel 35: Lateral Acceleration
Channel 36: Longitudinal Acceleration
Channel 37: Vertical Acceleration
Channel 38: Latitude
Channel 39: Longitude
Channel 40: Altitude
Channel 41: Heading
Channel 42: GPS Fix
Channel 43: GPS Precision
Channel 44: Number of Satellites
Channel 45: Beacon
Channel 46: Temperature Multimedia Processor
Channel 47: CPU User
Channel 48: CPU System
Channel 49: CPU Idle
Channel 50: CPU IO Wait
Channel 51: CPU IRQ
Channel 52: SD Card Read Data Rate
Channel 53: SD Card Read Operations Rate
Channel 54: SD Card Read Time
Channel 55: SD Card Write Data Rate
Channel 56: SD Card Write Operations Rate
Channel 57: SD Card Write Time
Channel 58: Recording Event Odometer
Channel 59: Wheel Speed Left Front
Channel 60: Wheel Speed Right Front
Channel 61: Wheel Speed Left Rear
Channel 62: Wheel Speed Right Rear
Channel 63: Outside Air Temperature
Channel 64: Intake Air Temperature
Channel 65: Temperature Internal Board
Channel 66: Temperature Camera Module
Channel 67: Yaw Rate
I'm trying to use the PDR data on a site called Firelaps, but talking with the creator he says the PDR GPS information isn't correct. I was hoping a7v7 could chime in with some details from what he has discovered.
Essentially, in order to use Firelaps it requires the absolute GPS time, and according to the sample from your script I sent them, what is extracted is only the session time (how long since start, not when start - well, started).
Hoping this is something we could get from the MP4 still.
I'm trying to use the PDR data on a site called Firelaps, but talking with the creator he says the PDR GPS information isn't correct. I was hoping a7v7 could chime in with some details from what he has discovered.
Essentially, in order to use Firelaps it requires the absolute GPS time, and according to the sample from your script I sent them, what is extracted is only the session time (how long since start, not when start - well, started).
Hoping this is something we could get from the MP4 still.
I already use the Cosworth Pi software, and not only is it cumbersome, it lacks some basic functionality. HiPo has done a great job working with the limits, but frankly it's not worth the effort (time) for the output. I get far more insight out of my Garmin Catalyst in minutes, then I do having to pull the SD card, connect my laptop, start up the software, load the file, and then start.
Firelaps is a great alternative, and as it's web based it's super easy to gain insight from. Sure, you have to upload the data from the SD card still if you went that route with the PDR, but Firelaps has a device that collects and submits data automatically.
For now I'm using a $149 Racebox Mini (price has gone up since the initial launch). It collects data, I download it on my phone from the website, and I upload it back to Firelaps. I get analysis and results back in about 60s. I can run it on a tablet vs. hauling around a laptop at the track as well.
I really, really, really wish that the PDR system properly captured and encoded the GPS time. It seems that it logs time based on when the recording starts, so you get a relative time to your start, but not an absolute GPS time. With absolute GPS time the data is far more portable to other systems, but perhaps that's exactly why they did this.
What I've learned is the PDR talks a great game, but it's functionality as a track tool is near zero.
I really, really, really wish that the PDR system properly captured and encoded the GPS time. It seems that it logs time based on when the recording starts, so you get a relative time to your start, but not an absolute GPS time. With absolute GPS time the data is far more portable to other systems, but perhaps that's exactly why they did this.
What I've learned is the PDR talks a great game, but it's functionality as a track tool is near zero.
I have been able to output a log file which works with the free version of Motec I2, but you dont get sector times with the free version.
I disagree about the lack of track functionality. All the key pieces are there, but the existing tools on the market are terrible. Hence my Claude project =-D
Can you explain how not having the time breaks compatibility with other systems? I haven't worked in other systems enough to have that cause an issue for me.
Sorry I didn't look earlier. This is awesome. I would really like to see the code for the mapping project! BTW I use Claude code. The original work I posted on github was done largely with Cc.
My thinking is to create a website where you can upload PDR data. Claude could analyze it and give you an report of how your doing. Where you can find speed, etc. The idea is to open it to multiple people and multiple tracks. You could compare your data to friends. The Claude analysis would be humorous. I'm impressed with how funny Claude can be.
I think of this as a hyper-focused social network: Corvette / PDR / Track Day analysis.
ACV
Video is now part of the dashboard and is time synced with the plots and the icon on the map.
Map sectors can be added/removed, and configured
Notes page added
Loading PDR data is native to the dashboard, not in a separate UI
Added brake/throttle color gradient map overlay
Added lap visibility shortcut key to toggle between adjacent laps
I tested this at a track day and still find it hard to get easy and clear insight into how a sector was better than another. The brake/throttle overlay is of high value, as are the brake/throttle traces. I wish there was a logged channel to tell me what the ediff is doing as that could be an indicator of total traction limit. I have some ideas for better insights, but havent implemented yet.
This moment is some high speed oversteer which was induced by early throttle application. The green line in steering angle, orange is brake percentage, and blue is throttle percentage. The sharp wave in the green trace shows me counter steering the car to correct the slide, but you can also see that I both lift off the throttle and apply brake, which could have induced a further slide/spin, and I really should have just lifted a bit on the throttle and not applied any brake. Its fun to look through the data and find these things, and once you see them its easier to spot next time.














