Set up a MeshCore repeater
Guide · updated July 2026
A repeater is what actually grows the mesh — a headless node you mount up high to relay traffic for everyone. It takes more care than a companion, so you’ll flash it, lock it down, set it to 3-byte, and test it on the bench before it ever goes up a pole.
New to MeshCore? Start with Set up your first MeshCore node — this guide assumes you’ve flashed a companion before.
Before you start
- A LoRa board to live as a repeater — a Heltec V3/V4 is common; a low-power nRF52840 (RAK WisBlock) is ideal for solar. Update it to firmware v1.14.1 or newer (required for 3-byte).
- A good 915 MHz antenna — on a repeater this matters more than anything; upgrade from the stock whip.
- A real USB data cable (charge-only cables won’t show the board to your computer) and Chrome or Edge.
- For deployment: a weatherproof enclosure and reliable power (battery / solar / PoE).
Antenna first, always. Connect the correct antenna for your frequency before you power or transmit. A bare LoRa board transmitting into no antenna can damage itself.
Flash, configure, deploy
-
Antenna on, then plug in
Connect the antenna, plug the board into your computer with a real data cable, and open the MeshCore web flasher in Chrome or Edge. If the flasher can’t see the board, a charge-only cable is the #1 culprit — try a different cable/port.
-
Flash the Repeater role
Pick your exact board target, choose the Repeater role, flash, and reboot when it finishes. Unlike a companion, a repeater is headless — no Bluetooth, no phone app; it just relays.
-
Run Repeater Setup & lock it down
In the flasher’s Repeater Setup, name the node and set the Region / Preset to US. Set both the admin and guest passwords and write them down — never leave defaults on something you’re mounting in public.
-
Set 3-byte IDs (our repeater standard)
Connect to the repeater’s USB console and switch it to 3-byte paths. Skip any 2-byte advice — our area runs 1-byte companions, 3-byte repeaters. (Needs firmware v1.14.1+. Why 3-byte? → MeshCore IDs & avoiding collisions.)
# on the repeater's console > set path.hash.mode 2 > rebootWhile you’re in there, sync the clock (Settings → Sync Clock) so timestamps line up, then reboot.
-
Test on the bench — before you mount anything
Confirm it actually relays from another MeshCore device first. New nodes announce with adverts that take time to propagate, so be patient and send/discover one. It’s far easier to fix a cable, setting, or antenna on the bench than 30 feet up a mast.
-
Mount it high
Height wins. Mount as high as is practical and safe, antenna vertical and clear of metal and obstructions, in a weatherproof enclosure with reliable power. Then confirm it on MeshMapper / CoreScope — showing up clean and conflict-free.
Check for ID conflicts. Once it’s live, open MeshMapper → Region Info → Repeater List → Repeater ID Usage and make sure your repeater isn’t red (conflicting). The IDs guide walks through that grid.
Back it up before it goes up. Save the repeater’s private key and settings (a “rebuild kit”) so a future reflash or board swap restores it identically — you don’t want to climb back up just to re-adopt a new identity. See MeshCore backup & key security.
Stuck? Repeater siting is half art — the #meshcore channel in the RF Lab Discord has people who’ve mounted plenty. Ask away.
Cut its power draw (firmware 1.16+)
MeshCore 1.16 gave ESP32 repeaters a real sleep mode — a big win for battery and solar runs.
Out of the box an ESP32 repeater (Heltec V3/V4 and the like) stays fully awake, listening around the clock — simple, but it burns power nonstop. Switch on power saving and the board light-sleeps between packets: the LoRa radio keeps listening and wakes the CPU the instant a packet arrives, relays it, and drops straight back to sleep. Traffic loss is minimal, and the idle current falls hard. It’s off by default, so you opt in from the console:
# on the repeater's console
> powersaving on # enable (“off” disables it)
> powersaving # no argument = show current state
The board only starts sleeping about two minutes after each boot — that grace window lets you reconnect and change settings before it dozes off. Bonus: 1.16’s timing rework also cut the repeater’s clock drift from roughly 60 seconds a day down to about 7.
| Heltec V3/V4 repeater | Idle current | Runtime on a 3000 mAh cell |
|---|---|---|
| Power saving off (default) | ~50 mA | ~2–3 days |
| Power saving on (stock 1.16) | ~10 mA | ~1.5–2 weeks |
| Power-tuned build (e.g. EasySkyMesh) | ~5–9 mA | ~3 weeks |
The official 1.16 notes don’t publish current numbers — these are measured community figures, and they swing with the board, its front-end/LNA and the build (the deepest single-digit mA come from power-tuned firmware). But the shape holds: sleeping turns a 2–3 day battery into a 2–3 week one, so even a modest solar panel can keep a repeater topped up indefinitely where a wide-awake one never would.
What about RAK / nRF52 boards? The powersaving switch targets ESP32 repeaters. An nRF52840 board (RAK WisBlock) is already a low-power part that sleeps efficiently on its own — it doesn’t need the toggle, which is exactly why an nRF52 is the classic pick for solar. (1.16’s nRF power work landed on the companion side, not the repeater.)
Tools & sources
Put up a repeater, grow the mesh.
Coverage gaps, antenna picks, mounting tips — bring them to #meshcore.