Skip to main content
Colorado Mesh · Deep dive

Repeatersetup guide

Set up and tune a repeater node for the Colorado Mesh network — TX/RX delay profiles, AGC tuning, and serial preflight.

Getting your repeater running.

If you flashed the device with Repeater firmware from the web flasher, the repeater role is already applied. For most operators, getting online is about verifying the radio preset and syncing the clock — not changing the role.

  1. 1.
    Flash Repeater firmware via the web flasher
    This bakes in the repeater role. You should not need to set it manually.
  2. 2.
    Mount high with line of sight + a real external antenna
    Elevation and antenna quality matter more than transmit power.
  3. 3.
    Power from a stable supply
    Wall adapter, POE, or solar with battery backup. Avoid bus-powered USB hubs.
  4. 4.
    Verify and tune via USB / Web Serial
    Walk the first-run checklist below, then pick a delay profile and set common settings.

Sync the clock every power cycle

Repeaters boot with an old date. Without a correct clock, relayed message timestamps are wrong.

  • GPS-capable firmware + hardware: gps on then gps sync pulls time from the GPS fix.
  • Otherwise: connect with the companion app or the Web Serial console and run clock sync after every reboot or power cycle.

Don't type an equals sign

The CLI uses a space, not =. Typing set path.hash.mode = 1 can silently fail or store a garbage value — the node looks configured but isn't. Always use set path.hash.mode 1.

First-run CLI checklist

The minimum sequence a brand-new operator should run after flashing Repeater firmware. Use the Web Serial console — same default profile as the utility site.

Colorado defaults: 910.525 MHz · 62.5 kHz BW · SF7 · CR8 · 22 dBm

1. Confirm firmware and role

Repeater firmware sets the role automatically. You should see role “Repeater” — no need to change it.

Expect: role = Repeater

Commands
ver
board
get role

2. Verify the Front Range radio preset

Read the radio back. It should match the Colorado defaults: 910.525 MHz · 62.5 kHz BW · SF7 · CR8 · 22 dBm.

Expect: freq 910525 · bw 62500 sf 7 cr 8 · tx 22

Commands
get radio
get freq
get tx

3. Apply Front Range defaults (only if the read-back didn't match)

This site and the serial preflight write the split form generated from the shared settings — set freq 910525, set radio bw 62500 sf 7 cr 8, set tx 22. The MeshCore CLI docs also describe a tuple form, set radio 910.525,62.5,7,8, if you are following the raw CLI reference. Skip the block if step 2 already showed the right values.

Commands
set freq 910525
set radio bw 62500 sf 7 cr 8
set tx 22

4. Enable 2-byte path hashes

Current Colorado MeshCore flood routing expects path.hash.mode 1. Older firmware defaulted to mode 0 (1-byte) and will look like packet loss.

Expect: path.hash.mode = 1

Commands
set path.hash.mode 1
get path.hash.mode

5. Sync the clock

Repeaters boot with an old date until time is set. Pick the path that matches your build:

Expect: clock returns the current UTC time

Commands
# GPS-capable firmware + hardware:
gps on
gps sync

# Otherwise — companion app or web serial, after every reboot:
clock sync

6. Reboot and re-check

Reboot, reconnect serial, then re-run `clock` and `get role` to confirm the settings persisted and the time is correct.

Commands
reboot
clock
get role

After this, choose a delay profile for your site, apply the common settings, and run the full serial preflight before leaving the install online.

Repeater Configuration Profiles

Higher elevation nodes wait longer before retransmitting, letting local nodes handle nearby traffic first. The network self-organizes without manual routing.

Choose the profile that best matches your repeater's location and elevation.

HILLTOPHighest elevation

Peak or tower with clear line of sight across the metro. Backbone infrastructure.

Examples: Lookout Mtn, Flagstaff Summit, Green Mtn

Typical neighbors: 20+

CLI Commands
set txdelay 2
set direct.txdelay 2
set rxdelay 3
FOOTHILLSMid elevation

Bridges hilltop nodes to suburban coverage.

Examples: Morrison ridgeline, Golden, Red Rocks area

Typical neighbors: 10-20

CLI Commands
set txdelay 1.5
set direct.txdelay 1
set rxdelay 3
SUBURBANAverage elevation

Typical rooftop install serving your neighborhood.

Examples: Denver/Aurora/Lakewood rooftop

Typical neighbors: 5-10

CLI Commands
set txdelay 0.8
set direct.txdelay 0.4
set rxdelay 3
LOCALLow elevation

Only sees a few neighbors. Serves immediate area.

Examples: Indoor, ground-level, low roof

Typical neighbors: 1-3

CLI Commands
set txdelay 0.3
set direct.txdelay 0.1
set rxdelay 3
MOBILEVariable elevation

Moving through the mesh. Always defers to fixed infrastructure.

Examples: Vehicle, hiking, bike

Typical neighbors: Variable

CLI Commands
set txdelay 3
set direct.txdelay 2.5
set rxdelay 3

Common Settings (Colorado MeshCore Repeaters)

Apply these after the first-run checklist, regardless of your repeater's delay profile. Use spaces, never =.

CLI Commands
set path.hash.mode 1
set advert.interval 240
set flood.advert.interval 24
set agc.reset.interval 500
set guest.password
SettingValueWhat it does
path.hash.mode1Use 2-byte path hashes (required for current Front Range flood routing)
advert.interval240Local advert every 4 hours (neighbors only)
flood.advert.interval24Network-wide advert every 24 hours
agc.reset.interval500Reset radio AGC every ~8 min to prevent deafness from RF interference
guest.password(blank)Lets community members query repeater status

USB Serial Preflight

The first-run checklist is the minimum to get a node online. This preflight is the deeper audit — run it before and after a field install to verify everything persisted and the node is healthy. Uses the same default command profile as the Colorado Mesh utility site.

Serial connection settings

Baud rate115200
Data bits8
Stop bits1
Paritynone
Flow controlnone
Line endingCRLF

Identify and time-sync

Confirm firmware, board, and clock, then sync time after every reboot or power cycle.

Commands
ver
board
clock
clock sync

Confirm radio and identity

Verify the node name, repeater role, radio preset, frequency, transmit power, airtime factor, path-hash mode, and public key.

Commands
get name
get role
get radio
get freq
get tx
get af
get repeat
get path.hash.mode
get public.key

Check location and adverts

Make sure map coordinates, local adverts, flood adverts, flood limits, and read-only access are set correctly.

Commands
get lat
get lon
get advert.interval
get flood.advert.interval
get flood.max
get allow.read.only

Audit owner and delay tuning

Confirm maintenance contact info, access control, and the TX/RX delay profile selected for the site.

Commands
get owner.info
get acl
get rxdelay
get txdelay
get direct.txdelay

Observe health and neighbors

Inspect runtime counters and discover nearby nodes before leaving an install online.

Commands
stats-core
stats-radio
stats-packets
discover.neighbors
neighbor

Optional site-specific checks

Only run these when the hardware or install actually uses bridge mode, GPS, or power-saving behavior.

Bridge parameters
get bridge.enabled
get bridge.delay
get bridge.source
get bridge.baud
GPS state
gps on
gps sync
gps off
Power saving
powersaving on
powersaving off

Understanding the Settings

Technical reference for TX/RX delay configuration.

txdelay / direct.txdelay

  • Controls how long a repeater waits before retransmitting a received packet.
  • Formula: unit = estimated_airtime x txdelay, then delay = random(0..5) x unit
  • Higher values create a wider random window, meaning more deference to other nodes that may retransmit first.
  • direct.txdelay is the same mechanism but for routed point-to-point messages (usually set lower because direct messages benefit from faster delivery).

rxdelay — SNR-Based Path Selection

  • Only affects flood packets — direct (point-to-point) packets are always processed immediately. Delays processing of floods based on signal quality (SNR).
  • Strong signal = processed immediately. Weak signal = delayed and likely dropped as a duplicate.
  • Effect: the mesh naturally prefers the strongest, cleanest paths without any manual routing configuration.
  • All Denver repeaters use rxdelay 3.

agc.reset.interval — Radio Deafness Prevention

  • Periodically resets the LoRa radio's Automatic Gain Control (AGC) to prevent "deafness" caused by strong out-of-band RF interference.
  • Without this, the SX1262 AGC can lock up, clamping the noise floor at -120 dBm and making the repeater unable to hear weaker signals until rebooted.
  • AGC is also reset automatically after every transmission — this setting only matters during long idle/receive periods.
  • Especially important for hilltop repeaters near broadcast towers or cell sites. Denver repeaters use agc.reset.interval 500 (~8 minutes).
  • Values are stored in 4-second increments (e.g., 60 is rounded to 60). Range: 4–1020 seconds. Set to 0 to disable.

Quick Reference

SettingDefaultRangeControlsRule of Thumb
path.hash.mode00-3Path-hash byte width on flood routesSet to 1 for 2-byte hashes on Colorado MeshCore. 3 is reserved — do not use.
txdelay0.50-3.0Wait before retransmitting floodsHigher = defer to other nodes
direct.txdelay0.20-3.0Wait before retransmitting direct packetsUsually lower than txdelay
rxdelay00-20.0SNR-based flood processing priority (direct packets unaffected)Higher = prefer strongest signal
agc.reset.interval00-1020Periodic AGC reset to prevent radio deafness (seconds)Non-zero = auto-recover from RF interference

Setting Owner Info

Help the community identify and maintain repeaters by setting owner information.

Consider including the following details in your repeater's owner info:

  • Callsign or handle — your ham callsign or Discord username
  • Antenna specs — type, gain, height above ground
  • Power source — mains, solar, battery backup
  • Install type — rooftop, tower, indoor, portable
Example
set owner KE0ABC / 6dBi omni @30ft / Solar+Batt / Rooftop

Need Help With Your Repeater?

Join our Discord community to get advice on placement, antenna selection, and configuration.