Device Roles Explained

Meshtastic devices can be assigned one of several roles that control how they participate in the mesh. Choosing the right role for your repeater affects network behavior, power consumption, and visibility.

CLIENT (default)

The standard role for personal devices, and the role official Meshtastic guidance recommends for the overwhelming majority of ordinary nodes. A CLIENT node sends and receives messages via the app and participates in relaying (managed flooding): it rebroadcasts a packet only when no other node has already done so. If a CLIENT hears another node rebroadcast a packet first, it defers and will not rebroadcast it itself.

A CLIENT also ignores any packet (tracked by Packet ID) it has already received, so a given packet is never relayed twice by the same node. This managed-flooding behavior is what prevents broadcast storms.

Best for: personal devices carried by users, and most ordinary stationary nodes.

REPEATER

A dedicated relay node. REPEATER is deprecated as of firmware ~2.7.x and is no longer recommended as the default for new infrastructure (see "Which role should I choose?" below). Key behaviors:

Note: ALL_SKIP_DECODING is a device.rebroadcast_mode value - a separate setting from the device role - that relays packets without decrypting them, so a REPEATER can forward traffic on channels whose PSK it does not hold. Role and rebroadcast mode are independent settings; REPEATER is not "formerly ALL_SKIP_DECODING."

Best for: legacy deployments on older firmware where an anonymous, node-list-invisible relay is specifically wanted. For new infrastructure, prefer ROUTER.

ROUTER

The recommended role for stationary, well-placed community infrastructure nodes. A ROUTER is visible in the node list and originates its own NodeInfo (and GPS position if configured), which makes it trackable and useful for network monitoring. A ROUTER automatically enables power-saving sleep (this cannot be turned off) and defaults its app connectivity - BLE, Wi-Fi, and Serial - to OFF, so you don't normally text it directly even though it can still originate and receive messages at the protocol level. It is designed for stationary, well-placed nodes.

Best for: fixed community infrastructure and backbone relay nodes where you want visibility on the network and reliable rebroadcasting.

ROUTER_LATE

A relay role that rebroadcasts only after all other nodes have had a chance to do so - it is not a prioritized router. It defers to every other node and relays last, which reduces redundant transmissions in dense areas while still ensuring coverage in gaps. Use it for nodes that should rebroadcast only after others.

Best for: filling specific dead spots in a network that already has primary coverage, or as a deliberately low-priority backup relay.

Comparison table

RoleVisible in node listRebroadcast strategyPrioritized routingSends own dataPower
CLIENTYesDeferred (managed flooding)NoYes (if set)Moderate
REPEATER (deprecated)NoOnce, higher priority, no deferralYesNoHigh (LoRa active, no force-sleep)
ROUTERYesOnce, higher priority, no deferralYesYesForce power-saving sleep; app radios off by default
ROUTER_LATEYesAfter all other nodesNo (relays last)YesHigh (LoRa always on)

Note: appearing on a public map such as meshmap.net is independent of role - it requires an MQTT uplink to the internet (a gateway), not a particular device role.

Which role should I choose?


Revision #3
Created 2026-05-03 02:06:44 UTC by Mesh America Admin
Updated 2026-06-09 00:26:25 UTC by Mesh America Admin