Getting Your First Message Through: MeshCore
MeshCore is a newer peer-to-peer LoRa mesh platform that differs from Meshtastic in some important ways. This guide walks you through buying hardware, flashing firmware, and sending your first message - including a plain-language explanation of what makes MeshCore distinct from a beginner's perspective.
Step 1: Buy Compatible Hardware
MeshCore runs on many of the same LoRa development boards as Meshtastic, including:
- Heltec LoRa 32 v3 - compact, inexpensive ($20 - 25), has a built-in OLED display.
- LILYGO T-Echo - a sleek device with an e-ink display and GPS, popular for MeshCore "client" nodes.
- LILYGO T-Deck - has a built-in keyboard, making it usable without a phone for messaging.
- RAK WisBlock - modular system popular for building infrastructure repeater nodes.
- Most boards using the nRF52840 or ESP32 + SX1262 chip combination.
As with all North American mesh hardware, make sure your board is rated for 915 MHz. Check the product description for "915MHz", "US915", or "ISM 915".
Step 2: Flash MeshCore Firmware
MeshCore provides its own web-based flashing tool:
- Open Google Chrome or Microsoft Edge.
- Go to flasher.meshcore.io.
- Connect your board to your computer via USB.
- Click Connect and select the serial port for your device.
- Select your board model from the device list.
- Select the firmware variant you want. For most beginners, choose the Companion
Radio(client) variant - this is the mode you use when connecting a phone app to the node overBluetooth)Bluetooth - or Repeater if you are building a fixed relay node. (Note: the exact label for the companion/client variant can vary slightly between the flasher and app versions.) - Click Flash and wait for the process to complete (
30usually-a90minuteseconds)or two).
If the serial port does not appear, the same driver fix applies as for Meshtastic: install the CP2102 or CH340 driver depending on your board's USB chip.
Step 3: Install the MeshCore App
- Android: Search for MeshCore on the Google Play Store, or sideload the APK from files.liamcottle.net/MeshCore (the official
GitHubdownloadreleaseslocationpage.linked from the MeshCore FAQ). - iPhone / iPad: Search for MeshCore on the App Store.
- Web client: Available at
client.app.meshcore.co.uknz.
Step 4: Configure the USA/Canada Preset
MeshCore uses channel presets to configure frequency, spreading factor, and bandwidth. For North America, you want to set the USA/Canadaregion/frequency preset:to North America (915 MHz):
- Open the MeshCore app and connect to your node via Bluetooth (the pairing process is similar to Meshtastic - the node's name will appear in the Bluetooth scan list).
- Go to the node settings (gear icon).
- Find the Channel or Radio Config section.
- Select the
USNorth America / US-Canada (915 MHz) preset. The exact wording varies by app version. This configures the node for 915 MHz operation with appropriate spreading factor and bandwidth settings for community mesh use. - Save the settings. The node will apply the configuration and restart the radio.
Step 5: Pair and Send Your First Message
- In the MeshCore app, go to the Contacts or Chat tab.
YourNearby nodes appear in Contacts after they send an advert - so your own node will not appear as acontact.contact,Tapandityou need at least one other node in range toopenpopulate the list.
Because MeshCore uses a more structured routing approach than Meshtastic, it distinguishes clearly between direct messages (private, sent to a specific node), channel messages (broadcast to everyone on the same channel), and room server messages (routed through a dedicated hub node). For your first test, a direct message to yourself or a broadcast channel message bothis workthe fine.easiest way to confirm your node is transmitting; to test a direct message you will need a second node or a nearby community node in range.
How MeshCore Feels Different from Meshtastic (Beginner's Perspective)
If you have used Meshtastic before, you will notice a few differences:
- Explicit node roles. In Meshtastic, every node implicitly relays for every other node. In MeshCore, you explicitly configure a node as a client (your personal node, does minimal relaying), a repeater (infrastructure node that forwards traffic), or a room server (a hub for group chat). This makes the network's behavior more predictable and reduces unnecessary transmissions, but requires a bit more intentional planning.
- Different discovery model. Meshtastic nodes automatically announce themselves and appear in a node list. MeshCore's discovery works slightly differently - you may need to add contacts manually or enable node broadcasting to see nearby nodes.
- Stronger encryption by default. MeshCore uses elliptic-curve Diffie-Hellman key exchange for direct messages, giving each conversation unique encryption keys.
ThisNote that Meshtastic also uses public-key cryptography for direct messages (since firmware 2.5.0); both systems use shared keys for channel (group) messages, so the comparison ismorereallymathematicallyaboutrobustimplementation details rather thanMeshtastic'soneshared-keybeingchannelbroadlymodel."more robust" than the other. - Less plug-and-play for newcomers. Meshtastic has more polished beginner documentation and a larger US-based community, so it is often easier to get your first message through quickly. MeshCore rewards the extra learning investment with a more controlled network architecture.
What to Check If Nothing Works
- The flasher does not detect the device
- Try a different USB cable (many cables are charge-only and lack data wires). Try a different USB port. Install the USB-to-serial driver for your board's chip.
- The app cannot pair with the node via Bluetooth
- Make sure the node is fully booted (wait
10a- 15few seconds afterflashing)flashing for it to finish booting). Grant the app Bluetooth and Location permissions on Android. If pairing fails, put the node in pairing mode if required (consult the MeshCore documentation for your board). - Messages are queued but not transmitted
CheckIfthatyour radio settings (frequency / spreading factor / bandwidth) don't match your region's preset, you won't be able to hear or reach anyone - verify theUSA/CanadaNorth America (or915appropriate regional)MHz) preset isconfigured. Without a valid channel config, the radio will not transmit.applied.- You cannot find other MeshCore users nearby
- MeshCore has fewer deployed nodes than Meshtastic in many areas. Check the MeshCore Discord (linked in the app's help section) for your region's activity level, or invite a friend to flash a second node for testing.