OPPDR - Open Python Performance Data Recorder

Fellow Macchina users -

Here is a little project I am working on. OPPDR - Open Python Performance Data Recorder.

For now - it’s really crude. Not well documented, heck, not even fully tested. It only works with GM Global A vehicles for now. (Changing graph configs and KCDs will allow other platform support). If you are a python person, and have a GM Global A - might be of use.

The Macchina data logger mostly works, and I get some cool graphs being generated. Once I get a dashcam working - the output should work with Dashware to make cool performance overlay videos.

Use at your own risk. I welcome feedback.

Example output: http://htmlpreview.github.io/?https://github.com/tmkdev/oppdr/blob/master/output/CANLOG_002.html


Wow this is very cool. I’ll have to borrow a friend’s car to play with it.

Can you tell us a bit more about building it? How did you go about it and how long did it take?

How can others help you out?

Where to start? I was inspired by the Cosworth PDR system on board the 3rd gen Cadillac CTS-V. Figured I could get mostly there on my own.

Building it:

Macchina part -

Getting the macchina to log 2 channels of can to an SD card took a few hours. It’s till not perfect and there is some frame drops while writing. I am still working on this. The code was derived from examples and past experience with Arduino and SWCAN/GMLAN.

The OPPDR part -

I ended up using the Bokeh library for chart rendering. can4python to do frame decoding from the logged data. can4python leverages KCD can definitions for decoding individual packets. The “fun” stuff for PDR mostly resides on the high speed GMLAN. I get lat/long and tire TMPS from low speed single wire bus (I have yet to verify the GPS stuff, I think my filter/masks are wrong).

I load the logs from M2, parse them out into data points, shove them into a pandas data frame, re-sample and interpolate as needed and generate Bokeh plots (from a definition file) and a importable CSV of the raw data.

Hope that helps. I will document this thing a little better once I have time and get everything kinda tested.

The sample I have linked is actual data from a 2009 CTS-V logged with Macchina M2 to SD.

Stay tuned…

This is really cool. I am going to try it on my 2012 CTS-V.

Hey @tmkdev, any more news on this project? I’d love to see how far you’ve gotten on it.

Did you look at his/her/their github project linked in the first post? There are recent updates.

Yeah - some small commits but the thing mostly works. The SWCAN library needs a patch for it to work right. Logging mostly works but the write time to the flash causes a few missed packets at times.

I’d love for some others to try it and test. I had some logs donated from a 2010 CTS-V with a manual and that helped me get the clutch packets mapped.

https://github.com/macchina/mcp2515/issues/10 - SWCAN patch.

Any news on this project? Has anyone else had a chance to try it?

Who owns a GM Global A platform car in MN let’s give it a shoot.

Not in MN but I have an '09 CTS which should be the same vehicle for scanning purposes other than the Stickshift part.

I could post a message on the CTS forum and see if someone is in MN since this is the car it was setup for.

That’s not a bad idea. Might be nice to see it working on something else too.

Nice post, thank you.