Skip to main content

MeshCore Firmware Variants Explained

MeshCore is distributed as several distinct firmware variants, each designed for a specific role in the mesh. Choosing the correct variant is essential - running the wrong firmware type wastes resources and can degrade network performance.

This page covers node roles. There is a second choice to make: which distribution you flash. Stock MeshCore is one option, and several independent projects (EasySkyMesh, Keymind Cascade, MCLite, WADAMESH, ZephCore) build their own MeshCore firmware with different priorities. See MeshCore Firmware Distributions (Forks and Ports). Pick a distribution first, then a role within it.

The Firmware Variants

Companion (COMPANION)

The Companion firmware is for user-facing nodes. It is the firmware that end-users run on their personal devices to send and receive messages via the MeshCore mobile app.

  • Primary function: Sends and receives direct messages and channel (group) messages. Maintains a contact list. Connects to the MeshCore mobile app over BLE or USB serial (and, on Wi-Fi-capable boards, over a Wi-Fi/TCP connection).
  • Sub-variants: There are two companion firmware builds - BLE Companion and USB Serial Companion. Wi-Fi is an additional connection mode available on capable boards (e.g. a Heltec V3), not a separate companion firmware build.
  • When to use: Personal handheld nodes, base station nodes used for human communication, any node that a person interacts with via the MeshCore app.
  • Firmware file example: Heltec_v3_companion_radio_ble-v1.7.1-165fb33.bin (or the corresponding ..._companion_radio_usb-... build; RAK4631 nRF52840 boards ship a .uf2 companion build)

Repeater (REPEATER)

The Repeater firmware turns a node into a dedicated packet relay. It has no user interface and no messaging capability of its own.

  • Primary function: Receives MeshCore packets and re-transmits them. Forwards packets to extend network reach.
  • Resource profile: Minimal. No display driver, no BLE advertising for user connections (only for CLI access), no message store. Designed for long-running operation on battery or solar when power is sized for worst-case conditions.
  • When to use: Any node whose sole purpose is extending mesh coverage - hilltop repeaters, building relay nodes, infrastructure backbone nodes.
  • When NOT to use: Do not flash Repeater on a node you plan to use as a personal communicator. It has no user-facing messaging.
  • Firmware file example: Heltec_v3_repeater-v1.7.1-165fb33.bin (RAK4631 nRF52840 boards ship a .uf2 repeater build)

Room Server (ROOM_SERVER)

The Room Server firmware creates a store-and-forward message hub. Room servers act as persistent group chat rooms accessible via LoRa.

  • Primary function: Stores incoming messages and delivers them to nodes that connect later (offline delivery). Acts as a central hub for group communication.
  • When to use: Fixed infrastructure nodes serving as community message hubs - in a building, on a hilltop tower, or at an event site where persistent message history is needed.
  • Firmware file example: Heltec_v3_room_server-v1.7.1-165fb33.bin (RAK4631 nRF52840 boards ship a .uf2 room_server build)

SensorGUI (SENSOR)builds

TheFor boards with a screen (and, in the SD-card variants, storage), the official flasher also builds GUI firmware. These are companion nodes with an on-device interface rather than a separate network role.

KISS Radio

A KISS TNC build that turns the node into a dumb modem for a host computer, rather than a participant in the mesh in its own right. See MeshCore KISS Modem Protocol.

Sensor: read this carefully

Sensor firmware is forthe nodesmost thatmisunderstood collectitem andin transmitthis environmentallist, orso telemetrybe data.precise about what exists.

  • PrimaryThe function:upstream ReadsMeshCore sensorrepository datacontains (temperature,a humidity,simple_sensor GPS,example etc.)application. andThe transmitssource it to the mesh network.exists.
  • WhenThe toofficial use:MeshCore flasher does not build it. UnattendedThe monitoringofficial nodesflasher -offers weatherCompanion, stations,Repeater, assetRoom trackers,Server, environmentalGUI sensors.and KISS builds. There is no Sensor entry. You cannot flash a stock Sensor binary from flasher.meshcore.io.
  • HardwareIf support:you Primarilywant nRF52840-baseda boardsprebuilt (RAK4631,Sensor T114)binary, dueyou toeither theirbuild lowit poweryourself consumptionor andget hardwareit sensorfrom interfaces.a fork. Keymind Cascade ships Sensor builds for around 17 boards.
  • Sensor readings are Firmware file example:not RAK4631broadcast nRF52840in boardsadverts. shipA MeshCore advert announces a .uf2node's sensorpresence, buildnot (otherits boardstelemetry. followSensor thedata {board}_sensor-vX.Y.Z-{hash}.binmoves pattern)over MeshCore's request/response protocol. See MeshCore Sensor Nodes for how this actually works.

Summary Table

FirmwareUser MessagingPacket RelayMessage StoreSensorBuilt Databy official flasher
Companion (BLE / USB)YesNoLocal onlyNoYes
RepeaterNoYesNoNoYes
Room ServerNoOptionalYes (network-wide)Yes
GUIYes (on device)NoLocal onlyYes, on screen-equipped boards KISS RadioNo (host-driven)NoNoYes SensorNoNoNoYesNo (source exists upstream; binaries come from forks or your own build)

Source: MeshCorethe official documentationMeshCore flasher catalog (flasher.meshcore.io) and the MeshCore firmware repository at github.com/meshcore-dev/MeshCoreMeshCore.