pyMC Brings Linux-Native Mesh Repeating to MeshCore
MeshCore has introduced pyMC, a Python implementation of the MeshCore protocol stack designed to run on Linux systems rather than embedded firmware. This opens up a fundamentally different approach to building mesh infrastructure—one that trades the resource constraints of microcontrollers for the flexibility and observability of a general-purpose operating system.
The pyMC project started as a learning exercise to understand how the MeshCore protocol works under the hood. It evolved quickly into something more practical: a reusable core library that handles the protocol-level grunt work—packet parsing, identity management, radio interface handling—while remaining fully compatible with the embedded firmware ecosystem. Early versions already support over 15 LoRa radio boards via SPI, KISS, and USB interfaces, with more in development.
Where Repeaters Become Service Hubs
The real shift comes with how pyMC thinks about node identity. Traditional repeaters assume one radio equals one logical presence on the mesh. pyMC breaks that assumption. A single Linux device can host multiple identities simultaneously, each with its own context. In practice, this means a pyMC repeater can evolve into something more like a lightweight message hub—simultaneously acting as a repeater, running companion services, collecting observer data, and hosting additional mesh applications without losing radio compatibility.
That flexibility matters especially for European deployments, where duty cycle constraints and limited spectrum make efficient use of infrastructure hardware critical. A single gateway or repeater can now do more work with the same radio footprint.
Visibility Changes Everything
Running the mesh stack on Linux also solves a persistent infrastructure problem: visibility. Mesh networks are notoriously difficult to improve when their internal behavior remains invisible. pyMC addresses this through pymc_console, a browser-based dashboard built on top of the pyMC repeater layer. The console surfaces packet flow, radio status, connected identities, airtime utilization, and network behavior patterns in a way that’s actually observable and actionable.
This isn’t a separate tool bolted onto the side—it’s a natural extension of the Linux-native architecture. The same foundation that lets pyMC communicate with radios also makes it straightforward to build analytics, dashboards, and new applications around mesh activity. A repeater with visibility stops being just a forwarding node and becomes a local window into network health.
Practical Starting Points
The MeshCore blog recommends specific hardware platforms for different use cases. The MeshToad and MeshTadpole work well for lightweight lab setups and desktop experimentation, while Raspberry Pi-based solutions like PiMesh suit infrastructure and gateway deployments. For space-constrained repeater installations, the UltraPeater Luckfox Pico Ultra HAT offers a compact option.
Everything needed to get started—source code, setup instructions, and community support—is available through the MeshCore community. The project also maintains an active Discord community for builders testing real-world deployments.
What makes pyMC significant isn’t just another way to run a repeater. It’s that Linux as a mesh infrastructure platform changes what’s possible: better debugging, deeper real-time insight into network behavior, and the ability to extend mesh services without waiting for firmware updates or burning resources on embedded hardware. For European hobbyists and small infrastructure operators, that’s a meaningful expansion of the design space.