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.

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)

Sensor (SENSOR)

The Sensor firmware is for nodes that collect and transmit environmental or telemetry data.

  • Primary function: Reads sensor data (temperature, humidity, GPS, etc.) and transmits it to the mesh network.
  • When to use: Unattended monitoring nodes - weather stations, asset trackers, environmental sensors.
  • Hardware support: Primarily nRF52840-based boards (RAK4631, T114) due to their low power consumption and hardware sensor interfaces.
  • Firmware file example: RAK4631 nRF52840 boards ship a .uf2 sensor build (other boards follow the {board}_sensor-vX.Y.Z-{hash}.bin pattern)

Summary Table

FirmwareUser MessagingPacket RelayMessage StoreSensor Data
CompanionYesNoLocal onlyNo
RepeaterNoYesNoNo
Room ServerNoOptionalYes (network-wide)No
SensorNoNoNoYes

Source: MeshCore official documentation and firmware repository at github.com/meshcore-dev/MeshCore