MeshCore ships six example applications that serve as both reference implementations and production-ready firmware.
Directory: examples/companion_radio/
Connection: BLE (Bluetooth Low Energy), USB Serial, or WiFi
Purpose: Connects external client applications to the mesh network.
The Companion Radio acts as a gateway between the LoRa mesh and client applications running on phones, laptops, or web browsers. It exposes the Companion Protocol over BLE/USB/WiFi.
| Type | Protocol |
|---|---|
| Mobile/Web App | BLE (Bluetooth Low Energy) |
| Desktop/Laptop | USB Serial |
| Local network | WiFi |
- Web: https://app.meshcore.nz
- Android: Google Play Store
- iOS: Apple App Store
- Node.js SDK: https://github.com/liamcottle/meshcore.js
- Python CLI: https://github.com/fdlamotte/meshcore-cli
Directory: examples/kiss_modem/
Connection: USB Serial (115200 baud, 8N1)
Purpose: Serial protocol bridge for host applications implementing the KISS protocol.
Implements the standard KA9Q/K3MC KISS framing protocol with MeshCore-specific SetHardware (0x06) extensions. Suitable for integration with existing AX.25/packet radio software or custom host applications.
See KISS Modem Protocol documentation for the full protocol specification.
Directory: examples/simple_repeater/
Connection: None (headless)
Purpose: Extends network coverage by forwarding packets.
A repeater receives all packets it hears and re-transmits them to extend range. Key characteristics:
- Does not originate messages
- Maintains a neighbor table (up to 8 most recent)
- Can be configured via serial CLI
- Supports power-saving mode
neighbors # Show up to 8 most recent neighbor advertisements
neighbor.remove <pubkey> # Remove neighbor from table
discover.neighbors # Discover direct neighbors
get/set powersaving # on/off
Directory: examples/simple_room_server/
Connection: None (headless)
Purpose: BBS-style shared message board accessible to all network nodes.
A Room Server stores and re-broadcasts messages to clients that connect to it. It functions as a shared channel visible to all connected users.
Directory: examples/simple_secure_chat/
Connection: USB Serial (terminal)
Purpose: Terminal-based encrypted direct messaging.
Provides a text-mode interface for sending and receiving encrypted direct messages between MeshCore nodes. See Terminal Chat CLI documentation for commands.
Directory: examples/simple_sensor/
Connection: None (headless)
Purpose: Remote telemetry collection and alerting.
Reads sensor data and transmits it over the mesh network. Supports a range of hardware sensors (GPS, temperature, pressure, current) via the sensor_base PlatformIO configuration with 25+ sensor libraries.
sensor list [start] # List all sensors with values
sensor get <key> # Get sensor value
sensor set <key> <value> # Set sensor value
Source: FAQ
| Role | Repeats? | Stores Messages? | Has UI? |
|---|---|---|---|
| Companion Radio | No | No | Via connected app |
| KISS Modem | No | No | Via host app |
| Repeater | Yes | No | No |
| Room Server | Yes | Yes | No |
| Secure Chat | No | No | Terminal |
| Sensor | No | No | No |
Note: Only Repeaters and Room Servers re-transmit (repeat) packets. Companion Radio clients do not repeat.