Firmware for LED Anti-Cant Level -- 2
Budget: $30 – $250 USD
I have a finished PCB for a compact, battery-powered anti-cant device — an electronic replacement for the traditional bubble level. The board is built around an ATtiny84A microcontroller and an ADXL345 accelerometer, with two tactile buttons and a small set of LEDs as the entire user interface (a center green LED for "level," with red and blue side LEDs indicating cant direction). I'm handling assembly and distribution. What I need is someone to write, bench-test, and hand over production-ready firmware.
What the firmware needs to do
- Read roll angle from the ADXL345 and drive the LEDs in real time to show level, near-level, or clearly canted, with the cant direction indicated by color.
- Three user-selectable sensitivity presets with specific degree thresholds (full table provided in the SOW).
- Two-button UI with defined gestures for power on/off, brightness adjustment, sensitivity adjustment, and calibration. All flows are already specified
- Calibration mode that zeros the device to whatever orientation it's currently in, after confirming the device is still.
- Brightness, sensitivity setting, and calibration offset must be stored in EEPROM and survive a full power cycle including battery removal.
Code organized cleanly enough that I could add features later.
Bench testing
Please verify the firmware on real hardware. Testing should focus on the actual operating range of the device — the sensitivity thresholds live between 0° and 2°, so I care about whether the transitions happen at the right angles, not whether the device notices you flipped it upside down. I'd like short video evidence of leveling, calibration, and the menu flows, plus written confirmation that every acceptance test in the SOW passes.
Deliverables
-Well-commented Arduino source, organized so button handling, LED driving, sensor reading, and state machine logic are cleanly separated.
Compiled .hex file.
-Fuse map and avrdude command line.
-Beginner-friendly flashing guide (PDF with screenshots).
-State-machine diagram showing all device states and the button gestures that move between them.
-Written test report plus short video evidence for the key flows.
What I'll provide
-The PCB schematic
-A full scope of work document with exact sensitivity thresholds, button gesture specs, acceptance tests, and milestone definitions — shared with shortlisted bidders.
-At least two assembled prototype boards (or loose components) shipped to you for bench work.
-Prompt responses to questions during business hours.
What the firmware needs to do
- Read roll angle from the ADXL345 and drive the LEDs in real time to show level, near-level, or clearly canted, with the cant direction indicated by color.
- Three user-selectable sensitivity presets with specific degree thresholds (full table provided in the SOW).
- Two-button UI with defined gestures for power on/off, brightness adjustment, sensitivity adjustment, and calibration. All flows are already specified
- Calibration mode that zeros the device to whatever orientation it's currently in, after confirming the device is still.
- Brightness, sensitivity setting, and calibration offset must be stored in EEPROM and survive a full power cycle including battery removal.
Code organized cleanly enough that I could add features later.
Bench testing
Please verify the firmware on real hardware. Testing should focus on the actual operating range of the device — the sensitivity thresholds live between 0° and 2°, so I care about whether the transitions happen at the right angles, not whether the device notices you flipped it upside down. I'd like short video evidence of leveling, calibration, and the menu flows, plus written confirmation that every acceptance test in the SOW passes.
Deliverables
-Well-commented Arduino source, organized so button handling, LED driving, sensor reading, and state machine logic are cleanly separated.
Compiled .hex file.
-Fuse map and avrdude command line.
-Beginner-friendly flashing guide (PDF with screenshots).
-State-machine diagram showing all device states and the button gestures that move between them.
-Written test report plus short video evidence for the key flows.
What I'll provide
-The PCB schematic
-A full scope of work document with exact sensitivity thresholds, button gesture specs, acceptance tests, and milestone definitions — shared with shortlisted bidders.
-At least two assembled prototype boards (or loose components) shipped to you for bench work.
-Prompt responses to questions during business hours.