Skip to content

MeshCore

Tim Wilkinson edited this page Apr 15, 2026 · 14 revisions

NOTE: These instructions are incomplete

You should only enable the MeshCore bridge if you have an appropriate MeshCore device connected to the LAN interface on your Raven node.

MeshCore Bridge

Firmware

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

Hardware

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.

MeshCoreBridge

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.

Install MeshCore firmware

... TODO ...

MeshCore Configuration

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

Bridging Software

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.

Installation

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

Install MeshCore2Net

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.

Raven Configuration

To enable the MeshCore bridge, edit raven.conf.override (see Advanced Configuration for details) and add the following as a top-level JSON key:

"meshcore": {}

If the override file contains no other changes it would look like this:

{
  "meshcore: {}
}

Restart Raven by typing /etc/init.d/raven restart.

Raven will now be configured to received MeshCore traffic from the MeshCore device connected to the node's LAN network, and will forward traffic to the same MeshCore device when necessary.

Clone this wiki locally