====== Meshcore ======
===== Introduction =====
From [[wp>MeshCore |Wikipedia]]:
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.
The basic idea is that you get a small //companion device// that you pair to your cell phone via bluetooth, and via that device, you can text others or post public messages using the 915 MHz band, all without a special license.
===== Getting Started: Companions =====
* Get a companion device like:
* the //Wio Tracker L1 Pro// from [[https://www.seeedstudio.com/Wio-Tracker-L1-Pro-p-6454.html |seeed studio]] or from [[https://ca.robotshop.com/products/seeedstudio-wio-tracker-l1-pro-w-oled-3d-printed-casing |Robot Shop]]
* FIXME: add other options here
* Flash the device with the latest Meshcore Firmware]].
* Pair the device with your phone.
* Turn off Auto-Add Contacts.
* 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:
sudo usermod -a -G dialout USER
* You should also use a Chromium based web browser.
If you already have Meshcore installed , download your current settings:
* Open the MeshCore app ([[https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android|Android]], [[https://apps.apple.com/us/app/meshcore/id6742354151?platform=iphone |iOS]], [[https://app.meshcore.nz/|Web App]], [[https://github.com/liamcottle/meshcore.js|NodeJS]], [[https://github.com/fdlamotte/meshcore-cli|Python]])
* 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 Browswer).
* Select your device
* Select Companion Bluetooth
* Select Enter DFU Mode
* Select Erase Flash
* Select Flash
To re-load the config file:
* Open the MeshCore App
* Connect to the companion device, but it probably had a different bluetooth name now
* The PIN might be listed on your companion's screen
* 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.
See [[https://scottbaker.ca/meshcore/getting-started|Scott Baker's article]] for more information.
\\
===== Next Step: 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://mappingnetwork.ca/products/rakwireless-8dbi-fiberglass-antenna?srsltid=AfmBOopWTWkyL8aL4kKvxOAXJFYNEEIgaoj4ZICvCRaorahbFwbbHdHW|this one]], [[https://www.amazon.ca/Waterproof-Fiberglass-SenseCAP-EasyLinkIn-SyncroB/dp/B09N2H166D/|this one]] or [[https://www.aliexpress.com/item/1005005132142342.html |one of these]].
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''
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''
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.
* Under ''Progress'' click ''Start''
See [[https://scottbaker.ca/meshcore/repeater-setup |Scott Baker's article]] for more information.
\\
===== 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
{{ :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 \$\quad \vdots \quad \$ on the top right corner and then select ''Tools''
* Enter the ''Antenna Coverage'' tool
* Where it says ''0 Coverage Layers'' click on \$\quad \vdots \quad \$ and select ''Import JSON''
* Import {{ :links:meshcore:coverage_layers_2026-03-27-221828.json |this file}}
\\
===== Tools =====
* [[https://analyzer.letsmesh.net/map?lat=44.46703&long=-99.43156&zoom=2 |MeshCore Analyser]]
* [[https://heywhatsthat.com/profiler.html |Path Profiler]]
===== 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}} NEW
* [[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]]
/*
===== List of Repeaters on the Coast =====
==== VA7KRZ-Gibsons-RP1 ====
|<100% 8em>|
^Location: |Kitchen Window, Gibsons (49.414161, -123.515539) |
^Equipment: |Heltec V3 with a 5.8 dBi Antenna |
^Orientation: |Clear line-of-sight toward Richmond / Lower Mainland |
^Sponsor: |Adam, VA7KRZ |
^Public Key: |612826cd886fd45bc6ce607308d14a4cb77b49673042d9844bf54242df5e74d8|
Under Construction:
|<100% 8em>|
^Location: |Roof, Gibsons (49.414161, -123.515539) |
^Equipment: | RAK19004 (power module), RAK19007 (Baseboard), RAK4631 (LoRaWAN module)|
==== VA7FI - SenseCap ====
|<100% 8em>|
^ Location: | Atop a 20 m tree in Roberts Creek |
^ Equipment: | SenseCAP with stock antenna |
^ Sponsor: | Patrick, VA7FI |
^ Public Key: | 0c035f5ec37944b7f7df9599cf2b74fd8b75851481dda4aac0c813854fca1726 |
==== VA7XES - Roberts Creek ====
|<100% 8em>|
^Location: |Roberts Creek (49.449751, -123.653155) |
^Equipment: |:?: |
^Sponsor: |:?: |
^Public Key: | 857d939db34d0afdeb7cb6ee4cddfc59aab02dc6efd1e76d14fc318e4e54c1e2 |
==== Sechelt_PBay ====
|<100% 8em>|
^Location: |:?: |
^Equipment: |:?: |
^Sponsor: |Gary, VA7GYT |
^Public Key: |d7ed6f8f764ca63a4158108d3a24fde6e8df836b6f63aa09ef2a2060b0bd304f |
==== SSAC-1 ====
|<100% 8em>|
^Location: |On roof of Sechelt Senior Activity Centre (49.4757, -123.7580) |
^Equipment: |SenseCAP Solar Node P1-Pro with FIXME: Antenna |
^Sponsor: |Larry, VA7LSP |
^Public Key: |6dfc25cb2d0a6efe8520f469d9ac2e8c5dacde42c4d380cf553dd05bf768b1e2 |
*/