Public Access
CONTEXT.md captures the roro9stack domain language (Apps, Services, Mesh Service, Nodes, Channels, Storage rules). ADR 0001 records building our own firmware that speaks Meshtastic instead of forking it; ADR 0002 records an own widget kit on M5GFX instead of LVGL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1018 B
1018 B
Own firmware that speaks Meshtastic, not a Meshtastic fork
We build our own firmware from existing libraries (PlatformIO + Arduino-ESP32, M5Cardputer/M5Unified, RadioLib, TinyGPSPlus, nanopb with Meshtastic's published protobufs). We implement the Meshtastic protocol ourselves as one pluggable Mesh Protocol, rather than forking the Meshtastic firmware, which already supports this exact hardware.
A fork would give full compatibility on day one, but its architecture is built around being a single-purpose Meshtastic node. That conflicts with our goals: a multi-app OS with a fully custom UX, and room for other mesh protocols (e.g. MeshCore) later.
Consequences
- We accept partial Meshtastic compatibility at first: text on channels, Direct Messages, node list, position and relaying.
- The phone-app (BLE) API and PKI-encrypted Direct Messages are deferred, and we must re-implement protocol details ourselves.
- Multi-boot with stock Meshtastic via a launcher was rejected: it gives none of our own UX.