twislaandClaude Opus 5.5 4cd6a63498 M1 step 6: Wi-Fi Tools from ordinary scans
- lib/wifi (host-tested): channel occupancy (neighbour spill, signal
  weighting, quietest of 1/6/11) and a signal tracker (history, lost
  detection, click interval)
- WifiService: scan results carry BSSID, channel and security; a scan
  can target one channel for quick tracker refreshes; endListScans()
  turns the radio back off when Wi-Fi is disabled
- Wi-Fi Tools App: networks nearby, channel occupancy bars, signal
  tracker with clicks (m to mute)
- M1 plan: Monitoring-mode views and captures deferred

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
2026-10-02 16:33:11 +02:00
…
…

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.

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

  1. Connect the Cardputer by USB-C.

  2. Run:

    scripts/flash.sh            # auto-detects the port; or: scripts/flash.sh /dev/ttyACM1
    

    This 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"

Development aids

scripts/serial_log.sh [seconds] [command…] records the serial output, and can send commands to the firmware first. For example, scripts/serial_log.sh 30 short sleep:12 burst sets short screen timeouts, waits 12 s, then sends a burst of Toasts.

Command Effect
burst Publishes 5 Notifications at once
key up|down|left|right|select|back|home Injects a logical key press
sound on / sound off Toggles the Sound setting (beep + LED)
short / normal Screen timeouts 5 s / 10 s, or 30 s / 60 s
wifi add <ssid><TAB><password> Adds a Saved Network (so credentials stay out of the repo)
log <text> Appends a line to a test IRC Log (/irc/dev/#test/<date>.log)
sd list Lists the files of each Storage Clean-up category
irc start Starts the IRC Service (normally done by opening the IRC App)
irc say <buffer> <text> Types into a Buffer, commands included (irc say 0 /join #test)
irc dump Prints IRC status, memory, and the last lines of each Buffer
wifi status Prints Wi-Fi state, network, signal, clock and free heap

scripts/flash.sh stops a running serial log first, since it would hold the port.

S
Description
Custom firmware for the M5Stack Cardputer ADV + Cap LoRa-1262 (GPL-3.0)
Readme GPL-3.0
2.9 MiB
2026-10-07 02:09:33 +00:00
Languages
C++ 85%
HTML 5.8%
Python 4.2%
CSS 3.2%
Shell 1%
Other 0.8%