Skip to content

Add boot logo splash, on-device Button Test screen, and firmware version - #51

Merged
thePunderWoman merged 1 commit into
mainfrom
boot-splash-button-test-fw-version
Sep 23, 2026
Merged

thePunderWoman merged 1 commit into
mainfrom
boot-splash-button-test-fw-version

Conversation

@thePunderWoman

Copy link
Copy Markdown
Owner

Summary

  • Show the Snips logo on the OLED for 1.2s at boot (before the existing "Snips Controller / OLED OK" text), so it's obvious the device is powering up rather than dark/unresponsive. Bitmap generated by thresholding graphics/snips-logo.png's alpha channel down to 48x64 (1-bit, packed for Adafruit_GFX::drawBitmap()).
  • Add a "Button Test" screen to the on-device menu, for the hardware bring-up sequence (PCB/README.md's "Buttons" step): shows the name of whichever button was last pressed, including the four normally "stolen" for menu navigation everywhere else. A persistent "Bumper = exit" line stays on screen so it's always clear how to leave — pressing Bumper exits (same as every other screen), which doubles as confirmation Bumper itself works.
  • Show firmware version on the Device Info screen, sourced from git describe --tags --always --dirty and injected at build time (scripts/firmware_version.py) — no tags exist yet so it currently shows the short commit hash, but it'll pick up real version tags automatically with no code changes once those exist. Native test builds fall back to a fixed "dev" string.
  • Extracted button-name lookup into Buttons::name() (was duplicated inline in SnipsController.ino) so both Serial logging and the new Button Test screen share one table.

Test plan

  • pio test -e native — 262/262 passing
  • gcovr line coverage 97.8% (threshold 90%)
  • pio run -e esp32s3 — builds clean, firmware embeds the git-derived version string (verified via strings on the built ELF)
  • Flash to real hardware and confirm the boot splash renders correctly and Button Test correctly identifies all 12 physical buttons

🤖 Generated with Claude Code

…e version

- Show the Snips logo on the OLED for 1.2s at boot, before the existing
  text confirmation, so it's clear the device is powering up.
- Add a "Button Test" menu screen for hardware bring-up: shows the name
  of the last button pressed (all 12, including nav-stolen ones), with
  a persistent "Bumper = exit" line.
- Show firmware version (git describe, injected at build time) on the
  Device Info screen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@thePunderWoman
thePunderWoman merged commit 011943a into main Sep 23, 2026
2 checks passed
@thePunderWoman
thePunderWoman deleted the boot-splash-button-test-fw-version branch September 23, 2026 02:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant