By continuing to use our website and services, you acknowledge that you have read, understood and agreed to our privacy policy.

close

Limestone

Where competitive advantages don't exist naturally, custom software can create them.

Get Answers
illustration of arrows pointing to computer screen

THE PROBLEM

If you’re not a fan of car racing and you’re in the U.S., you may only be familiar with NASCAR and the Indianapolis 500. But in addition to these more household names, there’s also another form of motorsport that’s all about pushing machines — and their drivers — to the limits. Endurance racing.

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.

THE CHALLENGES

Beyond the standard hurdles of developing custom software, this project also offered some unique challenges:

Hardware Prototype
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.

Low-Level Software
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.

quotation mark illustration

This solution required us to solder together multiple electronic components to create a single, working unit.

THE SOLUTION

The pit is a greasy, dirty, messy place that’s exposed to all the elements ... not exactly the ideal setting for computer hardware. We needed hardware that was tough enough to handle the environment and a display that was visible in both direct sunlight and in the shade.

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.

Illustration of Computer Screen

TLDR


Client
Limestone American Endurance Team

Project Summary
Develop technology that helps pit crews keep track of race milestones.

Biggest Difficulty
Create everything from scratch, including the hardware.

Main Technologies
C, Python, Raspberry Pi, Solder, Soldering Iron

See All Case Studies