Posted on Leave a comment

Mark 1 Rides Into the Sunset

It’s time: RaceCapture/Pro MK1 is now on its own maintenance branch to ensure firmware reliability while we move forward with MK2 features. Read on for the back story…


Back in 2012 Autosport Labs began our journey into the telemetry world with a simple idea: provide affordable race telemetry to the masses.  After lots of preparation, a successful Indiegogo campaign, and hours upon hours at the lab, we built and shipped the first generation of RaceCapture/Pro, the Mark 1 (aka MK1).

Much Learned

The release of Mark 1 marked the beginning of our journey down the consumer telemetry path. As time passed, we listened to you the consumer and made many changes as a result. We added many features beyond what was originally intended, including predictive timing, automatic track detection, improved virtual channel support and more. We also improved and stabilized the code based both on internal testing and feedback from you the user. But all of this came at a cost. The new features and fixes added more code and required RAM, both of which are in limited supply.

Hitting the Ceiling

Warning: Lots of technical details here. If that’s not your bag… skip to the next section.

At the heart of MK1 is a SAM7S256 processor. This little workhorse was a known and stable system on a chip and had great support for the various features we needed when we first designed MK1 in 2012. Things like a full speed USB port, two USARTS (used for Telemetry and GPS input), I2C for peripherals and more all worked out of the box because there were known working drivers available to use. This made the MK1 platform a solid choice since we didn’t need to write drivers from scratch. But every design has its limits, and this was no exception as we were adding features to MK1 in parallel to MK2. As we were adding those new features, we started squeezing the limits of the CPU speed, flash memory and RAM (48MHz, 256K and 64K respectively), and with some of the early 2.8.x releases, we caused bugs as we were trying to wring out the last bit of performance out of the platform. Consequently, we spent a lot of time with the 2.8.5 release, fixing all of those stability issues while still retaining those features.

At one point we hit the 256K flash limit hard, but through some clever optimization we freed up significant chunks of memory. The 64K RAM limit was particularly challenging as it needs to be shared between all static variables and buffers in code (including those from software libraries), stacks for the various tasks in the FreeRTOS environment, queues for sending and storing data between these tasks, a full Lua runtime and managing the data for the predictive lap timer. It required a lot of very careful coding, ensuring we got the most out of every single byte we allocated. And in that regard we were successful; the platform is as stable now as it has ever been. However, when weighing stability and features going forward, the time has come to place MK1 on its own development track.

Because of its hardware limitations, the MK1 platform will continue on a separate development track where support for existing features will continue as needed. This does not mean we are no longer supporting it; we can’t stress that enough. At Autosport Labs we are committed to providing the best experience to the generous folks who supported our campaign from the start. Support for Mark 1 will continue in future versions of the RaceCapture App and bug fixes on the Mark 1 platform will continue to remain a high priority; that you can count on. We have just simply hit the upper limits of what the original MK1 hardware is capable of doing, and now we’ll be able to add features for the MK2 platform without risking stability to MK1. This is ultimately the best path.

Long Live MK1!!!

Leave a Reply

Your email address will not be published. Required fields are marked *