finds.dev← search

// the find

zjs81/meshcore-open

★ 526 · Dart · MIT · updated Jun 2026

Open-source Flutter client for MeshCore LoRa mesh networking devices

A Flutter client for MeshCore LoRa mesh networking devices, connecting over BLE, USB, or TCP. It handles encrypted peer-to-peer messaging, channel broadcasts, node mapping, and remote repeater management — all without internet. This is for people deploying off-grid comms: disaster prep, hiking groups, or anyone who wants radio mesh networking without a proprietary app.

The protocol layer is cleanly separated from the UI — meshcore_connector.dart handles BLE state while meshcore_protocol.dart owns frame parsing, which makes it possible to add new transport backends (TCP, USB) without touching message logic. Offline map tile caching is a genuine feature, not an afterthought, which matters when you're somewhere without cell service. Localization coverage across 15 languages is unusually thorough for a niche hardware project. The smaz compression dependency is a smart choice for LoRa — squeezing text before it hits a bandwidth-constrained radio link is exactly right.

Provider with ChangeNotifier at this scale is going to be painful — the connector is clearly doing double duty as both a BLE state machine and a god-object for app state, and that pattern does not survive a growing feature set without significant refactoring. There are no tests visible in the tree outside of the stub RunnerTests.swift; for a project where the protocol layer has to be bit-perfect against physical hardware, that's a real gap. The iOS USB connection is marked 🚧 with no timeline, which will frustrate anyone buying iOS devices for a deployment. OTA firmware updates are also listed as 'coming soon' — it's the feature that would make fleet management practical, and shipping without it means users still need a laptop on-site.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →