ROUTER vs ROUTER_CLIENT vs REPEATER: When to Use Each

Meshtastic's current infrastructure node roles are ROUTER, ROUTER_LATE, and REPEATER (with CLIENT covering ordinary nodes, which also relay traffic via managed flooding). Each has distinct behaviors for packet forwarding, position broadcasting, and power management. Choosing the wrong role for your hardware leads to either wasted bandwidth or poor coverage. Note: ROUTER_CLIENT was retired in firmware 2.3.15 and is no longer a settable role - it now behaves as CLIENT. It is covered below only to explain what to use instead.

Role Behavior Summary

BehaviorROUTERROUTER_LATEREPEATER
Forwards packetsYes (high priority)Yes (rebroadcasts only after others)Yes (high priority)
Has user-facing interface (BLE/WiFi/Serial)No (off by default)No (off by default)Yes (on by default)
Broadcasts own positionReducedReducedNever
Appears in node listYesYesNo (stealth)
Sends telemetryReducedReducedNone
Preferred for infrastructureYes (stationary, well-placed)Yes (rebroadcast-late nodes)Yes (privacy-conscious / anonymous relay)

ROUTER

The ROUTER role is designed for dedicated, stationary, well-placed infrastructure nodes. It:

Use ROUTER when: You have a dedicated always-on, stationary, well-placed infrastructure node (fixed repeater, backbone node) with no human user directly attached. For ordinary nodes, official guidance is to leave them on CLIENT rather than promoting them to ROUTER.

ROUTER_CLIENT (deprecated - use CLIENT or ROUTER instead)

ROUTER_CLIENT was deprecated and removed in firmware 2.3.15; it is no longer a settable role and now behaves exactly as CLIENT. It was originally meant for nodes that served double duty:

Why it was retired: ROUTER_CLIENT nodes created traffic loops and increased channel utilization (consuming hops and causing collisions) when several were deployed in close proximity - the developers have publicly described it as a mistake. Do not treat it as a role you can merely "be cautious with"; it is gone.

What to use instead: For a node that one person uses AND that should also relay for others, leave it on CLIENT - CLIENT nodes already rebroadcast via managed flooding while keeping the full client interface. For a dedicated repeater that no one uses interactively, use ROUTER.

REPEATER

The REPEATER role is the "silent repeater" option. (Note: REPEATER is a device.role; it is not "formerly ALL_SKIP_DECODING." ALL_SKIP_DECODING is a value of the separate device.rebroadcast_mode setting - the two are independent config axes.) REPEATER:

Use REPEATER when: You want a completely silent, anonymous infrastructure node - no node-list footprint, no management overhead. Ideal for stealth installations or when you want to avoid cluttering the node list.

Caveat: The REPEATER's invisibility makes it harder to diagnose - you won't see it on the map or in node lists. Use ROUTER instead if you need visibility for network management. (REPEATER is also deprecated as of firmware ~2.7.x; for most new infrastructure, prefer ROUTER or ROUTER_LATE.)

Configuration Commands

# Set role to ROUTER (dedicated infrastructure)
meshtastic --set device.role ROUTER

# ROUTER_CLIENT was retired in firmware 2.3.15 - do not use it.
# For a node that is both used and relays, leave it on CLIENT:
meshtastic --set device.role CLIENT

# Set role to REPEATER (anonymous silent relay)
meshtastic --set device.role REPEATER

# (Optional) skip-decoding forwarding is a SEPARATE rebroadcast_mode setting,
# not a role - enable it explicitly if you want it:
meshtastic --set device.rebroadcast_mode ALL_SKIP_DECODING

# Verify current role
meshtastic --get device.role

Revision #4
Created 2026-05-03 06:20:52 UTC by Mesh America Admin
Updated 2026-06-09 00:28:45 UTC by Mesh America Admin