With so much going on at a race track, it’s easy for pit crews to lose track of time. In the worst case scenario, this could mean a pit that isn’t ready for its car and driver. But in endurance racing, every second and every mile count.
Even though Limestone American Endurance Team had watches, mobile apps and clocks, things weren’t running smoothly. So, they approached us about building a heads-up display with real-time countdowns and count-ups to all of the major race events.
For this project, the most difficult challenge had to do with hardware. There was simply nothing off-the-shelf and ready-made that fit the bill. So, we got out our soldering irons and got to work.
When you create your own hardware, you have to write all the software to control it, too. From drivers and peripherals to i/o and bitmap display, we did it all.
After lots of trial and error, we settled on a Raspberry Pi single-board computer driving an RGB Matrix HAT. This combination works well together, but it requires soldering compontents together to create a single unit.
With everything literally welded into place, we wrote a driver in C to give the Raspberry Pi the ability to light up the display in meaningful and colorful ways.
Finally it was time for the race application itself. Here we had multiple constraints the equivalent of a 32x32 pixel display, slow refresh rates and severely limited RAM and processing power. We also needed a way to develop and test on the desktop before deploying to the Raspberry Pi.
Our designers created a to-scale model of the Matrix display that they used to explore different UI and UX concepts with Limestone. Meanwhile, our developers built out the application in a combination of Python and C for the more memory-intensive parts of the software.
The final problem to solve was figuring out a way to develop the application with the fewest possible deployments to the Raspberry Pi, since that would bring development time to a crawl. Because we were already using Python, we brought in the PyGame library where we created a virtual Matrix display that provided a perfect simulation of the Matrix right from each developer’s desktop. The application was then given the ability to determine where it was running at startup time and display output either to the virtual Matrix or the real, hardware-based one.
Limestone American Endurance Team
Develop technology that helps pit crews keep track of race milestones.
Create everything from scratch, including the hardware.
C, Python, Raspberry Pi, Solder, Soldering Iron