-
Notifications
You must be signed in to change notification settings - Fork 0
MeshCore
You should only enable the MeshCore bridge if you have an appropriate MeshCore device connected to the LAN interface on your Crow node.
Building an AREDN to MeshCore hardware bridge is, unfortunately, more involved than the Meshtastic bridge. By default, MeshCore does not provide any form of ethernet access. However, the official firmware (see https://github.com/meshcore-dev/MeshCore) does provide an option to receive and send packets via the serial port on a MeshCore node. This is what we will use to bridge to AREDN. (We are aware of pyMC_core as another alternative, but we want to use the official MeshCore firmware.)
These instructions use the WisBlock system; specifically the WisBlock Base (RAK19007) and the WisBlock Core (RAK4631) contains a pre-soldered RAK4630 (we specifically purchased this https://store.rokland.com/products/rak-wireless-wisblock-meshtastic-starter-kit which is sold for Meshtastic, but works fine for our purposes). This devices has a serial port available and is power and programmed over USB. We also use a Raspberry Pi to support bother remote programming and configuration support (via USB) of the MeshCore devices, as well as connecting to the serial port to send and receive MeshCore packets.

The picture above shows the Raspberry Pi (hidden under a PoE HAT) connected to the WisBlock boards via a USB cable and 3-wire ribbon serial cable. The PoE HAT allows powering and communicating with the board over a single ethernet cable.
... TODO ...
The MeshCore node must be configure. We use the Python tools to do this; see https://github.com/meshcore-dev/meshcore-cli. We will not go into detail on how to configure a MeshCore node; there are plenty of better places to learn about that.
After configuration we need to retrieve the node's public key which we will need later. You can do this with the following command:
meshcli -s /dev/ttyACM0 -r get public.key
To copy MeshCore packets between the MeshCore node and the local network, the Raspberry Pi must run a Bridge application. The current version is available here https://github.com/kn6plv/MeshCore2Net and is written in JavaScript to run on NodeJS.
The are various ways you might install NodeJS on the Raspberry Pi, but we want to use the official instruction here - https://github.com/nvm-sh/nvm#installing-and-updating
Please run these as root so NodeJS is installed in the correct location for the bridge service to find it.
Before installing and running the bridge make sure you have successfully install NodeJS following the instructions above. You will also need to have installed git.
Now, to install and run the bridge, follow these steps:
cd /root
git clone https://github.com/kn6plv/MeshCore2Net.git
cd MeshCore2Net
./install.sh
Assuming everything goes well, the bridge will now be running, and will run as a service even after a reboot.
To enable the MeshCore bridge, add the configuration shown in Configuration — MeshCore Bridge.
As a quick reference, you'll add the "meshcore": {} key to enable the bridge.
Crow will then receive MeshCore traffic from the MeshCore device connected to the node's LAN network and forward traffic to the same MeshCore device when necessary.
Crow also includes an experimental meshcore_tcp_api backend that connects directly via TCP to a MeshCore device's Companion API (port 4403). This backend is not enabled by default and is currently under development.
Current Status:
- ✅ TCP connection and MeshMonitor-compatible Companion Protocol working
- ✅ Messages routed to Crow's router (with strict Gatekeeper filtering)
- ❌ Auto-channel discovery: NOT implemented — you must manually create channels in Crow
- ❌ Channel sync: NOT implemented — changes to MeshCore channels won't auto-sync to Crow
⚠️ Not wired into router.uc by default (experimental)
Limitation: Because auto-channel discovery is not yet implemented, the API backend requires you to pre-create channels in Crow that match your MeshCore device's channels. See Configuring Channels for channel creation.
For full configuration details, see Configuration — MeshCore TCP API Bridge (when available).
- Home
- Change Log
- Configuration
- Configuring Channels
- Backend Selection and Test Deployment
- Command Reference
- APRS Bridge
- LoRa Gateway Tags
- Meshtastic API Backend
- Memory Use
- Strict Gatekeeper
- Winlink
- USB Storage
APRS.mdBackend-Selection-and-Deployment.mdChange-Log.mdCommand-Reference.mdConfiguration.mdConfiguring-Channels.mdHome.mdLoRa-Gateway-Tags.mdMeshtastic-API.mdMemory-Use.mdStrict-Gatekeeper.mdUSB-Storage.mdWinlink.md_Sidebar.md
- Keep every
.mdwiki page linked here. - Keep
Home.mdand_Sidebar.mdin sync. - When a wiki page is removed, remove it from both the Home page inventory and this sidebar.