- ToastQueue compared times unsigned: a Toast stamped a few ms after the main loop read the clock looked expired, so Toasts were skipped or shown late and bursts chained wrongly - Notifier now beeps and flashes when each Toast appears instead of when the Notification arrives, so a burst alerts once per Toast Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
roro9stack
A multi-app firmware for the M5Stack Cardputer ADV with the Cap LoRa-1262. It's a Meshtastic-compatible mesh messenger, plus Wi-Fi tools, IRC, GNSS and more. Licensed GPL-3.0.
- Domain language: CONTEXT.md
- Decisions: docs/adr/
- Milestones: docs/milestones/
Requirements
Only Docker is needed. PlatformIO and the ESP32 toolchain run inside a container, and are cached in the roro9stack-pio Docker volume. The first build downloads about 1 GB and takes a few minutes.
Build and test (local CI)
scripts/ci.sh
This runs the host-side unit tests (test/, native environment), then builds the firmware. The output is .pio/build/cardputer-adv/firmware.factory.bin.
Flash
-
Connect the Cardputer by USB-C.
-
Run:
scripts/flash.sh # auto-detects the port; or: scripts/flash.sh /dev/ttyACM1This uploads the firmware, then opens the serial monitor. Quit the monitor with
Ctrl+C.
If the upload can't connect, put the device in download mode: hold G0 (the button next to the screen) while plugging in USB, or while pressing reset. Then retry.
If you get "permission denied" on the port, your user needs access to the serial device. Run this once, then log out and back in:
sudo usermod -aG dialout "$USER"