Skip to main content

Infrastructure Roles: Router and Repeater

Infrastructure roles are for fixed, well-placed nodes that genuinely improve mesh coverage for others. They should only be assigned to nodes that meet strict criteria. Misuse of these roles is a common cause of network congestion and poor performance.

Prerequisites for Any Infrastructure Role

  1. Excellent placement - hilltop, tower, rooftop, or other elevated location with line-of-sight coverage over a wide area
  2. Reliable continuous power - mains power, solar with battery backup, or other reliable source. An infrastructure node that goes offline unpredictably is worse than no node at all.
  3. Genuine improvement - the node must provide coverage that no other node provides, not just duplicate existing relay coverage

Router

Behavior: Always rebroadcasts each packet once, using prioritized routing. Visible in the node list and broadcasts its own position. On ESP32 boards the ROUTER role force-enables power-saving sleep and defaults BLE/WiFi/Serial off, but the node still appears in the node list. (Older firmware used an "aggressive/early" rebroadcast timing; current firmware no longer gives ROUTER a privileged fast contention window, so it does not "win" the relay race by speed.)

Use for: Primary hilltop/tower relays with the best possible placement. There should be few Router nodes on a regional network - one or two per coverage area at most.

Do not use for: Personal devices, nodes at ground level, nodes with intermittent power.

Router Late

Behavior: Always rebroadcasts each packet once, but only after all other nodes have had a chance to relay it. If another node has already relayed the packet, Router Late stays silent. If no other relay has forwarded the packet, Router Late steps in as backup coverage. (ROUTER_LATE is only available on newer firmware; on older builds it will not appear in the role list.)

Use for: Secondary or backup relay nodes that should only fill gaps. Useful in areas where primary coverage exists but is occasionally blocked or offline.

Repeater

Behavior: Silent relay. Does not appear in node lists and does not originate NodeInfo, position, or telemetry. Solely forwards packets, rebroadcasting each one once at the same elevated (prioritized) routing priority as Router. Maximally efficient - no overhead from presence or telemetry. Note: the REPEATER role is deprecated as of firmware 2.7.11; for most infrastructure nodes prefer ROUTER (or ROUTER_LATE).

Use for: Infrastructure relays where you want maximum forwarding efficiency with zero network overhead. Ideal for rooftop nodes in a managed deployment where you know the node is working from external monitoring rather than node-list visibility.

Caution: Because a Repeater is invisible in node lists, it can be difficult to diagnose remotely. Use an admin channel for remote configuration if deploying Repeater-role nodes.

Router vs. Repeater: Which to Choose?

AttributeRouterRouter LateRepeater
Visible in node listYesYesNo
Broadcasts positionYesYesNo
Relay timingStandard (prioritized routing)Late (backup)Standard (prioritized routing)
Network overheadModerateModerateMinimal
Best forPrimary hilltop relayBackup coverageHigh-efficiency fixed relay

Setting the Role via CLI

meshtastic --set device.role ROUTER
meshtastic --set device.role ROUTER_LATE
meshtastic --set device.role REPEATER

Role values are bare enum names (CLIENT, CLIENT_MUTE, CLIENT_HIDDEN, ROUTER, ROUTER_LATE, REPEATER, TRACKER, SENSOR, ...). There is no _ROLE suffix - ROUTER_ROLE, REPEATER_ROLE, etc. will fail with an invalid-value error. The old ROUTER_CLIENT role was retired in firmware 2.3.15.