How meshcore-dev/meshcore works
MeshCore is an embedded C++ library for decentralized, multi-hop communication over LoRa and other packet radios. Its principal workflow is a client or device exchanging packets through a supported interface and radio, with nodes processing and relaying traffic toward other peers; the README also describes distinct Companion, Repeater, and Room Server roles. The graph includes packet handling, telemetry, access control, and device-facing capabilities. Source excerpts are partial, so links between many listed subsystems are intentionally omitted rather than inferred.
Main entry points: Mesh.cpp Mesh engine · StaticPoolPacketManager.cpp Packet queues · EnvironmentSensorManager.cpp Environment telemetry · BridgeBase.cpp Radio bridges
Components 21
Mesh networking
- Mesh engine
src/Mesh.cpp - Packet dispatcher
src/Dispatcher.cpp - Packet model
src/Packet.cpp - Node identity
src/Identity.cpp - Packet queues
src/helpers/StaticPoolPacketManager.cpp - Routing policy
src/helpers/RoutingPolicy.h - Mesh tables
src/helpers/SimpleMeshTables.h
Device interfaces
- Serial interface
src/helpers/ArduinoSerialInterface.cpp - BLE interface
src/helpers/esp32/SerialBLEInterface.cpp - Wi-Fi interface
src/helpers/esp32/SerialWifiInterface.cpp - Command interface
src/helpers/CommonCLI.cpp
Node services
- Sensor manager
src/helpers/SensorManager.h - Environment telemetry
src/helpers/sensors/EnvironmentSensorManager.cpp - Location providers
src/helpers/sensors/LocationProvider.h - Client permissions
src/helpers/ClientACL.cpp - Configuration
src/helpers/ConfigSerializer.cpp - Identity and key stores
src/helpers/IdentityStore.cpp
Hardware support
- Radio bridges
src/helpers/bridges/BridgeBase.cpp - Radio drivers
src/helpers/radiolib/RadioLibWrappers.cpp - Device displays
src/helpers/ui/DisplayDriver.h
Other components
- Mesh client
Connections 12
- Mesh engine → Packet dispatcher: begins
- Packet queues → Packet model: allocates
- Mesh engine → Node identity: derives shared secret
- Mesh engine → Packet queues: obtains and queues
- Mesh engine → Mesh tables: checks seen packets
- Mesh engine → Routing policy: routes packets
- Mesh engine → Sensor manager: queries telemetry
- Environment telemetry → Location providers: provides location
- Mesh client → Serial interface: connects by USB
- Mesh client → BLE interface: connects by BLE
- Mesh client → Wi-Fi interface: connects by Wi-Fi
- Radio bridges → Radio drivers: uses radio drivers