# MeshCore Repeater Setup

This guide walks through the full repeater workflow: choose or build a MeshCore-compatible repeater node, flash and configure it over USB, then finish programming it from your phone using a separate companion node.

A repeater is the fixed radio that stays installed to relay traffic for the mesh. A companion is a second node you use to reach and manage that repeater from the MeshCore mobile app. The flow here is: build if needed, flash and configure over USB, test companion-based setup, then deploy the node.

Open MeshCore Flasher Repeater Parts List

## Table of Contents

## Before You Start

### How This Guide Is Organized

Start with the build section if you are assembling a repeater from parts. If you already have a finished repeater or an off-the-shelf device, begin at the flash section instead.

### What You Will Need Overall

- A MeshCore-compatible repeater device. Common choices include a Heltec LoRa 32 V4, RAK4631-based build, or another off-the-shelf or already-built MeshCore-capable node.
- A second companion node for programming and day-to-day access to the repeater. Common companion nodes include a LILYGO T-Echo, Heltec LoRa 32 V4, or RAK4631 portable build.
- Your phone with the MeshCore mobile app installed: Android / iPhone
- A laptop or desktop computer for the flashing and USB configuration steps
- A USB programming cable for your node, with USB-C being a common connector on many devices
- A drill with a step bit, a bit sized for the solar wire, wire strippers, and outdoor waterproof sealant

Note: Look for the MeshCore app by Liam Cottle to make sure you have the correct app. The phone apps do not require internet to use once installed. You just need the app on the phone and a working companion node to reach the repeater.

## Build the Repeater Node

If you already have a repeater build or a ready-made device, skip this section and go straight to Flash the Repeater Node.

### What You Will Need

- A MeshCore-compatible repeater device or a parts build based on the linked repeater parts list
- A drill with a step bit, a bit sized for the solar wire, wire strippers, zip ties, and outdoor waterproof sealant
- Your enclosure, antenna, battery, solar panel, JST pigtail, and mounting hardware

### Prepare the Enclosure

1. Drill the top of the enclosure for the N-type bulkhead connector. Test-fit as you go so the hole stays snug.
2. Drill the bottom for the solar panel cable input. This opening can also act as a pressure vent.

### Mount the Solar Hardware

3. Mount the solar panel where it gets reliable sun. If you are mounting it to the case, leave enough wire slack for the door to open without pulling on the cable.
4. Splice the panel lead to the included JST pigtail from the Heltec box.

### Install the Radio Hardware

5. Install the N-type bulkhead, attach the antenna to the bulkhead, and connect the radio to the IPEX lead.
6. If you are using a screenless V4, attach the included Bluetooth/Wi-Fi antenna.

### Finish the Physical Assembly

7. After programming is complete, connect the battery and solar lead, then secure the board and battery with zip ties.
8. Seal the bulkhead opening and any other penetrations with outdoor waterproof sealant before deployment.

## Flash the Repeater Node

This is the point where everyone should start if the repeater hardware already exists.

### What You Will Need

- A laptop or desktop computer
- A USB data cable for the repeater device
- A Chromium-based browser with WebSerial support such as Google Chrome, if using the web flasher
- Or a local Python environment with `esptool.py`, if flashing manually

An optional power-saving mode is covered in the addendum at the bottom of this guide.

### Option 1: MeshCore Web Flasher

1. Connect the radio to your computer and open flasher.meshcore.io.
2. Use a Chromium-based browser such as Chrome so the site can access the radio over USB.
3. Load the correct firmware for your hardware and complete the flash.

### Option 2: Flash ESP32 Devices with `esptool.py`

1. Download the correct firmware file for your repeater hardware from the MeshCore GitHub releases page.
2. Install `esptool.py` if needed.
3. Put the repeater device into bootloader mode if your hardware requires it.
4. Identify the serial port for the device, then flash the firmware with a command like:

Example: `esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x0 firmware.bin`

5. Adjust the serial port, chip target, and firmware filename to match your hardware.

### Option 3: Flash RAK Devices with `.uf2`

1. Download the correct `.uf2` firmware file for your RAK device from the MeshCore GitHub releases page.
2. Put the device into the appropriate USB programming mode. Depending on the model, this may mean holding reset while plugging in USB, or holding the boot button while connecting the USB cable.
3. If a USB flash drive appears, copy the `.uf2` firmware file onto that drive and allow the device to reboot when the copy finishes.
4. On some devices you may need to temporarily disconnect the battery during programming.
5. Check the instructions for your exact device and make sure you selected the correct firmware image for that model.

### Configure the Node Over USB

Post-flash note: After flashing by any supported method, the node screen may show Please Wait... for up to about a minute during initial setup. If it stays there for more than 5 minutes, retry the flash.

After flashing by any supported method, finish the initial repeater configuration over USB before trying to complete setup through the companion.

1. Go to meshcore.io and click Repeater Setup using the gear icon next to it. This opens the Repeater / Room server USB setup page at `config.meshcore.io`.
2. In the upper-right corner of that page, click Connect.
3. When the browser asks which serial device to use, select your repeater. This is often the top device in the list.
4. Set the repeater name.
5. Set Owner info only if you want public contact details attached to the repeater. This can include a name, phone number, email address, and/or website. This field is publicly shared and has a 119 byte limit.
6. Set the repeater location by clicking the map button, or by copying and pasting latitude and longitude from your web browser for the intended repeater site.
7. Under Access, set a new admin password. This is recommended because it lets you further configure the repeater later from the mobile app for more advanced settings.
8. Leave Guest password empty unless you have a specific reason to enable it.
9. Under Radio settings, set the preset to USA/Canada (Recommended).
10. That preset defaults to: Frequency 910.525, Bandwidth 62.5, Spreading Factor (SF) 7, and Coding Rate (CR) 5.
11. If you want additional error correction, you can increase CR as high as 8. This increases radio airtime substantially, nearly doubling it, and can reduce battery life.
12. Your device instructions will often specify the correct TX Power setting. Never set TX power above 30 dBm, which is the FCC limit in the United States.
13. Under Advertising, adjust the values as needed. The UI shows fields for Advert interval (minutes), Flood advert interval (hours), and Flood max.
14. Click Save settings at the bottom, then reboot the device.

Notes:

- You can leave location blank for privacy reasons.
- If you change the frequency, bandwidth, or spreading factor, the repeater will no longer communicate with nodes on the public mesh, which is usually not what you want.
- For the public mesh, set Flood advert interval (hours) to 47. The UI may default lower, such as 12, so change it before saving.

## Programming with a Companion

### What You Will Need

- The flashed repeater node
- A separate companion node that can hear and manage the repeater
- Your phone with the MeshCore Android or iPhone app installed

### Program the Repeater

1. Power on both devices: the repeater and your separate companion node. Make sure the repeater is within range.
2. Open the MeshCore app on your phone. In the upper right, tap the Bluetooth icon where it shows Connect.
3. Choose your companion node from the devices shown and provide the Bluetooth code if needed.
4. Once connected in the app, open the three-dot menu, tap Tools, then tap Discover Nearby Nodes, and then Discover repeaters.
5. The repeater should be discovered quickly if it is powered on and in range. Add it as a contact. You can also favorite it if you want.
6. Open the repeater contact, tap Manage, and enter the admin password.
7. This opens the repeater admin status page. Tap Request status if you want to refresh and view the repeater status.
8. At the bottom of that screen, open Command Line and run `set path.hash.mode 1` to set 2 byte mode. View screenshot View result
9. Tap the Settings icon in the bottom right next to Command Line to change other node settings such as advert intervals, owner info, position, syncing the device clock, and other access control or telemetry settings.
10. Set Flood advert interval (hours) to 47 for best public mesh performance if you have not already set it during USB configuration.

Notes:

- If the app has trouble reconnecting to the companion over Bluetooth, you may need to go into your phone's Bluetooth settings and forget the device before trying again.
- Syncing the clock on the device is recommended.
- 1 byte mode is not recommended because it can cause hash collisions.
- You can use `set path.hash.mode 2` for 3 byte mode, but that reduces the hop limit from 32 hops in 2 byte mode to 21 hops in 3 byte mode.

### Common Repeater Commands

These are the commands CT Mesh operators most commonly use while setting up or checking a repeater from the MeshCore command line. The full upstream reference is available in the MeshCore CLI commands documentation.

- `set path.hash.mode 1` - set 2 byte path hash mode for public mesh use.
- `get path.hash.mode` - confirm the current path hash mode.
- `set flood.advert.interval 47` - set the flood advert interval to 47 hours.
- `get flood.advert.interval` - confirm the current flood advert interval.
- `neighbors` - list recently heard nearby repeaters.
- `discover.neighbors` - actively discover zero-hop neighbors from a repeater.
- `clock sync` - sync the repeater clock with the remote device.
- `advert` - send a flood advert after setup or after moving the node.
- `powersaving on` / `powersaving off` - enable or disable repeater power saving.
- `reboot` - reboot the node after configuration changes that require it.

## Deploy the Node

### Choose a Good Site

- Choose a stable location with useful height, clear exposure, and enough sun to keep the battery healthy.
- If your radio site and panel site differ, remote panel placement is fine if it improves sun exposure.
- Use MeshMapper to look for coverage gaps, likely line-of-sight paths, and candidate sites that would help the existing mesh.
- Use MeshCore's neighbor discovery tools, including Discover Nearby Nodes in the app and the `neighbors` / `discover.neighbors` commands, to compare candidate locations before final mounting.
- Before sealing the install, test the repeater at the planned location and confirm it can hear useful neighbors and can be heard by the main mesh.
- If MQTT/Discord test monitoring is available, send a test message on a channel such as `#test` from the new repeater area. A Discord bot mirrors received mesh messages into the Discord #test channel, which helps confirm whether the wider mesh can hear the repeater or companion nodes behind it.

### Tree Mounting

For tree installs, a common approach is to use a slingshot to place a lightweight mason line over a suitable branch, then use that line to pull up a stronger rope for hoisting and securing the node. Choose a healthy branch, avoid power lines, and make sure the enclosure and antenna can hang clear without rubbing through on bark or hardware.

### Structure or Pole Mounting

Nodes can also be attached to the side of a structure, a mast, a fence post, or a utility-style pole using appropriate brackets, hose clamps, or other weather-resistant mounting hardware. Keep the enclosure secure, keep cable runs tidy, and position the antenna with as much clear exposure as practical.

### Other Mounting Options

Other logical mounting options include sheds, garages, balcony rails, old TV antenna mounts, rooftop masts, and similar elevated locations with stable support and useful line-of-sight.

Spacing Note: If you have more than one LoRa device at a site, keep the LoRa antennas at least 3 feet apart for optimal performance.

## Need More Context?

If you want help validating a parts list, firmware choice, or deployment location, ask in Discord before you seal everything up and mount it.

More MeshCore Guides Join CT Mesh Discord

## Power Saving Addendum

If you are running a solar-powered repeater or otherwise want to reduce current draw, power saving is available as an optional post-setup change.

After logging into the repeater, open the command line and run `powersaving on`.

This can be useful for deployments where power budget matters, especially small solar installations.

If you want a lower-power firmware variant, you can also use the flasher's custom firmware option with releases from EasySkyMesh.

Back to CT Mesh