Home Work Doodles Skills & Tools Contact

TetraGear Light Firmware

TetraGear's development team asked me to do a rewrite of their firmware for their LED light controller as it was becoming unmanageable during their development. It had been written in pieces, pasted together, and later modified in various spots from various sources leading to giant loops, timing issues, and random dependencies that were prone to breaking with every change and bug fix.

After gathering their requirements and explaining to their team how I'd rework their logic, I did a rewrite of their code, separating input, display, and other logic. The rewrite was forked from their current firmware at the time and worked on side by side during their development. The main challenge here was fitting the needed libraries and logic in to the limited program space for their microcontroller that they were using. The language used was C.

By taking over the software aspect for them, it allowed their small team to better focus on their hardware and some support was also given after the initial delivery for any new issues that arose or new features.

The main functionality of their device consisted of two buttons and allowed the device to cycle through various animations and colours as well as allowing the user to set their own custom colour.

Other logic included battery level checking, alerting the user of the battery level, handling a "too low" battery state, storing user preferences (currently their custom colour), and device standby handling.

Admittedly, as code isn't really too interesting to look at, here are some photos of the product.

The company and the product can be found here