Find My Mesh Add your group

Build a MeshCore repeater

Repeaters carry messages between radios that can't reach each other. A good one, up high, can connect a whole county.

repeater your radio their radio blocked by the hill
Height beats power. A repeater with a clear view of both radios relays what the hill blocks.

A repeater extends the range of a MeshCore network by forwarding packets toward their destination. It does not forward every packet it hears. Repeaters work best in high places, and many run on solar power. This guide covers flashing, configuration, security and placement.

Before you start

Repeater firmware runs on the same boards as companion firmware. A radio running repeater firmware does not accept Bluetooth connections from the app, so you configure it over USB or manage it over the mesh.

Each repeater has its own identity key. Plan firmware updates before you mount it. On some nRF52 boards, including the Wio Tracker L1 Pro, the factory bootloader can't do Bluetooth updates, and the official flasher warns you to install the OTAFIX bootloader first. The flasher also recommends OTAFIX for other nRF52 boards such as the Heltec T114, T096 and T-Echo. Install it before the repeater goes up on a roof.

Flash the repeater firmware

Open flasher.meshcore.io in Chrome or Edge on a desktop computer. Choose your device, pick the Repeater role, connect the board by USB and flash it. When flashing finishes, the flasher offers a Repeater Setup button that opens the USB configuration tool.

Configure over USB or remotely

The easiest path is config.meshcore.io. Connect the repeater by USB and use the web page to set the name, frequency and radio settings, location, and passwords. The flasher's Console feature gives you a command line over USB as well.

After setup, you can manage the repeater over LoRa from the MeshCore app's Remote Management feature. Log in with the admin password to reach the command line and settings.

Set the radio first. The frequency must match your region before the app can manage the repeater over the air. For the US preset, the radio command below sets all four values at once. Radio changes take effect after a reboot.

Keep names short: the CLI reference limits them to 23 bytes when a location is set and 31 bytes without one. The FAQ also suggests choosing a repeater key whose first byte doesn't match other repeaters near you, so paths stay clear.

set radio 910.525,62.5,7,5
Sets frequency (MHz), bandwidth (kHz), spreading factor and coding rate in that order. Requires a reboot. Values shown are the US preset.
reboot
Restarts the repeater so radio changes apply. No reply is sent.
get radio
Shows the current radio settings so you can confirm them.
set name <name>
Sets the repeater's advertised name. Community groups suggest a name that hints at the location.
set lat <degrees>
Sets latitude in decimal degrees.
set lon <degrees>
Sets longitude in decimal degrees. Location is optional but lets the repeater appear on the map.
set owner.info <text>
Adds contact info for the owner. A | character becomes a new line. Requires firmware 1.12 or newer.
advert
Sends a flood advert so other nodes learn about the repeater.

Change the default passwords

Every repeater and room server ships with the admin password set to the word password. Anyone who knows that default can change your settings, so change it before you deploy. The admin password command echoes the new password back to confirm it.

The guest password works differently by role. On a repeater it gives limited access, for example to telemetry and owner info, and it is blank by default. On a room server it is the password people use to join, and the MeshCore FAQ lists its default as hello, so change it.

password <new_password>
Changes the admin password. The default is password.
set guest.password <password>
Sets the guest password. On room servers this is the join password.

Transmit power

The set tx command controls only the power of the LoRa chip. Some boards add an amplifier stage that raises the total output, so check your board's manual. The MeshCore docs warn that a value set too high may break the law in your country, and the FAQ warns that wrong settings on some high-power boards can damage the hardware. Community groups such as PugetMesh and RDUMesh say they keep repeaters at or under 1 watt. Some boards in the FAQ's own table go well above 1 watt, so don't read 1 watt as the legal limit. In the U.S., the rules for this band are in FCC Part 15 (47 CFR Part 15).

get tx
Shows the current transmit power in dBm.
set tx <dbm>
Sets the LoRa chip's transmit power, from 1 to 22 dBm.

Placement

Height matters most. The MeshCore FAQ says to place a repeater high above ground, and the official site describes repeaters in high locations. Austin Mesh sums up its advice as height first, then antenna, then power.

Seeed Studio's guide on the MeshCore blog adds practical tips: pick an open spot, mount the node higher, keep a clear line of sight to other nodes, keep the antenna vertical, and keep it away from metal surfaces. PugetMesh suggests a roof or a mast above the roofline for repeaters with omnidirectional antennas.

Solar repeaters

The official site promotes solar-powered repeaters in high places and lists the SenseCAP Solar Node P1 Pro as a repeater node. Seeed Studio reports about 9 km with the stock antenna on that node in an open test with clear line of sight.

Community builds are simple. PugetMesh lists a roughly $50 parts kit (prices as of September 2025): a XIAO nRF52840 with a Wio-SX1262 radio, an antenna, a small solar panel, a charge board, an IP65 enclosure and a 10,000 mAh battery. RDUMesh describes its nodes as a small waterproof box with a battery, a light antenna and one or two small solar panels, usually under two pounds.

Firmware before 1.18.0 included a low-voltage boot lockout on some nRF52 boards. The 1.18.0 release notes say it is now disabled on most nRF52 boards, so check the release notes for your board. Repeaters also have a power saving option that sleeps between transmissions.

powersaving on
Turns on power saving (repeater only). The device sleeps between radio transmissions. Default is off.
get pwrmgt.source
Shows the current power source on boards with power management support.

Adverts, the map and updates

A repeater sends flood adverts on a timer, set in hours between 3 and 168. The MeshCore FAQ says the default is 12 hours and the CLI reference says 47, so run get flood.advert.interval to see yours. Repeaters also stop forwarding other nodes' adverts after 8 hops by default.

To add the repeater to the MeshCore map, open Contacts in the app, tap the three-dot menu next to the repeater, tap Share, then Upload to Internet Map.

To update firmware over the air, log in as admin from the app and run start ota. On ESP32 boards this starts a Wi-Fi hotspot named MeshCore OTA where you upload the non-merged firmware file. On nRF52 boards you use Nordic's nRF Device Firmware Update app with the ZIP firmware file.

get flood.advert.interval
Shows how often, in hours, the repeater sends a flood advert.
set flood.advert.interval <hours>
Sets the flood advert interval, from 3 to 168 hours.
start ota
Puts the repeater into over-the-air update mode.
ver
Shows the firmware version.

Community tuning (optional)

Several US groups publish extra settings for repeaters. These are community advice, and the values differ between groups. For example, NashMesh recommends a 2-byte path hash and PugetMesh uses 3-byte. The MeshCore FAQ notes that repeaters on firmware older than 1.14 drop 2-byte and 3-byte packets, so follow your local group's lead. All of the commands below are documented in the official CLI reference.

set multi.acks 1
Turns on multi-acks. PugetMesh describes it as sending two acknowledgements instead of one. Austin Mesh, NashMesh and PugetMesh enable it to make remote admin more reliable.
set agc.reset.interval 4
Resets the radio's automatic gain control every 4 seconds. The FAQ suggests this for repeaters that go deaf near strong interference.
set path.hash.mode 1
Makes the repeater's own adverts use a 2-byte path hash (0 is 1-byte, 2 is 3-byte). It does not change which packets the repeater forwards. Requires firmware 1.14 or newer.
set loop.detect moderate
Drops flood packets that appear to be looping. Requires firmware 1.14 or newer. The default became minimal in firmware 1.18.0 (it was off before). PugetMesh and NashMesh suggest moderate.
set flood.max <value>
Limits how many hops a flood packet can have before this repeater stops forwarding it. Default is 64.
Before you mount anything

Ask your local group where repeaters are needed and which settings they use. A repeater on the wrong settings can't talk to anyone.