Step-by-step documentation to provision your radio hardware, hook into local RF relays, or bridge gaps using the private NCMesh MQTT backbone.
You will find that one of the parameters is listed under Settings > User for Amateur Radio. Even if you are a licensed Amateur Radio operator, the suggested setting is OFF. These devices are operated in the 902-928 MHz band with maximum of 1 watt PEP at the antenna when omni directional and when operating directional, 1 watt maximum over all elements of the antenna not to exceed 1 watt ERP at 6 dBi gain, [FCC Part 15 15.247(b) 3,4 and (c)] which has a shared usage with not only Amateur Radio but other unlicensed as well as licensed services on a shared basis. In this shared band, these mesh devices are being operated as unlicensed, low-power devices under FCC Rules Part 15 in the ISM Band or "Industrial, Scientific and Medical Band", and as such, encryption is allowed when operated as a Part 15 unlicensed device. FCC Rules Part 97, which govern Amateur Radio, does not allow encryption, and as a station licensed by the FCC, stations identifying as Amateur Radio stations are not allowed to communicate with unlicensed stations operating in the shared ISM Band. If you are a licensed Amateur Radio operator, pick your ID carefully so that you are not confused for an Amateur Radio station communicating with unlicensed, Part 15 stations.
Before configuring application software, your radio hardware must be flashed with the correct Meshtastic device binary. Wiping alternative or stock factory software ensures a clean install.
To establish a clean local serial link over a wired connection, verify your machine has the proper UART hardware bridge controllers installed:
Connect your radio board to your computer via USB data cable, open a browser natively supporting Web Serial (Chrome, Edge, or Brave), and navigate to: flasher.meshtastic.org.
If the web installer utility reports failing connections or cannot locate your target serial link port, manually force your board layout into flashing mode:
CCMesh uses the default LongFast channel and settings, so that if you were to buy a radio and do nothing but configure the country, you could connect to the mesh and start talking (near zero configuration required).
The catch is that you need node(s) within RF range of you that you can connect to the mesh through. If you follow this Quick Setup Guide and you don't see a lot of other nodes around you within a few hours, please use the detailed setup guide instead (it will help you get connected through MQTT).
Review standard pricing tiers and device configurations to pick the right radio hardware layout for your deployment footprint:
Once your hardware target is secured, initialize your smartphone interface link over Bluetooth channels:
Step 1: Get a Meshtastic Radio (Review options under Quick Setup Guide above).
Step 2: Download the Meshtastic App on your iOS device. Open the app and click Bluetooth at the bottom of the app. Find your radio in the list and click on it. Enter the PIN shown onscreen, or 123456 if your node doesn't have a screen.
Step 3: If you see UNSET (region), click on it and select "United States" (the device will reboot).
Click on Primary Channel. Do not modify channel details. Ensure settings match:
Click Add Channel:
Open the app -> Click Messages -> Click Channels -> Click Primary Channel or NCMesh -> Type a message and say hello to the network!
Step 1: Get a Meshtastic Radio (Review options under Quick Setup Guide above).
Step 2: Download the Meshtastic App on your Android device. Pair your radio to your phone with Bluetooth, then launch the Meshtastic application.
Step 3: Tap the + sign at the lower right corner, then click allow. Find your radio in the list and click on it. Enter the PIN shown onscreen, or 123456 if your node doesn't have a screen. Click allow when prompted for notifications.
Step 4: If you see UNSET (region), click on it and select "United States" (the device will reboot). Click the three dots at the upper right corner and click on Radio configuration.
Click send, click close, and click the back arrow at the top.
Click on LongFast. Do not modify channel details. Verify settings:
Click + to add a secondary channel:
Click Save. Validate that you see both channels: LongFast and NCMesh. Click send, click close, then click the back arrow at the top.
Scroll down, click send, click close, and click the back arrow at the top.
Scroll down and click send, close, and then click the back arrow at the top.
Click send, click close, and then click the back arrow at the top.
Click send, click close, and then click the back arrow at the top twice to return to the main screen.
Open the app -> Click the message bubble at the top left -> Click on LongFast or NCMesh -> Type a message and greet the network!
This is a community driven project. Following these coordination guidelines will ensure the best possible airtime utilization and packet delivery experience for everyone as we continue to grow.
It may be tempting to set your device to ‘client/router’ or one of the other infrastructure modes, however from our extensive testing we’ve seen the best results for the end user, and the network as a whole using the ‘client mute’ or 'client' roles. Meshtastic does not currently have any intelligent routing built into the firmware. Nodes are set to rebroadcast any message they receive that they have not heard rebroadcast from another node at a random time interval. The ‘client/router’ and other infrastructure roles take that random interval and subtracts another random interval ensuring that they rebroadcast first.
While this may sound good on paper, due to constantly changing environmental variables you may be inadvertently creating dead ends in the network, bypassing intended recipients, and closing off redundant routing paths. We highly recommend starting with ‘client mute’ for mobile users and nodes that aren't well placed (where someone else may be able to relay through it). For well placed nodes (2nd story window, attic, roof, etc) 'client' is recommended. For extremely well placed nodes with higher power or nodes on mountains or towers, 'router' is fine to use.
'client mute' is great for device connected nodes (the ones you're sending messages from) that are not contributing to the network (not outdoor nodes) as it reduces overall network airtime (network load). An example of this would be a device connected node in your home that is connected to MQTT or goes through a relay node on your roof.
We recommend starting with a hop count of 4, and always using the minimum number of hops needed to reach your destination. If you are running a device connected node in your home and a relay node that your client always goes through, a hop count of 5 is advised. If you are on the edge of the network and are not achieving results with the above, 6 hops may be useful however we recommend ensuring that you've done all you can with regard to optimizing your node hardware and placement first, if these are not taken care of additional hops will not yield greater distance and will degrade the performance of the wider network.
In order to reduce overall channel utilization and ensure messages are delivered we recommend the following settings for everyday use unless you have a specific use case or are running a test that requires more frequent updates.
Opinions on using MQTT with Meshtastic are widely varied. Some Meshtastic users and groups have chosen not to use MQTT with Meshtastic in the spirit of building out a stronger RF based mesh network. Building out RF coverage is a noble goal that we all share, but we feel that MQTT has a lot of utility (especially in the early days of mesh building).
We use MQTT to bridge RF gaps in order to connect pockets of users throughout the state into a single mesh. We also leverage MQTT for hop count reduction. 7+ hops from Raleigh to Asheville can be reduced to two hops through MQTT (node -> raleigh router -> asheville router -> node).
MQTT is also great for mobile/pocket nodes. You can stay connected to the mesh no matter where you are (or what local RF coverage looks like).
Our MQTT server is private, so your nodelist will only reflect other NCMesh nodes/users (not the entire US/planet), and the probability of unwanted messages/spam coming across MQTT is greatly reduced.