Portable Raspberry Pi 5 cyberdeck — build scripts, diagnostics, and documentation.
Picking up where we left off? → RESUME.md — current state, the next action, and what's already been ruled out.
A hands-on learning build: a battery-powered Pi 5 with a touchscreen, hardware keyboard, GPS, sub-GHz transceiver, and SDR, intended as a field-usable security/RF workstation.
scripts/ tooling — diagnostics, peripheral polling
docs/ build log, hardware inventory, wiring notes
drivers/ out-of-tree driver sources (keyboard, etc.)
scripts/deck_check.py reports the status of every peripheral in the build — whether each
one is present on its bus and whether it's actually responding with sane data. Those are
different failures with different causes, so the script never conflates them.
./scripts/deck_check.py # everything
./scripts/deck_check.py --only gps kbd # just these
./scripts/deck_check.py --gps-seconds 15 # listen longer for a satellite fix
./scripts/deck_check.py --json # machine-readable, for logging over timeNo sudo required — the hgb user is in the i2c, spi, gpio, and dialout groups.
Exit code is non-zero only on FAIL (a broken bus), not on ABSENT (nothing plugged in).
Status meanings:
OK |
present and returning valid data |
WARN |
responding, but something's off — read the detail |
FAIL |
the bus or device node itself is broken/missing |
ABSENT |
nothing responding — usually unplugged, sometimes dead |
- docs/HARDWARE.md — inventory, bus addresses, known gotchas
- docs/BUILD-LOG.md — dated record of changes, findings, decisions
Raspberry Pi 5 (8GB) · Raspberry Pi OS Lite 64-bit (Debian 13 trixie) · kernel 6.18