Building a Go Kart Telemetry System using Python and a Raspberry Pi
Displaying racing telemetry was the easy part. Now we need to figure out how to collect it.
Last week I added lap telemetry charts to the F1 Race Replay project, which enables users to look at the speed, gear, throttle and braking telemetry coming off of a car as it goes around the track during a qualifying session.
These types of charts are without a doubt my favourite insight/visualisation of F1 data. I love how they allow us to really get an insight into how a driver is performing and driving the car, especially when the charts can be used to compare multiple laps or multiple drivers.
So I’ve had an idea…
“What if you could do this for go karting?”
Go karting is a huge sport, so of course there are devices and kits that you can buy to attach to your go kart to measure different metrics, however, there are two issues:
They’re really expensive.
Which is not something that I can afford to purchase as someone who’s just interested in the data. Maybe if I was working on building a career as a driver, but I’m not.
You aren’t allowed to modify the Karts.
Go karting centres won’t actually allow you to attach anything to their go karts. (Makes sense for safety reasons, and because they don’t want you to damage their equipment).
While go kart tracks may not allow you to modify or attach equipment to their cars, they do allow you to wear “wearables” such as Smart Watches, GoPros, etc. So as long as I keep whatever sensors and hardware that I need on my person, I should be all good right?
Testing out the idea
During the week, I started experimenting with a spare accelerometer module and a Raspberry Pi Pico.
Using MicroPython, I was able to measure the orientation and the movement of the module (I’m using an MPU-6050 which includes a Gyroscope) and display it on my screen.
How I’m going to build it
So here’s the plan. (It’s still a work in progress)
Based on my initial testing using the Raspberry Pi Pico board and the accelerometer, I’ve determined that by attaching one of these modules to each of my feet, I could use the rotation metrics to measure how far I’m pressing on the throttle and brake of the kart. And, by attaching a single accelerometer to a stable part of my body (jeans pocket for example), I should be able to get a fairly accurate measurement of the G-Forces that I experience as I go around the track.
Mounting the accelerometer to my chest would probably be the most ideal location, but I suspect safety policies might prohibit the use of a chest mount, even it it is under my clothes.
Now, you have to remember that these are consumer rental karts, they’re not going to be super fast, but they should be fast enough for me to at least be able to look at the telemetry and recognise the different corners, straights and ramps (if any) that are on the track.
Limitations (and how I plan to get past them)
It looks like getting the telemetry from the kart is going to be possible using the system that I’ve described above, but that’s only half of the job done.
With that system on it’s own, I have no indication of where I am on the circuit or how fast my lap times are. Two essential bits of information that I’ll need if I want to actually be able to understand the data that I’m collecting.
Unfortunately, the go kart tracks that I go to are usually inside of a building, so using GPS data isn’t a viable option.
In this situation, using Bluetooth Low Energy Beacons seems like a really good option for tracking indoor positioning, but I doubt the venue would let me setup beacons in the corners of the room, and I think that might be overkill for an MVP version. I think adding a GoPro and manually syncing it up with the data will be a much better option anyway.
Another limitation is measuring exact lap times. Usually karting tracks will use break beam sensors to detect cars crossing the start/finish line to accurately measure their lap times. Unfortunately I won’t be able to setup my own break beam sensors, but fortunately, the track I go to sends you an email that includes all of your lap times from the session. So with a bit of manual input, I could add this data into the telemetry.
The next steps.
The side-project is definitely in its early stages, but I thought that it would be really cool to share the idea with everyone in this community and keep you up to date on it’s progress (alongside the development of F1 Race Replay).
So far I’ve purchased the additional sensors and components that I’ll need to be able to start work on hacking this project together.
My hope is that the next time I’m at the go kart track, I’ll be able to take this kit with me and give it a try!
Unfortunately there’s no open-source code to share in this week’s newsletter, but I hope you’re as excited as I am to see how this side-project progresses!
I’ve also got some really cool additions to the F1 Race Replay project coming soon, so be ready for that!






