Car DAQ · 2023 Honda Civic

A car that takes measurements

I wanted to see how much my car could passively measure with "common" off-the-shelf parts. This one currently has a Raspberry Pi 5 under the dash with a GPS receiver, an IMU, a read-only connection to the CAN bus (kind of finnicky at the moment), and a cheap software-defined radio. It records on every drive, my home server at home processes the logs, and a privacy filter decides what's safe to publish here.

As a disclaimer, none of this is calibrated against a real standard yet. The roughness map is more of a vibration index, not the IRI that road departments measure, and the radio power is relative, not absolute, so for now I've tried to label each number with what it actually is.

The map

Where the car has been, shown as counts on a ~300 m grid instead of as tracks. The area around home is cut out, a cell only shows up after at least three separate drives have passed through it, and everything is held back a couple of days before it's published.

What it hears

Most cars sold in the US after 2008 have a pressure sensor in each tire that broadcasts on 315 or 433 MHz. As I drive, the radio picks them up, keeping a running count of how many different sensors it has heard with the pressures they report. I only publish counts, so individual IDs are safe. Tire sensors →

On others it sweeps 24 to 470 MHz and records how much energy sits in each slice of the band. Radio spectrum →

How it works

GPS gives position and time, an IMU (an accelerometer + a gyroscope) records how the car moves, and thhen the spread of acceleration within each little cell constitutes a roughness map. Vehicle data comes off the CAN bus read-only, decoded with python-can and opendbc. Right now, the IMU and GPS are logged side by side, but fusing them with a Kalman filter is the next thing I want to build. The physics and math are in the engineering notes.

The data

All of it is aggregated and free to reuse under the data license.

Build one

The car-daq repo has the parts list, a step-by-step build guide, and setup scripts. I've tried to write it so someone could build one from the repo alone. If you try and end up stuck, that's a reflection on my docs! Let me know.

Contribute a drive

You don't actually need any hardware! A phone running phyphox (free and open source) can record the accelerometer, gyroscope, and location together, plus more! Export the CSV and follow CONTRIBUTING to send it in, and that page also covers how submissions get checked.