Technical Information
This page contains technical details for advanced users, developers, and those who want to understand the technology deeply. If you're just getting started, check out our Getting Started guide instead.
MeshCore Architecture
What is MeshCore?
MeshCore is an open-source C++ library and firmware that enables multi-hop packet routing over LoRa radios. It's designed as an alternative to Meshtastic with a focus on simplified routing and battery efficiency.
- Language: C/C++ (64.1% C, 34.8% C++)
- License: MIT License
- Development: PlatformIO build system
- Repository: github.com/meshcore-dev/MeshCore
Node Roles
MeshCore uses fixed roles to optimize network performance:
- Companion Nodes: Do not repeat messages from other users. This prevents adverse routing paths and conserves battery for mobile/personal devices.
- Repeater Nodes: Relay messages for all users. Typically deployed in fixed, high locations with permanent power or solar.
This role-based architecture balances network coverage with power efficiency and routing simplicity.
Multi-Hop Routing
Messages automatically route through intermediate nodes to reach distant destinations. MeshCore implements multi-hop packet forwarding with configurable hop limits to prevent infinite loops and network flooding.
Node Discovery
Unlike Meshtastic's automatic discovery, MeshCore uses on-demand discovery: nodes only appear when they send advertisements. This reduces radio chatter and power consumption but requires patience when joining the network.
LoRa Technology
Radio Specifications
- Frequency: 915 MHz (US), unlicensed ISM band
- Modulation: LoRa (Chirp Spread Spectrum)
- Bandwidth: Configurable (125 kHz, 250 kHz, 500 kHz)
- Spreading Factor: SF7-SF12 (trade-off between range and data rate)
- Coding Rate: 4/5, 4/6, 4/7, 4/8 (forward error correction)
- Output Power: Typically 20-22 dBm (100-158 mW)
Range Considerations
LoRa range depends on many factors:
- Line-of-Sight: 5-15+ miles possible in ideal conditions
- Urban/Suburban: 0.5-3 miles typical with buildings and obstacles
- Elevation: Higher placement dramatically improves range (Fresnel zone clearance)
- Antenna: Quality and placement matter more than transmit power
- Terrain: Hills, trees, and buildings block or reflect signals
- Weather: Rain and humidity can reduce range slightly
Data Rate & Airtime
LoRa is optimized for range, not speed:
- Typical data rate: 0.3 - 5.5 kbps (varies with spreading factor)
- Good for: Text messages, location data, sensor readings
- Not suitable for: Voice, video, large file transfers
- Duty cycle limits: FCC regulations limit transmit time to manage interference
Power Consumption
- Sleep mode: ~100 μA (microamps)
- Receive mode: ~10-15 mA
- Transmit mode: ~120-140 mA at full power
- Battery life: Days to months depending on message frequency and battery size
Hardware Platforms
Compatible Devices
MeshCore works with almost all Meshtastic-compatible hardware:
- Heltec: WiFi LoRa 32 V3, Wireless Stick, Wireless Stick Lite
- RAK Wireless: RAK4631 (nRF52 + SX1262), RAK11200 (ESP32)
- TTGO/LilyGO: T-Beam, T-Echo, T-Deck
- DIY: Custom ESP32 + SX126x/SX127x boards
Check the official flasher for the complete compatibility list.
Recommended Hardware Features
- Screen: Helpful for monitoring without phone (OLED or E-ink)
- GPS: Enables location sharing and repeater positioning
- Battery connector: For portable/mobile use
- External antenna connector: Allows antenna upgrades for better range
- Enclosure compatibility: Consider weatherproofing for outdoor deployment
Regional Configuration
US Recommended Settings
The "US Recommended" preset optimizes for US regulations and typical use cases:
- 915 MHz frequency band (ISM)
- Appropriate spreading factor for range/battery balance
- FCC-compliant transmit power and duty cycle
- Channel hopping within allowed frequencies
MeshCore vs Meshtastic
Key Differences
| Feature | MeshCore | Meshtastic |
|---|---|---|
| Node Discovery | On-demand (via advertisements) | Automatic |
| Node Roles | Fixed (Companion vs Repeater) | Configurable routing behavior |
| Routing | Simplified multi-hop | More complex routing options |
| Community Size | Smaller, growing | Larger, established |
| Development | Active | Very active |
| Hardware | Same devices | Same devices |
| Switching | Easy - just reflash firmware | |
When to Choose MeshCore
- You prefer simplified routing and role-based architecture
- Battery life is a top priority
- You want to experiment with an alternative approach
- You're building a planned network with designated repeaters
When to Choose Meshtastic
- You want automatic node discovery
- You need more advanced routing features
- You want access to a larger community and more documentation
- You prefer more frequent updates and feature additions
Development & Customization
Building from Source
If you want to modify MeshCore or build custom firmware:
- Clone the repository:
git clone https://github.com/meshcore-dev/MeshCore - Install PlatformIO IDE or CLI
- Select your target board in platformio.ini
- Build:
pio run - Upload:
pio run --target upload
See the repository README for detailed build instructions.
Example Applications
The MeshCore repository includes several example implementations:
- Companion Radio: Bluetooth-connected personal node
- Simple Repeater: Standalone relay node
- Room Server: Hub for local services
- Secure Chat: Encrypted messaging implementation
Network Planning
Optimal Repeater Placement
- Elevation: Higher is almost always better (rooftops, hills, towers)
- Line-of-Sight: Visual line-of-sight to other repeaters improves reliability
- Coverage Gaps: Identify areas with no coverage and place repeaters accordingly
- Redundancy: Multiple paths between areas improve network resilience
- Power Access: Consider solar + battery for remote locations
- Weather Protection: Outdoor repeaters need weatherproof enclosures
Antenna Considerations
- Stock antennas: Usually adequate for testing and short range
- Upgraded antennas: 5-8 dBi gain antennas can double effective range
- Directional antennas: Yagi or patch antennas for point-to-point links
- Omnidirectional: Better for general coverage and mobile use
- Antenna height: Every meter of height significantly improves range
Additional Resources
- MeshCore GitHub Repository
- Official Firmware Flasher
- Austin Mesh Getting Started Guide
- Meshtastic Project (compatible alternative)
- The Things Network (broader LoRa community)
- LoRa Alliance (protocol specifications)