User Tools

Site Tools


links:meshcore:home

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
links:meshcore:home [2026/10/23 14:19] – [Public-key Cryptography] va7filinks:meshcore:home [2026/10/25 19:51] (current) – va7fi
Line 1: Line 1:
-<WRAP group> +====== MeshCore ====== 
-<WRAP half column> +  * [[part1 |Part 1]]: Intro and companion setup guide 
-**<fs xx-large>Meshcore</fs>** +  * [[part2 |Part 2]]: More advanced topics and repeater setup guide.
-</WRAP> +
-<WRAP half column> +
-<WRAP rightalign> +
-**[[mpdf>|Download as PDF]]** +
-</WRAP> +
-</WRAP> +
-</WRAP> +
----- +
- +
-====== Introduction ====== +
-From [[wp>MeshCore |Wikipedia]]: +
- +
-<QUOTE> +
-MeshCore is an open-source mesh networking protocol and software platform designed for off-grid, low-power text communication using LoRa (Long Range) radio technology. The system enables decentralized, multi-hop wireless messaging without reliance on cellular networks or internet infrastructure. +
- +
-Use cases include emergency and disaster communications, outdoor and remote activities, [...] and experimental and educational deployments of low-power mesh networking. +
- +
-[It] is designed to [...] operate in unlicensed [[wp> ISM_radio_band |ISM frequency bands]] such as 868 MHz and 915 MHz, depending on regional regulations.  +
-</QUOTE> +
- +
-The idea is that each person has a small //companion// device <key>''C''</key> paired to their cellphone via Bluetooth, and via that device, they can text each other or post public messages using the 915 MHz band, all without a special license.  The signal can travel directly between //companion// devices if they are close enough, or via a series of //repeaters// <key>''R''</key> to extend coverage. +
- +
-<WRAP centeralign> +
-{{  :links:meshcore:meshcore1.svg?600  |}} +
-</WRAP> +
- +
-<WRAP centeralign> +
-<WRAP half column> +
-{{:links:meshcore:mqsg-0.png?0x160|}} \\ MeshCore devices used as //companion//. +
-</WRAP> +
-<WRAP half column> +
-{{:links:meshcore:mqsg-1.png?0x160|}} \\ A MeshCore device setup as a //repeater//. +
-</WRAP> +
-</WRAP> +
- +
-<pagebreak> +
- +
-<WRAP group> +
- +
-<WRAP twothirds column> +
-====== Companions  ====== +
-</WRAP> +
-<WRAP third column> +
-<WRAP rightalign> +
-((The [[#getting_started:_companions|Getting Started]] section used Liam Cottle's [[https://files.liamcottle.net/MeshCore/Documentation/MeshCore_Quick_Start_Guide.pdf |MeshCore Quick Start Guide]] from November 2025 (CC-BY-SA) as a starting point.  We then updated and expended his guide with regional settings used on the South West Coast of BC.)) +
-</WRAP> +
-</WRAP> +
-</WRAP> +
- +
-===== What is needed to use MeshCore? ===== +
-  * The MeshCore app downloaded to your cellphone or computer. +
-  * A device with the MeshCore //companion// firmware paired to your cellphone. +
-  * If needed, a device with the MeshCore //repeater// firmware to extend messaging range. +
- +
-Each person who wants to send messages needs their own //companion// device. +
- +
-==== Download the MeshCore App ==== +
-  * Search for "MeshCore" by "Liam Cottle" on [[https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android|Google Play]] or the [[https://apps.apple.com/us/app/meshcore/id6742354151 |Apple App Store]]. +
-  * Alternatively, an offline copy can be downloaded for Android, Windows, MacOS, Linux, and Web from [[https://meshcore.io/#download |https://meshcore.io]].  It's a good idea to have an offline copy in case of emergency. +
- +
-==== Where to buy MeshCore devices? ==== +
-  * Recommended devices are listed at [[https://meshcore.io/#hardware |https://meshcore.io]] +
-  * Alternatively, supported devices listed on [[https://meshcore.io/flasher]] can be purchased online from overseas suppliers such as [[https://aliexpress.com |AliExpress]] or [[https://www.seeedstudio.com/Wio-Tracker-L1-Pro-p-6454.html |SeeedStudio]], or in Canada from [[https://ca.robotshop.com/products/seeedstudio-wio-tracker-l1-pro-w-oled-3d-printed-casing |Robot Shop]]. +
- +
-<pagebreak> +
- +
-===== Flash the Firmware ===== +
-<WRAP group> +
- +
-<WRAP third column> +
-<WRAP important round> +
-\\ \\ +
-Use a Chromium-based web browser like [[https://brave.com/download/ |Brave]]. +
-\\ \\ +
-<wrap></wrap> +
-</WRAP> +
-</WRAP> +
- +
-<WRAP twothirds column> +
-<WRAP tip round> +
-On Linux, you may have to add the "''dialout''" group to your user.  To do that, type the following in the terminal replacing "''USER''" with your username and reboot your computer: +
- +
-''sudo usermod -a -G dialout USER'' +
-</WRAP> +
-</WRAP> +
- +
-</WRAP> +
- +
-If you already have Meshcore installed, backup your current settings: +
-  * Open the MeshCore app +
-  * Navigate to the Settings (the gear in the top right corner) +
-  * Scroll down to the "''Extra Tools''" section and select "''Export Config''" +
-  * "''Select All''" and click on the check mark in the top right corner to save the "''.json''" file to your phone. +
- +
-Flash the Meshcore Firmware: +
-  * Connect the companion device to your computer via USB. +
-  * Go to https://meshcore.io/flasher (using a **Chromium Browser**). +
-  * Select your device +
-  * Select Companion Bluetooth +
-  * Select Enter DFU Mode +
-  * Select Erase Flash (for **brand new** devices only.) +
-  * Select Flash +
- +
-To re-load your previous config file (required only if you lost your configuration for some reason). +
-  * Open the MeshCore App +
-  * Connect to the companion device, but it probably had a different bluetooth name now +
-  * Enter the PIN displayed on your MeshCore device’s screen. If your device doesn’t have a screen, the default pin is "''123456''". +
-  * Skip Setup +
-  * Navigate to the Settings (the gear in the top right corner) +
-  * Scroll down to the "''Extra Tools''" section and select "''Import Config''" +
-  * Click on "''Select File''" +
-  * Select the "''*.json''" file +
-  * "''Select All''" and click on the check mark in the top right corner. +
- +
-<pagebreak> +
- +
-===== Connect to your MeshCore Device ===== +
-  * Turn on your device. +
-  * Open the MeshCore App. +
-  * Tap the "''Connect''" button in the top right corner. +
-  * Tap the "''MeshCore-XXXX''" device that matches the name shown on your MeshCore device’s screen. +
-  * Enter the PIN displayed on your MeshCore device’s screen. If your device doesn’t have a screen, the default pin is "''123456''". +
-  * Once pairing is successful, you’ll be taken to the main screen. +
- +
-<WRAP group> +
-<WRAP centeralign> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-4.png?0x400|}} \\ Tap "''Connect''" in the top right corner. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-5.png?0x400|}} \\ Tap "''MeshCore-XXXX''" which matches the name on your MeshCore device. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-6.png?0x400|}} \\ You are now connected! +
-</WRAP> +
-</WRAP> +
-</WRAP> +
- +
-If you’re having trouble pairing with Bluetooth, try rebooting your phone. +
- +
-<pagebreak> +
- +
-<WRAP group> +
-<WRAP twothirds column> +
-===== Settings ===== +
-  * Tap the settings icon in the top right corner. +
-</WRAP> +
- +
-<WRAP third column> +
-**Quick Checklist:** +
-  * [[#public_info |Share Position in Advert]] +
-  * [[#network_settings |Use 2-byte Path Hash Size]] +
-  * [[#contact_settings |Disable Auto Add of Contacts]] +
-  * [[#position_settings |Disable GPS Mode]] +
-  * [[#advertdiscover |Send a flooded advert]] +
-</WRAP> +
-</WRAP> +
-==== Public Info ==== +
-<WRAP group> +
-<WRAP twothirds column> +
-You should now rename and set a location for your MeshCore node.  These settings will be seen by other users on the MeshCore network (and online!) and can be changed anytime. +
-  * Write a name that is somewhat descriptive (your name or callsign). +
-  * Tap the map icon to pick your location. <wrap important> This will be shared online</wrap> so you might want to select a street corner that's **close to but not exactly** where you live.  It should be close enough to be useful for your neighbours to identify you as part of the neighbourhood. +
-  * Check the "''Share Position in Advert''" +
-  * Tap the <key>✔</key> icon in the top right corner to save the settings. +
-</WRAP> +
-{{:links:meshcore:mcpubinfo.png?300|}} +
-<WRAP third column> +
-</WRAP> +
-</WRAP> +
- +
-The device name in Bluetooth will not update until you reboot your node. +
- +
-==== Radio Settings ==== +
-<WRAP group> +
-<WRAP twothirds column> +
-MeshCore can be used all over the world. Different countries have different regulations on which radio frequencies can be used for public, license free communication. To ensure your node is operating legally, please make sure to select radio settings that are compliant in your country. +
- +
-The MeshCore app provides a list of radio presets that have been suggested by the community for use in specific countries/regions, but in the SWBC region, we use different settings (see [[https://ridgeline.ve7kod.ca/faq |here]] for more details): +
- +
-  * Tap Selected Preset field and select "''Canada''".  After you save, this will change to "''Custom''". +
-  * Change the Frequency (MHz) to "''909.000''" +
-  * Make sure the other settings match the picture and tap the <key>✔</key> icon in the top right corner to save the settings. +
- +
-The max transmit power depends on the device. +
-</WRAP> +
-{{:links:meshcore:mcradioset.png?300|}} +
-<WRAP third column> +
-</WRAP> +
-</WRAP> +
- +
- +
-==== Network Settings ==== +
-<WRAP group> +
-<WRAP twothirds column> +
-The Path Hash Size is a chunk of data that is sent with your messages to identify who you are on the mesh (kind of like your node's address).  It is the first 1, 2, or 3 byte of your public key. +
- +
-There's a trade-off between how many hops a message can go and how many unique addresses each hash size can have.  When two nodes have the same path hash, messages can be routed to the wrong place. +
-</WRAP> +
-{{:links:meshcore:mcnetset.png?300|}} +
-<WRAP third column> +
-</WRAP> +
-</WRAP> +
- +
-^  Path Hash Size  ^  Number of unique addresses     ^  Max Hops  ^  Recommended for           ^ +
-^  1-byte          |  256  (16<sup>2</sup>)          |  64        |  <wrap alert>Avoid</wrap>  | +
-^  2-byte          |  65536  (16<sup>4</sup>)        |  32        |  Companions                | +
-^  3-byte          |  16 millions  (16<sup>6</sup>)  |  21        |  Repeaters                 | +
- +
-[[https://ridgeline.ve7kod.ca/identity |This page]] shows nodes with duplicate addresses, which can be fixed by increasing the path hash size. +
- +
-  * Tap the "''Default Path Hash Size''" and select "''2-byte''" for companions, or "''3-byte''" for repeaters. +
-  * Tap the <key>✔</key> icon in the top right corner to save the settings. +
- +
- +
-==== Other Settings ==== +
-<WRAP group> +
-<WRAP twothirds column> +
-In this section, we'll change two settings: +
-  * Contact Settings +
-  * Position Settings +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mcotherset.png?300|}} +
-</WRAP> +
-</WRAP> +
-<pagebreak> +
- +
-=== Contact Settings === +
-<WRAP group> +
-<WRAP twothirds column> +
-By default, the app adds every node it hears to the contact list, but it can only store 350 contracts.  It's better to let the user add contacts manually: +
-  * Select "''Auto Add Selected''" +
-  * Uncheck all four options +
-  * Tap the <key>✔</key> icon in the top right corner to save the settings. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:contactlist02.png?300|}} +
-</WRAP> +
-</WRAP> +
- +
- +
-=== Position Settings === +
-<WRAP group> +
-<WRAP twothirds column> +
-By default, the app can change your location based on your GPS coordinate.  Since we've already set an approximate location earlier, we'll want to disable this option.  It can be temporarily enabled if you're going somewhere you'd like others to be able to track you (for example). +
-  * Select "''Disabled''" +
-  * Tap the <key>✔</key> icon in the top right corner to save the settings. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mcgps.png?300|}} +
-</WRAP> +
-</WRAP> +
- +
- +
-==== Extra Tools ==== +
-<WRAP group> +
-<WRAP twothirds column> +
-The last thing we'll do before exiting the settings is to backup all our configs: +
-  * Tap "''Export Config''" +
-  * "''Select All''" +
-  * Tap the <key>✔</key> icon in the top right corner to save the settings. +
-</WRAP> +
-{{:links:meshcore:mcextratools.png?300|}} +
-<WRAP third column> +
-</WRAP> +
-</WRAP> +
- +
-Finally, let's tap the <key>✔</key> icon in the top right corner one last time to save the settings before exiting. +
-<pagebreak> +
- +
-===== Contacts ===== +
-<WRAP group> +
-<WRAP twothirds column> +
-<WRAP important round 100%>Unlike SMS, you can only send a private message to someone if you are **both** in each other's contact list.</WRAP> +
- +
-In this section, we'll see four different ways of sharing contact information. +
-</WRAP> +
-<WRAP third column> +
-Four ways to share contact information: +
-  - [[#advertdiscover |Advert / Discover]] +
-  - [[#qr_code |QR Code]] +
-  - [[#link_to_clipboard|Link to Clipboard]] +
-  - [[#in_a_channel |In a Channel]] +
-</WRAP> +
-</WRAP> +
- +
- +
- +
- +
-==== 1. Advert / Discover ==== +
-<WRAP group> +
-<WRAP twothirds column> +
-=== Advert === +
-An advert is an unencrypted packet transmitted by your MeshCore node. It includes your node name, location and type, public identity key and a cryptographic signature to prevent anyone from tampering with the information as it’s sent across the mesh. +
- +
-You can send two types of adverts: +
- +
-  * ''Zero Hop'': +
-    * The advert won’t be retransmitted by any repeaters. +
-    * Your contact details will only be received by nearby nodes. +
-  * ''Flood Routed'': +
-    * The advert will be rebroadcast by all repeaters that hear it. +
-    * Your contact details could be received by everyone on the mesh. +
-</WRAP> +
- {{:links:meshcore:mcadvert1.png?300|}} +
- {{:links:meshcore:mcadvert2.png?300|}} +
- +
-<WRAP third column> +
-</WRAP> +
-</WRAP> +
- +
- +
-There was a deliberate decision made to [[https://github.com/meshcore-dev/MeshCore/issues/974 |prevent auto advert for companions]] (but not for repeaters).  As such, you should <wrap important>flood advert at least once a week</wrap> so that new users can find and add you to their contact list. +
- +
-    * Tap of the "wave" icon just on the left of the gears at the top +
-    * Tap "Advert • Flood Routed" +
- +
-<pagebreak> +
-=== Discover === +
-The easiest way to add nodes that are in your neighbourhood to your contact list is to use the map feature.  However, there are three different kinds of maps in Meshcore: +
- +
-<WRAP group> +
-<WRAP centeralign> +
-<WRAP third column> +
-{{:links:meshcore:contactlist04.png?200|}} \\ +
-1) The map at the bottom of the main page only shows nodes in your contact list. +
----- +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:contactlist05.png?200|}} +
-{{:links:meshcore:contactlist06.png?200|}} \\ +
-2) The map under "Discover Contacts" shows all the nodes that your companion has heard so far. +
----- +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:contactlist07.png?200|}} \\ +
-3) The "Internet Map" shows a map of all the nodes heard by "observers" that are shared to the [[https://meshcore.io/map |Internet]]. +
----- +
-</WRAP> +
-</WRAP> +
-</WRAP> +
- +
-To populate your contact list, use the map under "Discover Contacts".  You might have to leave your node on for a bit for it to hear all the nodes in your area since they need to advert or transmit for your node to see them: +
-  * In the "''Discover Contacts''" -> "''Map View''" +
-  * Tap on the filter icon {{:links:meshcore:contactlist08.png?20}} and select "''Users''". +
-  * Tap on <key>**⋮**</key> in the top right and uncheck "''Show Added Contacts''" +
- +
-The map will only show users that have not been added yet.  To add them: +
- +
-  * Tap on a node +
-  * Under the node's name, tap on "''Add''" +
- +
-If you go back to the main page's "''Map''" (1), you should now see that contact. +
- +
-The maps only show nodes that have [[#public_info |Shared their Position in Advert]].  Nodes that have not shared their location will still show in the list, but you won't be able to tell where they are located.  That's why it's <wrap important>important to share your approximate location</wrap>: so others in your neighbourhood can add you to their contact list. +
- +
- +
-<pagebreak> +
- +
- +
-==== 2. QR Code ==== +
-The fastest way to share your contact information with someone who next to you is use QR Codes.  However, don't text or email these out, for that, there's a better way... +
- +
-=== Share === +
-<WRAP group> +
-<WRAP twothirds column> +
-To share your contact details privately via QR Code: +
-  * Tap on <key>**⋮**</key> in the top right. +
-  * Tap the "''My Contact Code''" menu item. +
-  * Show the QR Code to the other person. +
- +
-The QR Code contains your Node Name, Node Type and Public Identity Key. Your contact details will not be transmitted over the mesh. Only the person who scans your QR Code will receive your contact details. +
- +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:shareqrcode.png?300|}} +
-</WRAP> +
-</WRAP> +
- +
-=== Add === +
-<WRAP group> +
-<WRAP twothirds column> +
-To add a contact via QR Code: +
-  * Tap on <key>**⋮**</key> in the top right. +
-  * Tap the "''Add Contact''" menu item. +
-  * Tap the "''Scan QR Code''" button (if requested, grant access to the device’s camera). +
-  * Point the device’s camera at the QR Code. +
-  * The contact details will be automatically added to your contacts list. +
-  * Tap the <key>**✔**</key> to add. +
- +
-You may need to accept a permissions request for the MeshCore app to access your camera. This permission must be granted to be able to scan the QR Code. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:addqrcode.png?300|}} +
-</WRAP> +
-</WRAP> +
- +
-<pagebreak> +
- +
-==== 3. Link to Clipboard ==== +
-The easiest way to share your contacts via email or SMS is to use a contact link. +
-<WRAP group> +
-<WRAP twothirds column> +
-=== Share === +
-To share your contact link: +
-  * Tap on <key>**⋮**</key> in the top right. +
-  * Tap the "''My Contact Code''" menu item. +
-  * Tap on <key>**⋮**</key> in the top right. +
-  * Tap on "''Copy Link to Clipboard''" +
-  * Paste the link in an email or SMS +
-</WRAP> +
- +
-<WRAP third column> +
-{{:links:meshcore:sharelink.png?300|}} +
-</WRAP> +
-</WRAP> +
- +
-<WRAP group> +
-<WRAP twothirds column> +
-=== Add === +
-To add a contact link: +
-  * Copy the contact link you were sent to your phone's clipboard. +
-  * In the Meshcore app, tap on <key>**⋮**</key> in the top right. +
-  * Tap on "''Add Contact''" +
-  * Tap on "''Import from Clipboard Link''" +
-  * Tap the <key>**✔**</key> to add. +
- +
-</WRAP> +
- +
-<WRAP third column> +
-{{:links:meshcore:import_link.png?300|}} +
-</WRAP> +
-</WRAP> +
-<pagebreak> +
-==== 4. In a Channel ==== +
-We haven't discussed Channels yet so feel free to come back to this section later.   +
- +
-=== Share === +
-<WRAP group> +
-<WRAP twothirds column> +
-Here's how to share your contact information with everyone in the Channel: +
-  * In a channel, tap the <key>**⊕**</key> icon at the bottom left +
-  * Tap "''My Contact Info''" and tap the "send" icon at the bottom right. +
- +
-You'll see a message that says: "//You shared this contact//" +
-</WRAP> +
- +
-<WRAP third column> +
-{{:links:meshcore:sharetochannel.png?400|}} +
-</WRAP> +
-</WRAP> +
- +
-=== Add === +
-<WRAP group> +
-<WRAP twothirds column> +
-To add a contact shared in a channel: +
-  * Simply tap the "''Add Contact''" button.  This will populate the name and public key in the ''Add Contact'' window. +
-  * Tap <key>**✔**</key> to add. +
-</WRAP> +
- +
-<WRAP third column> +
-{{:links:meshcore:addfromchannel.png?300|}} +
-</WRAP> +
-</WRAP> +
- +
-<pagebreak> +
- +
- +
-====== Under Construction ====== +
- +
-<WRAP center round todo 90%> +
-I'm still editing the rest of this document.   --- //[[[email protected]|Patrick, VA7FI]] 2026/10/22 16:28// +
-</WRAP> +
- +
-If you notice typos or anything that needs to be fixed in the pages above, please [[[email protected] |email me directly]].  The rest of this document is still being reviewed and edited heavily. +
- +
-<pagebreak> +
- +
- +
- +
-===== Public-key Cryptography ===== +
-This section is optional in that it doesn't explain how to use Meshcore, but it gives interesting background on how Meshcore operates. +
- +
-There are basically two different strategies for encrypting a message: +
- +
-**[[wp>Symmetric-key_algorithm |Symmetric-key cryptography]]** is a system where the key to encrypt and decrypt a message is the same. +
- +
-For example, if I generate a long random list of numbers between 1 and 26, I could use that to encrypt a message, and you could use the same list to decrypt it.  For example, if I shift the letters in "hello" with (1, 9, 2, 7, 3), I'll get "innsr".  You can then shift them back using the key to recover "hello". +
- +
-This can be very secure //if// the key is random, is as long as the message itself, and is never reused for other messages.  A big practical problem is that I have to somehow give you a copy of the key without it getting intercepted.  If I can do that, I might as well give you the unencrypted message. +
- +
-**[[wp>Public-key_cryptography |Public-key cryptography]]** solves the problem of sharing the key securely.   +
- +
-You start with a large random number and use that to generate a key pair that are related in that they are the "inverse" of each other in one sense.  For example, encrypting a message with one key can only be decrypted with its pair.  This is based on the idea that a lot of processes in math are not easily reversible, so deducing one key from its pair is almost impossible. +
- +
-Once you have this pair of keys, you keep one secret, and you publish the other one.  That's right, you share one of your keys with everyone!  Here are two things that you can now do: +
-  * Someone uses my public key to encrypt a message, and only I can decrypt it with my private key. +
-  * I want to send a public message and I want them to be certain that it came from me, so I encrypt it with my private key.  Everyone can decrypt it because they can use my public key, and they know I was the one writing it because only I have the private key that encrypted it.  This is a sort of signature. +
- +
- +
- +
-===== Sending Messages ===== +
- +
-==== Channels ==== +
-Messages sent to the "''Public''" channel can be seen by anyone on the MeshCore network. They are repeated across the mesh by all repeaters that hear them. Other mesh nodes in range of you or a repeater that rebroadcast the message should receive it. +
- +
-The "''Public''" channel can be used as a large group chat for general conversation amongst all users on the mesh. It could also be used to send emergency alerts. +
- +
-It’s not recommended to send confidential information on the "''Public''" channel as anyone can read these messages. +
- +
-To send a message: +
-  * Tap the channels tab at the bottom of the screen. +
-  * Tap the "''Public''" channel. +
-  * Type a message and press the send icon. +
- +
-<WRAP group> +
-<WRAP centeralign> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-13.png?0x400|}} \\ Tap the channels tab at the bottom of the screen. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-14.png?0x400|}} \\ Tap the “Public” channel. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-15.png?0x400|}} \\ Type a message and press the send icon. +
-</WRAP> +
-</WRAP> +
-</WRAP> +
- +
-<WRAP center round info 70%> +
-Outgoing messages will show "Heard 1 repeat" if your node heard a nearby repeater passing on your message. If there are no nearby repeaters, it will show "Sent". It’s not possible to know who received a channel message. +
-</WRAP> +
- +
-<pagebreak> +
- +
- +
-==== Private Messages ==== +
-Once you’ve added a contact, and that contact has added you back, you can send private messages to each other across the mesh. These messages are encrypted and only the intended recipient can read the message contents. +
- +
-To send a private message: +
-  * Tap the contact you want to send a message to. +
-  * Type a message and press the send icon. +
-  * The app will try several times to deliver your message to the recipient. +
-  * If it’s successful, it will show "Delivered" with a check mark. +
-  * If an automatic acknowledgement from the recipient is not received after some time, the message will turn red and show as "Failed". +
-  * When messages are received, they will show up in the conversation viewer. +
- +
-<WRAP group> +
-<WRAP centeralign> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-25.png?0x400|}} \\ Tap the contact you want to send a message to. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-26.png?0x400|}} \\ Type a message and press the send icon. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-27.png?0x400|}} \\ Received messages will show up in the conversation viewer. +
-</WRAP> +
-</WRAP> +
-</WRAP> +
- +
-<WRAP center round info 70%> +
-A message may get marked as failed even though it was successfully delivered to the recipient. This happens if we did not receive the acknowledgement reply from the recipient node. In this case, it’s recommended to send the message again. Once you see the delivered check mark, you know for sure it was received. +
-</WRAP> +
- +
-<pagebreak> +
- +
-==== Retry Sending a Failed Direct Message ==== +
-When you send a direct message to someone, it’s possible that it may not go through after several automatic attempts. This can happen for many different reasons, such as: +
-  * Being out of range of the intended recipient. +
-  * There are no repeaters in between you and the intended recipient. +
-  * The intended recipient’s radio might be turned off. +
-  * There might be interference on the radio spectrum. +
- +
-To try sending the failed message again: +
-  * Long press the failed message shown in red. +
-  * Tap the "Retry Sending" button shown in the message actions popup. +
-  * Your message will try sending again. +
- +
-<WRAP group> +
-<WRAP centeralign> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-28.png?0x400|}} \\ Long press the failed message shown in red. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-29.png?0x400|}} \\ Tap the "Retry Sending" message action. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-30.png?0x400|}} \\ Your message will try sending again. +
-</WRAP> +
-</WRAP> +
-</WRAP> +
- +
-<WRAP center round important 70%> +
-When sending direct messages, **you must both add each other as contacts** first. The recipient's companion radio must be turned on to receive the message and to provide a delivery report. You must also be in radio range of each other, or have a working path of repeaters between each other. +
-</WRAP> +
- +
-<pagebreak> +
- +
-===== Ping a Repeater ===== +
-To check the signal strength to and from a nearby repeater, you can run a ping test. +
-  * Tap on <key>**⋮**</key> icon next to a repeater contact. +
-  * Tap the "Ping (Zero Hop)" menu item. +
-  * A green popup will show signal strengths if successful. +
-  * A red popup will show "Timeout" if your companion didn’t hear the repeater. +
- +
-<WRAP group> +
-<WRAP centeralign> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-31.png?0x400|}} \\ Tap on <key>**⋮**</key> icon next to a repeater contact. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-32.png?0x400|}} \\ Tap the "Ping (Zero Hop)" menu item. +
-</WRAP> +
-<WRAP third column> +
-{{:links:meshcore:mqsg-33.png?0x400|}} \\ A green popup will show signal strengths if successful. +
-</WRAP> +
-</WRAP> +
-</WRAP> +
- +
-<WRAP center round info 70%> +
-Ping tests do not hop through multiple repeaters. You must be in range of the specific repeater you are ping testing. For a ping test to be successful, the repeater must hear your companion signal directly, and your companion must hear the repeater signal directly. If you’re not in range of the repeater, the ping test will fail with a timeout error. +
-</WRAP> +
- +
-<pagebreak> +
- +
-====== Repeaters ====== +
-  * Install a repeater like the //SenseCAP Solar Node P1-Pro// from [[https://www.seeedstudio.com/SenseCAP-Solar-Node-P1-Pro-for-Meshtastic-LoRa-p-6412.html|seeed studio]] or [[https://ca.robotshop.com/products/sensecap-solar-node-p1-pro-for-meshtastic-w-gps-battery |RobotShop]] +
-  * Use an antenna like: +
-    * [[https://www.amazon.ca/dp/B08H8J6ZV6 |ALFA Network AOA-915-5ACM 5 dBi]] +
-    * [[https://www.amazon.ca/Waterproof-Fiberglass-SenseCAP-EasyLinkIn-SyncroB/dp/B09N2H166D/|5.8dBi Meshtastic Lora 915MHz Fiberglass Antenna]] +
-    * [[https://mappingnetwork.ca/products/rakwireless-8dbi-fiberglass-antenna?|RAKwireless 8dBi Fiberglass]] +
-    * [[https://www.aliexpress.com/item/1005005132142342.html |one of these from AliExpress]]. +
-  * Use the shortest cable possible like: +
-    * [[https://www.amazon.ca/Bingfu-Bulkhead-Compatible-Wireless-Amplifier/dp/B084VB68H4|Bingfu SMA Male to N Female Bulkhead Mount RG58 Coaxial Cable 1 ft]] +
-    * [[https://www.amazon.ca/dp/B0FDB2BN1R/ |Superbat N Type Female to SMA Male RG316 Coaxial Cable 15cm]] +
- +
-===== Installing the Bootloader for the First Time. ===== +
-This step is required to be able to perform future updates over-the-air (OTA) via bluetooth, but is **not** required (or compatible) with esp32 devices like the Heltec V or T beam. +
- +
-If you already have Meshcore installed (but not the bootloader), download your current settings: +
-  * Go to https://config.meshcore.io/ +
-  * Connect your device to your computer with a USB cable. +
-  * Click on ''Connect'' +
-  * Click on ''Export'' +
-  * Click on ''Disconnect'' +
-  * Locate the ''.json'' file (probably in your Downloads folder). +
- +
-Download the bootloader: +
-  * Go to https://meshcore.io/flasher +
-  * Select your device +
-  * Select ''Repeater'' (or ''Room Server'') +
-  * Click on ''Download'' +
-  * Select the ''*bootloader-x.x.x-OTAFIXx.x.uf2'' file +
-  * Locate the ''.uf2'' file (probably in your Downloads folder). +
- +
-Copy the bootloader over to your device: +
-  * Connect your device to your computer with a USB cable. +
-  * Double click on the reset button. +
-  * Open the drive that just mounted on your computer +
-  * Copy the ''.uf2'' file to the drive. +
-  * The drive may close on its own right away.  This is normal. +
- +
-Flash the Meshcore Firmware: +
-  * Go to https://meshcore.io/flasher +
-  * Select your device +
-  * Select ''Repeater'' (or ''Room Server'') +
-  * Select ''Enter DFU Mode'' +
-  * Select ''Erase Flash'' +
-  * Select ''Flash'' +
-<pagebreak> +
- +
-Re-upload your settings: +
-  * Select ''Configure via USB'' from the previous page, or navigate to https://config.meshcore.io/ +
-  * Select ''Connect'' +
-  * Select ''Import'' +
-  * Select your ''.json'' file +
-  * Scroll down to the ''Access'' section and retype your ''New Admin password'' (it doesn't remember it) +
-  * Scroll down and select ''Save settings'' +
-  * Select ''Disconnect'' +
- +
-===== Updating the Firmware OTA ===== +
-Setup the Over the Air (OTA) update app (first time only): +
-  * Download the "nRF Device Firmware Update" app by "Nordic Semiconductor ASA" ([[https://play.google.com/store/apps/details?id=no.nordicsemi.android.dfu |Android]], [[https://apps.apple.com/sa/app/nrf-device-firmware-update/id1624454660 |Apple]]) +
-  * Open the ''DFU'' app +
-  * In the settings, check ''Packet receipt notification'' +
- +
-Perform an OTA update: +
-  * Using your phone's browser, navigate to https://meshcore.io/flasher +
-    * Select your device +
-    * Select ''Repeater'' (or ''Room Server'') +
-    * Select ''Download'' +
-    * Select the firmware ''zip'' file (**not** the bootloader file) +
-  * Using the Meshcore app, login to your repeater (or room server) using the admin password. +
-    * For Room Servers: go to ''Remote Management'' +
-    * Go to the ''Command Line'' +
-    * Type ''start ota'', you should get a message that says: ''OK - mac: xx:xx:xx:xx:xx:xx'' +
-  * Open the ''DFU'' app +
-    * Under ''File'' click ''Select'' to chose the firmware ''.zip'' file +
-    * Under ''Device'' click ''Select'' and chose the device that has ''DFU'' in the name.  If there are no device with ''DFU'' in the name select the device with ''OTA'' in the name. +
-    * Under ''Progress'' click ''Start'' +
-    * If you selected a device with ''OTA'' in the name, the process will fail at ''DFU initialization''.  Instead of waiting, just ''Abort'' the process, go back to the previous step, and now you should be able to select a device with ''DFU'' in the name. +
- +
-See [[https://scottbaker.ca/meshcore/repeater-setup |Scott Baker's article]] for more information. +
- +
-<pagebreak> +
- +
-====== More Advanced: Sensors  ====== +
-  * Install [[https://www.localmesh.nl/en/meshcore-telemetry-functions/|sensors]]. +
- +
-====== Maps ====== +
-  * [[https://map.meshcore.dev/?zoom=10&lat=49.5127&lon=-123.5797| Official MeshCore Node map]] +
-  * [[https://swbc.meshmapper.net/ |Community generated map]] +
-  * [[https://ridgeline.ve7kod.ca/live |SWBC Map with links]] by VE7KOD +
- +
-<hidden Repeater Project> +
-{{  :links:meshcore:meshcore_repeaters.jpg?500  }} +
-Here's how to use MeshCore's Antenna Coverage tool to model line of sight coverage: +
-  * Navigate to the [[https://app.meshcore.nz/ |web version of the MeshCore App]] +
-  * You don't need to connect to an actual Meshcore device. +
-  * Click on <key>**⋮**</key>  on the top right corner and then select ''Tools'' +
-  * Enter the ''Antenna Coverage'' tool +
-  * Where it says ''0 Coverage Layers'' click on <key>**⋮**</key> and select ''Import JSON'' +
-  * Import {{ :links:meshcore:coverage_layers_2026-03-27-221828.json |this file}} +
-</hidden> +
-\\ +
- +
-====== Tools ====== +
-  * [[https://analyzer.letsmesh.net/map?lat=44.46703&long=-99.43156&zoom=2 |MeshCore Analyser]] +
-  * [[https://heywhatsthat.com/profiler.html |Path Profiler]] +
- +
-<pagebreak> +
-====== Resources ====== +
- +
-  * Official MeshCore [[https://meshcore.io |Website]] and  [[https://github.com/meshcore-dev/MeshCore| Github]] +
-  * [[https://youtu.be/OwmkVkZQTf4 |Youtube Presentation by Liam Cottle]] +
-  * [[https://scottbaker.ca/meshcore |Scott Baker's Website]] +
-  * {{:links:meshcore:mc_viard_document.pdf |Vancouver Island Amateur Radio Discord Meshcore tips & Tricks}} <wrap hi>NEW</wrap> +
-  * [[https://salishmesh.net/ |Salish Mesh Website]] +
-  * [[https://forum.letsmesh.net/ |Forum]] +
-  * [[https://www.austinmesh.org/learn/meshcore-vs-meshtastic/ |MeshCore vs Meshtastic]] +
-  * [[https://idahomesh.org/meshcore-channels-rooms-and-dms/ |Channels vs Rooms vs DMs]] +
- +
links/meshcore/home.1792790389.txt.gz · Last modified: by va7fi