// the find
meshtastic/firmware
The official firmware for Meshtastic, an open-source, off-grid mesh communication system.
Official firmware for Meshtastic LoRa mesh radios, running on ESP32, nRF52, RP2040, STM32, and Linux. Enables off-grid text messaging, GPS tracking, and telemetry over a decentralized mesh network with no internet or cellular dependency. Aimed at hikers, preppers, SAR teams, and anyone who needs comms where phones don't work.
- Genuinely wide hardware support — 60+ board definitions covering Heltec, TTGO T-Beam, RAK, Seeed, and custom boards, with a config.d overlay system for Linux targets that's actually thoughtful
- CI pipeline is solid: matrix builds across all targets, firmware size reporting on PRs, ClusterFuzzLite integration for fuzz testing the packet router, and Semgrep SAST — more security infrastructure than most embedded projects bother with
- Native/Linux target allows running the daemon (meshtasticd) on a Pi or OpenWRT router, with proper systemd service, udev rules, and Debian packaging — not an afterthought
- Active protobuf-driven API means the protocol is version-controlled and the wire format is documented, not just reverse-engineered from C structs
- platformio.ini is enormous and getting unwieldy — hundreds of environment definitions make it hard to understand build flag inheritance and easy to silently misconfigure a new target
- C++ code quality is inconsistent; older modules mix raw pointer arithmetic, global state, and Arduino-style patterns with newer cleaner code — onboarding to a specific subsystem often means archaeology
- The MCP server bundled in the repo (an AI assistant integration) feels experimental and out of place in a firmware repo; it ships Python tooling for LLM-assisted development that most contributors won't use and adds maintenance surface
- Test coverage for the embedded path is thin — the native target enables some unit tests but most hardware interaction code has no automated tests, so regressions often only surface when users flash real devices