Meshtastic Configuration Portal

Step-by-step documentation to provision your radio hardware, hook into local RF relays, or bridge gaps using the private NCMesh MQTT backbone.

IMPORTANT CAVEAT FOR AMATEUR RADIO OPERATORS

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.

Firmware Flashing Guide (flasher.meshtastic.org)

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.

1. USB Driver Prerequisites

To establish a clean local serial link over a wired connection, verify your machine has the proper UART hardware bridge controllers installed:

  • Silicon Labs Core Bridge: CP210X USB-to-UART Drivers
  • WCH Manufacturing Bridge: CH340 / CH341 Drivers
WARNING: Use a high-quality USB data cable! Cheap charging cables lack data lines and will cause connection timeouts.

2. Web Serial Flasher Procedure

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.

  1. Detect Hardware: Select your specific device model from the target device dropdown list (e.g., Heltec V3, LilyGO T-Beam, Seeed Xiao).
  2. Firmware Selection: Choose the latest Stable firmware version release available for your specific chip architecture.
  3. Wipe Installation: Turn on the Wipe and Install (Erase Flash) option checkbox. This clears old corruption data blocks from internal memory.
  4. Execute Flash: Click the flash button tool, choose your device’s COM port from the browser window popup, and wait for the installer to report completion.

3. Troubleshooting DFU & Bootloader Issues

If the web installer utility reports failing connections or cannot locate your target serial link port, manually force your board layout into flashing mode:

  • ESP32 Targets (Heltec V3): Hold Boot -> Press Reset -> Release Boot
  • nRF52 Targets (T-Echo): Double-click the Reset button rapidly
WARNING: Do not disconnect or unplug the hardware node until the webpage completes the final system reboot phase!

Connect to the Network (Quick Setup Guide)

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).

1. Get a Meshtastic Radio

Review standard pricing tiers and device configurations to pick the right radio hardware layout for your deployment footprint:

  • DIY Bare Board Option: ~$35 (Build it yourself)
  • LILYGO T-Echo Profile: ~$70 (Ready out of the box)
  • Pocket Compact Node: T1000-E (Great for EDC)
  • Pre-Built Battery Node: $50 – $100 (Etsy/eBay with 3D printed cases)
  • Pre-Built Solar Node: $100 – $200 (Recommended for high outdoor mounts)

2. Download App & Connect

Once your hardware target is secured, initialize your smartphone interface link over Bluetooth channels:

  1. Software Download: Install the official Meshtastic application engine on your iPhone or Android phone device.
  2. Bluetooth Sync: Power up your node device, turn on your mobile phone's Bluetooth parameters, and pair them together inside the software screen.
  3. Say Hi: Open up the active app workspace and send out a message to see who is within range!

Detailed Setup Guide for Apple/iOS

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).

Settings -> LoRa

  • Region: United States
  • Use Preset: on
  • Presets: LongFast
  • Ignore MQTT: off
  • OK to MQTT: on
WARNING: If 'Ignore MQTT' is on or 'OK to MQTT' is off, then you may only see half of conversations!
  • Transmit Enabled: on
  • Number of hops: 5-7
  • Frequency Slot: 0
  • RX Boosted Gain: On
  • Frequency override: 0
  • Transmit power: 30dBm
WARNING: Transmit dBm varies from device to device. Please check your hardware manufacturer's specifications for more details!

Settings -> Channels

Click on Primary Channel. Do not modify channel details. Ensure settings match:

  • Positions Enabled: on
  • Approximate Location: 0.9mi
  • MQTT Uplink Enabled: on
  • MQTT Downlink Enabled: on

Click Add Channel:

  • Name: NCMesh
WARNING: Name is case sensitive!
  • Key Size: Default
  • Key: AQ==
  • WARNING: PSK is case sensitive!
  • Channel Role: Secondary
  • Allow Position Requests: Off
  • MQTT Uplink Enabled: on
  • MQTT Downlink Enabled: on

Settings -> User

  • Long name: Name your node (up to 36 characters)
  • Short name: Short name for your node (up to 4 characters or 1 emoji)
  • Licensed Operator (HAM mode): Off

Settings -> Device

  • Mobile / pocket / EDC node: Client or Client Mute
  • Stationary node poorly placed (inside house): Client Mute
  • Stationary node well placed (2nd floor, roof, attic): Client
  • Multiple nodes for camping / poor cell / woods: Client
  • Node placed on an elevated mountain peak or tower: Router
  • Rebroadcast Mode: All
  • Node Info Broadcast Interval: One Hour

Settings -> Position

  • Broadcast Interval: 60 minutes
  • Smart Position: on
  • Minimum Interval: 30 Minutes
  • Minimum Distance: 100
  • Device GPS: Enabled
  • Update Interval: 30 Minutes
  • Position Flags: Enable altitude, satellites, and timestamp only

Settings -> MQTT

  • Enabled: on
  • MQTT Client Proxy: on
  • Encryption Enabled: on
  • JSON Enabled: off
  • Map Report, Enabled: on
  • Map Publish Interval: One Hour
  • Approximate location: 0.9mi
  • Root Topic: msh/US
  • Address: mqtt.ncmesh.net
  • Username: meshdev
  • Password: large4cats
  • TLS Enabled: off

Say Hi!

Open the app -> Click Messages -> Click Channels -> Click Primary Channel or NCMesh -> Type a message and say hello to the network!

Detailed Setup Guide for Android

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.

User

  • Long name: Name your node (up to 36 characters)
  • Short name: Short name for your node (up to 4 characters)
  • Licensed Operator (HAM mode): Off

Click send, click close, and click the back arrow at the top.

Channels

Click on LongFast. Do not modify channel details. Verify settings:

  • Uplink: Enabled
  • Downlink: Enabled
  • Position: Enabled
  • Precise location: Disabled
  • Location Slider: Set to 1.8mi (or larger if desired)

Click + to add a secondary channel:

  • Channel Name (case sensitive): NCMesh
WARNING: Name is case sensitive!
  • PSK (case sensitive): AQ==
WARNING: PSK is case sensitive!
  • Uplink: Enabled
  • Downlink: Enabled
  • Position: Enabled
  • Precise location: Disabled
  • Location Slider: Set to 1.8mi (or larger if desired)

Click Save. Validate that you see both channels: LongFast and NCMesh. Click send, click close, then click the back arrow at the top.

Device

  • If you have a mobile/pocket/edc node: Client or Client Mute
  • If you have a stationary node that is poorly placed (ie: inside a house): Client Mute
  • If you have a stationary node that is well placed (2nd floor window, roof, attic): Client
  • If you have multiple nodes for camping/poor cell service/innawoods/etc: Client
  • NodeInfo broadcast interval: 3600 Seconds

Scroll down, click send, click close, and click the back arrow at the top.

Position

  • Position Broadcast Interval: 3600 Seconds
  • Smart broadcast minimum interval: 1800 Seconds
  • GPS Update Interval: 1800 Seconds

Scroll down and click send, close, and then click the back arrow at the top.

LoRa

  • Change the hop limit to: 5-7
  • OK to MQTT: Enabled
WARNING: If 'Ignore MQTT' is on/enabled or 'OK to MQTT' is off/disabled, then you may only see half of conversations!

Click send, click close, and then click the back arrow at the top.

MQTT

  • MQTT Enabled: Enabled
  • Address: mqtt.ncmesh.net
  • Username (default): meshdev
  • Password (default): large4cats
  • Encryption enabled: Enabled
  • Root topic (case sensitive): msh/US
  • Proxy to client enabled: Enabled
  • Map reporting: Enabled
  • Map Report, Enabled: on
  • Precise location: disabled
  • Approximate location: 1.8mi
  • Map reporting interval: 900 Seconds

Click send, click close, and then click the back arrow at the top twice to return to the main screen.

Say Hi!

Open the app -> Click the message bubble at the top left -> Click on LongFast or NCMesh -> Type a message and greet the network!

Network Best Practices

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.

TL;DR; Quick Reference Baseline

  • Standard Device Role: Client
  • Optimal Hop Count: 4-7 Hops
  • Base Broadcast Intervals: 6 Hours (Info / Position / Telemetry)

Device Role Best Practices

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.

Hop Count Scaling

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.

Broadcast Interval Parameters (Position, Telemetry, Node Info)

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.

  • Device Config (Node Info): 30 Minutes
  • Position Broadcast: 1 Hour
  • Smart Position: Enabled
  • Minimum Interval: 30 Minutes
  • Minimum Distance: 100 Meters
  • GPS Update Interval: 30 Minutes
  • Position Flags: Disable all flags not explicitly required

MQTT Server Infrastructure Integration

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.