← Back to Hub

Network Infrastructure

Repeater Build Guide

How to choose hardware, flash firmware, configure and deploy a MeshCore repeater that works with the Northern Arizona MeshCore network. A well-placed repeater on a ridge or rooftop can cover a whole neighborhood or bridge two valleys.

Northern Arizona Network Settings

Every repeater on our mesh must use these settings. A repeater with different radio settings hears nothing from the rest of the network.

SettingValue
Frequency910.525 MHz
Bandwidth62.5 kHz
Spreading factorSF7
Coding rateCR7
Path hash size2-byte
Local advertEvery 60 minutes
Flood advertEvery 3 hours
FirmwareMeshCore 1.14 or newer, Repeater role
Commands
set radio 910.525,62.5,7,7 set path.hash.mode 1 set advert.interval 60 set flood.advert.interval 3 reboot

Our network uses 2-byte path hashes. Repeaters older than firmware 1.14 drop packets that use 2-byte paths, so always flash a current release.

What a Repeater Does

In MeshCore, only devices flashed as repeaters relay traffic. Companions and room servers don’t. A repeater listens for messages from companions and other repeaters and rebroadcasts them to extend coverage. It needs no phone and no user, just power, an antenna and a good location. Think of repeaters as the cell towers of the mesh.

Companion

Your personal device. Sends and receives your messages through the phone app.

Repeater

Relays messages and extends coverage. No personal messaging.

Room Server

Stores messages for users who are offline, like a bulletin board. Does not relay.

When to deploy one

  • You want to extend coverage to an area that can’t reach existing repeaters.
  • You have access to a high location: a ridge, hilltop, rooftop or tower.
  • You want to bridge two groups of users separated by terrain.

When to hold off

  • You don’t have a companion yet. Get on the air with one first.
  • You only have a low location in a valley. A repeater at ground level helps very little.
  • The area already has strong coverage. Check the repeater list and ask on Discord before you build.

Hardware

Recommended boards

Budget
Heltec V3/V4

Affordable and easy to find. Best indoors or where wall power is available, since its ESP32 draws more power than nRF52 boards. The screen shows the name and radio settings.

About $20–30
Best for solar
RAK WisBlock

Low-power nRF52840 core. The RAK19007 base board has a 5 V solar connector and battery charger built in. The common choice for off-grid hilltop sites.

About $30–50
High power
Station G2

High-power amplifier and low-noise receive amplifier. Not weatherproof, so mount it in an enclosure. Best for fixed sites with power. Its transmit setting differs from plain boards; see Advanced Settings.

About $109

Antennas

Use an antenna tuned for 915 MHz, not 868 MHz or a 2.4 GHz Wi-Fi antenna.

  • Omni-directional: covers all directions. A 5.8 dBi fiberglass omni is a good all-around choice. An 8 dBi omni reaches farther on flat ground but has a flatter pattern, which can miss users below a high ridge site.
  • Directional (Yagi): 10–14 dBi for point-to-point links, such as bridging Prescott and the Verde Valley. Must be aimed precisely.
  • Stock antenna: fine for indoor or test setups.

Power

  • Wall power: the simplest option. Use a quality 5 V USB supply rated at least 600 mA for a Heltec V3/V4, and 1 A for headroom. High-power boards like the Station G2 need more; check the maker’s spec.
  • Battery: runtime is capacity divided by average draw. A board averaging 50 mA empties a 3000 mAh battery in about 60 hours. Good for testing a location.
  • Solar: the usual choice for permanent hilltop sites. See Solar Power.

Step-by-Step Setup

1
Flash repeater firmware
  1. Open the MeshCore web flasher in Chrome or Edge.
  2. Connect the board by USB.
  3. Select your device, for example “Heltec V3/V4” or “RAK WisBlock / WisMesh (RAK 4631)”.
  4. Choose the Repeater role, not Companion.
  5. Pick the latest version (1.14 or newer), press Flash and wait for it to finish.
2
Configure the network settings

Repeater firmware doesn’t accept Bluetooth. Do the first setup over USB using the repeater setup option in the web flasher. After that, you can manage it from the MeshCore app on your companion.

A freshly flashed repeater starts on the European default (869.618 MHz, SF8), so it hears nothing here until you change it.

Required commands
set radio 910.525,62.5,7,7 set path.hash.mode 1 set advert.interval 60 set flood.advert.interval 3 reboot
Admin password

The default is password. Anyone who knows it can change your repeater, so set your own (up to 15 characters). The guest password is blank by default.

password <new-password>
Name and exact location

Use a site name followed by RPTR, matching the rest of the network (for example SOUTHVIEW RPTR). Set precise GPS coordinates; latitude and longitude both default to 0, which leaves the repeater off every map.

set name <SITE> RPTR set lat 34.602410 set lon -112.490400
Advert intervals

Our network uses a local (zero-hop) advert every 60 minutes and a flood advert every 3 hours. The required commands above set both: set advert.interval 60 (minutes) and set flood.advert.interval 3 (hours).

Announce it

When setup is done, send one flood advert so the whole mesh learns about the repeater right away instead of waiting for the next 3-hour flood advert.

advert

Each repeater is identified in message paths by the start of its public key. With our 2-byte path hashes, collisions between nearby repeaters are rare. Leave region (flood scope) settings alone unless asked on Discord.

3
Advanced settings
Transmit power

set tx <dbm> (1–22) sets the LoRa chip’s output. On a plain SX1262 board, 22 dBm is the maximum. Boards with an extra amplifier (Station G2, Heltec V4, E22 30/33 dBm modules) put out more than the number you set, so check the MeshCore FAQ table first. It lists 16 dBm on a US Station G2 for about 35 dBm out. Wrong values can damage the radio.

Transmit delay

txdelay (0.5) and direct.txdelay (0.3) keep nearby repeaters from talking over each other. Leave them at the defaults unless the network coordinators suggest otherwise.

Power saving

For battery and solar sites, powersaving on lets the repeater sleep between radio activity. It works on nRF52 boards right away and on ESP32 boards after 2 minutes.

GPS

Not needed for a fixed repeater. Adverts use the set lat / set lon location. On a GPS board, gps on then gps setloc saves its position. GPS costs power, so turn it off afterward.

4
Mount and deploy

Height and a clear view matter more than any setting. In our terrain, a repeater on a ridge with a view of the valley will far outperform a taller mast down in a draw.

  • Rooftop: J-mount or chimney mount. Even a single-story roof helps a lot.
  • Attic: a reasonable compromise. Avoid metal roofs, and watch summer attic heat.
  • Tripod or mast: good for testing a new location before a permanent install.
  • Hilltop or ridge: the sites that carry our network, such as Mingus, Granite Mountain and Glassford Hill. Get permission first.
  • Tower: if you have one, adding a LoRa repeater is easy and gives excellent coverage.
5
Verify it works
  1. Check your app: once your companion hears its advert, the repeater shows in Contacts and, with its location set, on the app’s Map tab.
  2. Test with a companion: drive away from the repeater and send messages. The app’s path viewer shows which repeaters a message went through.
  3. Check signal: log in to the repeater and open Status for the last RSSI and SNR. SNR tells you more than RSSI; at SF7, LoRa can decode down to about −7.5 dB SNR.
  4. Ask the community: post on Discord and ask who can hear it.

Solar Power

Northern Arizona has excellent sun, but size for the worst week of the year, not an average day: short December days and multi-day winter storms at higher elevations.

Panel

Size from the repeater’s daily use. A board averaging 20 mA at 3.7 V uses about 1.8 Wh a day; plan for several times that from the panel to recover after cloudy days. Face it south, tilted at about your latitude (34° to 35° across our area) or a little steeper to favor winter sun. NREL’s free PVWatts calculator gives monthly figures for your exact site.

Battery

Use a LiPo, 18650 or LiFePO4 pack big enough to carry several days without sun. Most lithium cells must not be charged below freezing (32°F), and they also have an upper charging limit. Check both on your battery’s datasheet.

Charge controller

Some boards have a solar charger built in, such as the RAK19007. For custom builds, an MPPT controller gets more from the panel than a PWM one.

Enclosure

Use an IP65 or better weatherproof enclosure sized for the board, battery and controller. Add silica gel packs against condensation. A light-colored box, shaded from direct afternoon sun, runs much cooler.

Arizona Deployment Tips

Terrain and line of sight

LoRa works best with a clear line of sight. Our mountains are both the problem and the solution: ridges and hills block signals between valleys, but a repeater on a high point can see across several of them. A quick estimate of the radio horizon in miles is 1.41 × (√h1 + √h2), with both antenna heights in feet above the surrounding terrain. Real links fall short of that when a ridge, trees or buildings are in the way, so test before you commit.

Summer heat

  • A sealed box in direct sun can get far hotter than the air. Shade the enclosure and use a light color.
  • Batteries age fastest when hot. Keep the pack out of direct sun and away from the panel’s back side.
  • Check your battery’s maximum charging temperature; a charger with temperature protection is worth it.

Monsoon season

  • July through September brings lightning, high winds and heavy rain. Ground the mast and use a coax lightning arrestor on exposed sites.
  • Secure masts and panels for strong gusts, and seal cable entries against driving rain.

Winter at elevation

  • Prescott, Williams and Flagstaff-area sites see freezing nights and snow. Most lithium batteries must not charge below freezing, so pick a battery or charger with low-temperature charge protection.
  • Insulate the battery, oversize it, and angle panels steeply enough to shed snow.
  • If wall power is available, use it.

Coverage strategy

The network grows best along the corridors people actually travel: SR-69, SR-89, I-17 and I-40. Space repeaters by what each pair of sites can reach, and fill shadows behind ridges. Ask on Discord where coverage is thin before choosing a site.

Local uses

Repeaters support backcountry hiking and hunting coordination, emergency communications during wildfire season and monsoon storms, and messaging where cell service is weak or overloaded.

Getting Listed on the Hub

Once your repeater is on the air with its name and GPS position set, post on Discord with the repeater name and site. After it is heard on the network, it will be added to the repeater list with its coordinates and elevation.

Troubleshooting

Repeater not appearing on the map

The app’s Map tab only shows repeaters your companion has heard. The location in the advert is 0,0 until you run set lat and set lon. Set both, then send advert.

Poor range despite a good location

Check the antenna connection; a loose or damaged SMA connector can cut range badly. Confirm a 915 MHz antenna with a clear view, not blocked by metal roofing or siding. If it transmits but hears little, check that radio.rxgain is on and look at the noise floor with stats-radio over USB.

Messages not relaying

Confirm the board has repeater firmware (not Companion) and that get repeat says on. Confirm get radio shows 910.525,62.5,7,7 and get path.hash.mode shows 1. Repeaters older than 1.14 drop 2-byte path packets, so update old firmware.

Battery draining too fast

Lower the transmit power, turn on powersaving if supported, and confirm the panel is sized correctly and in full sun. Watch the battery voltage in the app’s Status screen. Faster drain in winter and in extreme heat is normal.

Repeater keeps rebooting

Usually a power problem. Check the USB cable, supply voltage and battery connections. A failing battery or undersized panel can cause brownouts when transmitting. Reflash the firmware if it continues.

FAQ

Do I need a license or permission?

No FCC license is needed; MeshCore uses the license-free 915 MHz ISM band. You do need the property owner’s permission to mount on someone else’s building, tower or land. Get written permission for shared or commercial structures.

Can one device be a repeater and a room server?

No. Each flash picks one role, and room server firmware doesn’t relay. Some sites run both on separate devices.

Can I manage my repeater remotely?

Yes, over the mesh. Log in to the repeater as admin from the MeshCore app on your companion, wherever the mesh can reach it, and use Status, Command Line and Settings. A repeater plugged into a Raspberry Pi by USB can also be managed with a serial terminal such as picocom.

How long will a solar repeater last?

With a properly sized system it runs unattended. The battery is usually the weak link and wears out with charge cycles and heat. Check the site after severe weather and watch its battery voltage in the app.

Adapted for the Northern Arizona MeshCore network from NoDak Mesh’s MeshCore Repeater Setup guide, checked against MeshCore 1.18.0, and the MeshCore CLI command reference.