Role Configuration and Tuning

Deep-dive configuration of ROUTER, ROUTER_CLIENT, and REPEATER roles including hop limit tuning and fixed-position setup.

ROUTER vs ROUTER_CLIENT vs REPEATER: When to Use Each

Meshtastic offers three primary infrastructure node roles, each with 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.

Role Behavior Summary

BehaviorROUTERROUTER_CLIENTREPEATER
Forwards packetsYesYesYes
Has user-facing interfaceNoYesNo
Broadcasts own positionRarely/NeverYes (configurable)Never
Appears in node listYesYesNo (stealth)
Sends telemetryMinimalYesNo
Preferred for infrastructureYesSemiYes (privacy-conscious)

ROUTER

The ROUTER role is designed for dedicated infrastructure nodes. It:

Use ROUTER when: You have a dedicated always-on infrastructure node (fixed repeater, backbone node) with no human user directly attached.

ROUTER_CLIENT

ROUTER_CLIENT combines forwarding with full client functionality. It's designed for nodes that serve double duty:

Limitation: ROUTER_CLIENT nodes can create traffic loops and increased channel utilization when multiple are deployed in close proximity. In infrastructure-heavy deployments, prefer ROUTER for dedicated repeater nodes.

Use ROUTER_CLIENT when: One person both uses the node AND wants it to serve as a repeater for others. Typical for home base stations that cover a neighborhood.

REPEATER

The REPEATER role (formerly ALL_SKIP_DECODING) is the "silent repeater" option:

Use REPEATER when: You want a completely silent infrastructure node - no 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.

Configuration Commands

# Set role to ROUTER
meshtastic --set device.role ROUTER

# Set role to ROUTER_CLIENT
meshtastic --set device.role ROUTER_CLIENT

# Set role to REPEATER
meshtastic --set device.role REPEATER

# Verify current role
meshtastic --get device.role