What is the difference between a Repeater and Room Client in MeshCore?

What Is the Difference Between a Repeater and Room Client in MeshCore?

MeshCore ships several firmware variants. This page compares the Repeater firmware with the Companion (room) client firmware - the variant a user-carried node runs to connect to a room server. (Note: across the rest of this wiki this client is referred to as the Companion variant; "Room Client" here means the same Companion firmware used to interact with a room server. The room server itself - the node that actually stores and serves message history - runs separate Room Server firmware and is not covered in detail here.) Choosing the wrong one is a common source of confusion. This page explains both in detail.

REPEATER_FIRMWARE

A node flashed with REPEATER_FIRMWARE acts as pure RF infrastructure. Its job is to forward MeshCore packets toward their destination to extend the reach of the mesh. Unlike flood-based mesh systems, a MeshCore repeater forwards selectively (route/path-based) - it does not rebroadcast every packet it receives. Key characteristics:

Best for: Hilltop relays, tower-mounted infrastructure nodes, solar repeaters in remote locations - any deployment where the goal is coverage extension rather than message origination.

ROOM_CLIENT_FIRMWARE

A node running the Companion ("room client") firmware has a full client identity and can connect to a MeshCore room server to retrieve stored messages. Note that the message storage and retrieval capability lives in the room server firmware; the room client is simply a Companion node that logs in to that server to fetch history it missed. Key characteristics:

Best for: User-carried nodes, base station nodes that interact with a room server, nodes that need to send and receive addressed messages.

Can a node be both?

No. You must choose one firmware at flash time. A single physical node cannot simultaneously run the Repeater firmware and the Companion (room client) firmware. If you need both roles at one location - for example, a hilltop site that also needs a room-server-connected client - you need two separate physical nodes: a repeater for range extension and a separate client node.

Summary comparison

FeatureREPEATER_FIRMWAREROOM_CLIENT_FIRMWARE
Relays/forwards packets for othersYes (selectively, route-based)No
Has on-mesh identityYes (infrastructure)Yes (user)
Connects to room serverNoYes
Sends/receives user messagesNoYes
Power useLowHigher
Screen neededNoOptional

Revision #6
Created 2026-05-03 06:37:30 UTC by Mesh America Admin
Updated 2026-06-08 19:45:38 UTC by Mesh America Admin