#bemesh


My personal #bemesh MeshCore Settings

Some early adapters, mostly radio amateurs, started the #bemesh initiative to create a Belgian MeshCore network. They are doing a great job and are an open community. If you’re Flemish/Dutch speaking, certainly joining the Discord forum mentioned on the page is worth joining. Go check it out and come back, because I have some opinions that deviate from the default settings.

In this post I’m using the command line interface to describe the settings I use. You can find the full list of commands on the MeshCore CLI reference.

Changelog and Planning

This page is a living document, as the mesh evolves section will be added.

Date Change
2026-03-03 Added the section about regions
2026-03-10 Added the key backup and #bemesh planning

The MeshCore is a fast evolving project, and new features are only available in the latest firmware. Although a lot of things are backwards compatible, some coordination is required to make sure the mesh keeps on working.

Date Change
2026-04-01 Upgrade to 1.14 to support multibyte path hashes.
Unplanned Remove flodding for null region.

Backup the repeaters private key

Before starting to configure the repeater, make sure you have a backup of the repeater’s private key. This is important because the first few bytes of the public key are used for routing messages on the mesh. If you have to create a new private key because you lost the old one, and your repeater is an important hope in the mesh, it will take a while before the mesh stabilizes.

You can only get the private key from the serial terminal for safety, so do it when you flashed your firmware.

get prv.key

Non standard settings

The default settings advice to disable zero hop adverts. But if you want your repeater to show up on the mapme.sh website when people are wardriving, you want them to pick up the coordinates of the repeater. This is done when they pick up an advert from your repeater. That’s why I advise to advert every 60 minutes.

This is not to be confused with flood adverts, you shoud keep those adverts to only transmit every 12 hours. It confusing through that advert.interval is in minutes and flood.advert.interval is in hours.

set advert.interval 60
set flood.advert.interval 12

Prepare for scale (Scopes)

A new functionality of MeshCore is the ability to set scope to control flooding. The scope is a regional setting that allows you to control flooding for a specific region. But because new firmwares will start dropping messages without scope, now is the time to start standardizing on the regions; otherwise scopes will never be used.

I’m a fan of standards, so I’m glad our Northern Neighbours are also jumping on the ISO Region Codes Netherlands standards. So I’ve aligned by regions with their proposal. I’ve added a section about cities as well, based on the UN/LOCODE codes.

Add known countries, regions, and provinces

Let’s start with the countries, as well as the EU and the Benelux. We base our regions on the ISO 3166-1 2 letter country codes. They do include codes for BeNeLux BX and EU. I like to let the repeater know of the regions and countries, this makes it easier to enable the flooding and makes it helpful to explain the regions in this article.

region put be
region put nl
region put lu
region put de
region put fr
region put bx
region put eu

Our regions are also defined in the same standard: ISO 3166-2-BE Belgian regions and provinces; Let’s add them.

region put be-vlg
region put be-bru
region put be-wal

Now add the Flanders provinces to the known regions: Antwerpen (van), Oost Vlaanderen (vov), Limburg (vlg), Vlaams Brabant (vbr), West Vlaanderen (vwv)

region put be-vbr
region put be-van
region put be-vlg
region put be-vov
region put be-vwv

And we’ll add the Walloon provinces as well: Walloon Brabant (wbr), Hainaut (wht), Liège (wlg), Luxembourg (wlx), Namur (wna)

region put be-wbr
region put be-wht
region put be-wlg
region put be-wlx
region put be-wna

If you live at our country border, have a look at when the neighboring countries do and add the neighboring codes.

Allow flooding for you and your neighbors

The following will be different for everyone, but I’ll run through my situation. I live in Vilvoorde, so I allow flooding for everything that’s relevant for me, my country, region, and province.

region allowf be
region allowf be-vlg
region allowf be-vbr

I would for now at least still allow flooding for the EU and Benelux.

region allowf bx
region allowf eu

I only live half a kilometer from the Brussels region border. This mean I should allow flooding for that region as well. You should help your neighbors, so traffic can be routed when there is a gap in the Brussels network.

region allowf be-bru

Now it’s time to set your city

Now that we covered the big regions, it’s time to set your city, and of course your neighboring cities. It would be impractical to start listing all the cities, so we only add the ones we are going to help with flooding.

To make a distinction between cities and regions, we decided to not use a hyphen in the city name. We would otherwise have a conflict in Brussels, because we have the region Brussels and the city Brussels. This completely aligns with the LOCODE described here: UN/LOCODE A complete UN/LOCODE is a combination of a 2-character country code and a 3-character location code, e.g. BEANR is known as the city of Antwerp (ANR) which is located in Belgium (BE). For ease of reading, the country and location code elements are usually separated by a space. In actual use, this space could be suppressed. We will suppress the space.

For me living in Vilvoorde, this will be: Vilvoorde (bevil), Zemst (bezet), Grimbergen (begrb), Strombeek-Bever (besov), Neder-Over-Heembeek (benvh), Haren (behar), Machelen (bemac)

region set bevil
region set begrb
region set bezet
region set besov
region set benvh
region set behar
region set bemac
region allowf bevil
region allowf begrb
region allowf bezet
region allowf besov
region allowf benvh
region allowf behar
region allowf bemac

Keep flooding for null scope

Time to save the settings. Before closing of make sure that everything is correct by executing the region command. That will show you all the known regions and their folloding settings (it will end with a F). Make sure you can see a line with *^ F: this means that flooding is still allowed for messages without scope (or the null scope).

This is important to keep this while the network is still in development. But if we don’t start standardizing on the regions early on it will be hard to introduce it later, because we need the repeaters to accept the regional floods before people start to use them. Avoid the chicken-and-egg problem. Now save.

region save

See also