US settings at a glance
| Preset in the app | USA/Canada (Recommended) |
|---|---|
| Frequency | 910.525 MHz |
| Bandwidth | 62.5 kHz |
| Spreading factor | SF7 |
| Coding rate | CR5, shown as 4/5 in some apps |
| Band | 902 to 928 MHz (unlicensed, FCC Part 15) |
| Licence needed | No, but the radio's FCC authorization sets what's legal |
These are the values in the MeshCore FAQ. All four have to match your local mesh, and a few regional meshes use different settings, so check with your local group. After flashing, check the frequency, as a fresh install may start on another region's default.
What the FCC rules mean
MeshCore in the US runs unlicensed under FCC Part 15, in the 902 to 928 MHz band. Part 15 has more than one set of rules for this band, and which one applies decides how much power is legal. Narrow-band MeshCore doesn't fit the one most people assume.
| Rule | Power allowed | Does narrow MeshCore fit? |
|---|---|---|
| §15.247 digital modulation | 1 W conducted, with up to 6 dBi antenna gain | No: needs a 6 dB bandwidth of at least 500 kHz, and MeshCore uses 62.5 kHz |
| §15.247 frequency hopping | 1 W with at least 50 hopping channels | No: MeshCore stays on one frequency |
| §15.249 | 50 mV/m at 3 m, about 0.75 mW EIRP | Yes, but the limit is very low |
So the "1 watt in the 915 MHz band" you'll often read about applies to wideband or hopping systems, not to a fixed 62.5 kHz signal. A radio's FCC ID covers the modes and power it was tested in, which may not include MeshCore's narrow mode at full power. Ask the manufacturer what its FCC grant covers for the firmware, mode, antenna and power you plan to use. Some publish it: NoDak Mesh, for example, lists one 1 W booster as FCC-certified to 290 mW.
Whatever the power, Part 15 devices mustn't cause harmful interference and have to accept any they receive (§15.5). There's no US duty cycle limit for this mode, but everyone shares the channel, so keep adverts and test traffic light. The firmware's default airtime budget is 50% of each hour, and set dutycycle 10 on a repeater cuts it to 10% (set af 9 before firmware 1.15).
Licensed hams: 902 to 928 MHz is also the 33 cm amateur band, where Part 97 allows more power. But Part 97 bans messages encoded to hide their meaning (§97.113), and MeshCore encrypts channel and direct messages, so ordinary MeshCore use belongs under Part 15.
Working out your EIRP
EIRP is the radio's output in dBm, minus cable and connector loss, plus the antenna gain in dBi. The checker at the top of the page also converts it to field strength at 3 m, the figure §15.249 uses. Treat that as a guide: whether a device complies comes from its FCC test report, not from this sum.
What you need
- A MeshCore-supported LoRa radio for the 915 MHz band. Look up your board, including its version number, in the MeshCore web flasher. 868 MHz and 433 MHz versions of the same board won't work in the US.
- An antenna made for 915 MHz, of a type and gain the radio's FCC grant allows. Never power a radio up without its antenna.
- A phone with the MeshCore app by Liam Cottle (links on meshcore.io), or a browser for the web app.
- A USB data cable and a computer with Chrome or Edge, if you need to flash the firmware yourself.
Look at the MeshCore map and look for a local group before you buy. Two radios always work between themselves, so a pair is a good start if your area is quiet.
Getting on air
- Flash the companion firmware. In the flasher, pick your exact board, a stable release and Companion Radio (BLE). Use a data cable, not a charge-only one. Some boards need a button held while plugging in.
- Pair the app. Turn on Bluetooth, allow the app's nearby-device permission, and pick your radio. Radios with a screen show a PIN; screenless ones use 123456 by default.
- Choose the preset. Select USA/Canada (Recommended), then check 910.525 MHz, 62.5 kHz, SF7 and CR5 have stuck. Set the transmit power to what your device's authorization covers.
- Name your node. Short and recognizable, but not your address. Decide whether to include your position in adverts.
- Set your local scope and path hash size. Ask your local mesh. Larger meshes, such as in the Pacific Northwest, have moved to bigger path hashes.
- Send an advert, then a short message on the Public channel or your local channel, and wait for a reply. Try outdoors first.
How messages get through
Your phone only talks to your own radio, over Bluetooth. The radio does the long-distance part on 910.525 MHz, and repeaters pass messages on. Your own radio, called a companion, never repeats anyone else's traffic.
The first message to someone floods: every repeater that hears it sends it on once. Their radio sends the route back with its acknowledgement, and later direct messages travel only along that path. If a repeater on the route goes off air or someone moves, the stored path stops working; resetting the path in the app makes the next message flood again.
- Heard repeats on a channel message counts repeaters your radio heard passing it on. It shows the message got out, not that anyone read it.
- Delivered on a direct message means the other radio acknowledged it. A missing acknowledgement doesn't always mean the message was lost.
- Each repeater adds its path hash (1, 2 or 3 bytes). 1 byte is the firmware default; bigger meshes use 2 or 3 bytes to stop two repeaters sharing an ID, which needs firmware 1.14 or later.
Channels, direct messages and rooms
| Type | Who can read it | Good for |
|---|---|---|
| Public channel | Anyone with a MeshCore radio | Saying hello and first tests |
| Hashtag channel | Anyone who knows the name, because the key is made from it | Local and topic chat |
| Private channel | Anyone you give its random key or QR code to | A family or club group |
| Direct message | Only the contact it's sent to | One-to-one messages |
| Room server | Members of that room | Messages kept for people to read later |
They all share the one radio channel. Messages are encrypted, but your node name, any position you advertise, and when you transmit are visible. Channel messages hold up to 160 bytes including your name, and aren't stored for people who are offline unless you use a room server. For direct messages, both radios need each other as a contact, swapped by advert, QR code or public key. Keep your private key and backups to yourself.
Scopes
A scope is a region name added to flood messages so repeaters know how far to carry them. US meshes each choose their own names, and some block messages with no scope. Since firmware 1.15 you can set a default scope for your companion (in the app's Experimental settings, app 1.43 or later). Ask your local mesh for the exact name, or use the app's Discover Regions tool to see what nearby repeaters report.
Antennas, height and range
Height and a clear view make more difference than anything else. Hold or mount the antenna vertically, clear of your body and any metal. At 915 MHz, thin coax loses a lot, around 2.5 dB in 5 m (16 ft) of RG58, so keep cable short or use low-loss coax. Stick to antennas your device's FCC grant lists, and recheck your EIRP if you change it.
Putting up a repeater
- Talk to your local mesh first. A repeater in the wrong place adds traffic without adding coverage.
- Flash the Repeater firmware for your board, set the US preset, and change the admin password before it goes up.
- Use a power setting and antenna your device's authorization covers. Set the scopes and path hash size the local mesh uses, and consider
set dutycycle 10to keep a busy site's airtime down. - For solar, size the panel and battery for your worst winter month, and allow for snow, heat and shade.
When it doesn't work
| Problem | Things to check |
|---|---|
| App can't find the radio | Bluetooth and nearby-device permissions, that it's the BLE companion firmware, and that no other phone is connected. Restart both before resetting anything. |
| Computer won't see the radio to flash it | A different USB cable, another port, the bootloader button, and that nothing else has the serial port open. |
| Nothing heard at all | The four radio settings, especially the frequency after flashing, the antenna, and your position. Check the map for nearby repeaters. |
| You hear others but get no replies | Your scope, power setting and antenna. A distant repeater you can hear may not hear you. |
| Channel messages go nowhere | The exact hashtag spelling or the private key, and the local scope. |
| Direct messages don't deliver | That you've both saved each other as contacts. Then reset the path so the next one floods. |
MeshCore isn't an emergency service and nobody is guaranteed to be listening. In an emergency, call 911.
Sources
- 47 CFR §15.247, §15.249, §15.5 and §97.113.
- MeshCore official site, FAQ, default scope notes and firmware source.
- NoDak Mesh device guide.
Checked November 2026. This is general information, not legal advice. For the UK, see the MeshCore UK guide.
Questions
What frequency does MeshCore use in the USA?
910.525 MHz, with the USA/Canada (Recommended) preset: 62.5 kHz bandwidth, spreading factor 7 and coding rate 5.
Do I need a licence for MeshCore in the USA?
No. It runs unlicensed under FCC Part 15 in the 902 to 928 MHz band, within whatever the radio's FCC authorization covers.
Can I run MeshCore at 1 watt in the USA?
Not just because the band allows 1 W. That limit in §15.247 is for systems at least 500 kHz wide or that hop across 50 channels. Narrow 62.5 kHz MeshCore meets neither, so check what your device's FCC grant covers.
Can hams use MeshCore under Part 97 for more power?
Not for normal use. Part 97 bans messages encoded to hide their meaning, and MeshCore encrypts channel and direct messages.
Will an 868 MHz radio work on US MeshCore?
No. US meshes use 910.525 MHz, so you need a radio built for the 915 MHz band.