MeshCore node configurator for NorwayMeshCore node-konfigurator for Norge

Config for Norwegian MeshCore nodes, following the conventions Denmark and the Netherlands use. It targets the EU/UK Narrow preset already running here — 869.618 MHz at 62.5 kHz. Set up a repeater with the regions it relays for, or a companion with the channels for where you are.

Config for norske MeshCore-noder, etter konvensjonene Danmark og Nederland bruker. Den sikter på EU/UK Narrow-preseten som allerede kjører her — 869,618 MHz på 62,5 kHz. Sett opp en repeater med regionene den videresender for, eller en companion med de channels som gjelder der du er.

Identity

What the node calls itself, and whether it says where it is.

Hva noden kaller seg selv, og om den sier hvor den står.

name
NO-…

Place the node on the map to name it.

Sett noden på kartet for å gi den navn.

location
owner.info
guest.password
admin password
About the name and locationOm navnet og posisjonen

Place the node on the map to publish a location.

Sett noden på kartet for å publisere en posisjon.

nameNO-<postnummer> <place>, so a node on Skuiåsen in Bærums Verk is NO-1354 Skuiåsen. 32 bytes, or 24 with a location published; Norwegian letters cost two each. Takes effect after a reboot.

nameNO-<postnummer> <sted>, så en node på Skuiåsen i Bærums Verk blir NO-1354 Skuiåsen. 32 bytes, eller 24 med posisjon publisert; norske bokstaver koster to hver. Trer i kraft etter en reboot.

locationnone publishes nothing. position from map publishes the pin you placed, accurate to about a hundred metres. internal gps lets the node find its own position and set its clock, on a build with GPS. Either published mode puts the node on mesh maps and drops the name limit to 24 bytes.

locationnone publiserer ingenting. position from map publiserer pinnen du satte, nøyaktig på rundt hundre meter. internal gps lar noden finne sin egen posisjon og stille klokka, på en build med GPS. Begge publiserte modusene setter noden på mesh-kart og senker navnegrensa til 24 bytes.

owner.info — contact, antenna, power, mount. Anyone can query it, so no personal info.

owner.info — kontakt, antenne, strøm, montering. Hvem som helst kan spørre om den, så ingen personopplysninger.

Passwords — guest queries the node, admin reconfigures it. The factory admin password is password. Both stand in the config in the clear.

Passord — guest spør noden, admin konfigurerer den om. Fabrikkpassordet for admin er password. Begge står i klartekst i configen.

Radio

Advanced radio settings. Defaults are fine.

Avanserte radioinnstillinger. Standardverdiene holder.

tx power
dBm
coding rate
path.hash.mode
loop.detect
multi.acks
What these radio settings doHva disse radioinnstillingene gjør

tx powerset tx, the LoRa chip's output in dBm. Range 1–22, default 22, which is also the firmware's cap. Boards with an amplifier radiate more than this figure. A blank field emits no set tx, leaving the board default.

tx powerset tx, utgangseffekten fra LoRa-brikka i dBm. Område 1–22, standard 22, som også er firmwarens tak. Kort med forsterker stråler mer enn dette tallet. Et blankt felt sender ingen set tx, så kortets standard blir stående.

coding rate — the LoRa error-correction ratio 4/CR, the fourth field of set radio. Default 5: 25% redundancy and the shortest airtime. Each step up adds redundancy and lengthens the transmission by the same amount, so raise it if this node's transmissions are not getting through — 8 doubles both. CR is per node: a receiver reads it from the packet header and decodes any of them. Frequency 869.618 MHz, bandwidth 62.5 kHz and SF 8 are fixed by the mesh.

coding rate — LoRa-forholdet 4/CR for feilkorreksjon, fjerde felt i set radio. Standard 5: 25% redundans og kortest airtime. Hvert steg opp gir mer redundans og forlenger sendingen like mye, så skru den opp hvis sendingene fra denne noden ikke kommer fram — 8 dobler begge deler. CR er per node: en mottaker leser den fra pakkehodet og dekoder hvilken som helst. Frekvens 869,618 MHz, bandwidth 62,5 kHz og SF 8 er låst av meshet.

path.hash.mode — bytes per repeater in a packet's recorded path. 1 byte gives 256 distinct repeater ids and room for 64 hops, 2 bytes 65 536 and 32 hops, 3 bytes 16.7 million and 21 hops. The trade is collision probability against path length.

path.hash.mode — bytes per repeater i pakkas registrerte path. 1 byte gir 256 ulike repeater-id-er og plass til 64 hopp, 2 bytes 65 536 og 32 hopp, 3 bytes 16,7 millioner og 21 hopp. Avveiingen er kollisjonssannsynlighet mot path-lengde.

multi.acksset multi.acks 1 adds one extra retransmit of every acknowledgement, at that much more airtime. Off in the firmware, and emitted only when on.

multi.acksset multi.acks 1 legger på én ekstra retransmisjon av hver acknowledgement, mot tilsvarende mer airtime. Av i firmwaren, og sendes bare ut når den er på.

Node profile

Sizes the random back-off before repeating a flood. Based on neighbour count with SNR above 0.

Setter størrelsen på den tilfeldige back-offen før en flood sendes videre. Basert på antall naboer med SNR over 0.

txdelay
rxdelay
How the back-off works, and how to chooseHvordan back-off virker, og hvordan du velger

Every repeater that hears the same flood waits a random moment before repeating it, so they do not transmit on top of each other. txdelay scales that window for floods, direct.txdelay for direct packets. It buys latency and nothing else — it does not change what the node repeats.

Hver repeater som hører den samme flooden venter et tilfeldig øyeblikk før den sender den videre, så de ikke sender oppå hverandre. txdelay skalerer det vinduet for floods, direct.txdelay for direkte pakker. Det koster latency og ingenting annet — det endrer ikke hva noden videresender.

rxdelay 3 is on every profile, works from the receiving side, and touches floods only — a direct packet is never held. A flood that arrived weakly is held back so a repeater that heard it clearly transmits first, and the weak copy is then dropped as a duplicate.

rxdelay 3 ligger på alle profilene, virker fra mottakersiden og gjelder bare floods — en direkte pakke holdes aldri tilbake. En flood som kom inn svakt holdes tilbake så en repeater som hørte den tydelig sender først, og den svake kopien forkastes som duplikat.

The profiles are indexed by neighbour density. Run neighbors on the node and count the entries with SNR above 0: 4 of 16 is sparse, 19 of 50 is dense.

Profilene er indeksert på nabotetthet. Kjør neighbors på noden og tell oppføringene med SNR over 0: 4 av 16 er tynt, 19 av 50 er tett.

The four profiles are the ones on the wiki (linked from Contact), values and all. The window itself runs from zero to five times txdelay × the packet's own airtime, so a slower packet is given a wider spread. Both delays cap at 2.

De fire profilene er de som står på wikien (lenke under Contact), med verdier og alt. Selve vinduet går fra null til fem ganger txdelay × pakkas egen airtime, så en treg pakke får bredere spredning. Begge delays stopper på 2.

Regions

The region tag on this node's own traffic. Off for now.

Region-taggen på denne nodens egen trafikk. Av foreløpig.

region default
unscoped floods

Untagged traffic floods normally. Nothing is cut off.

Utagget trafikk flooder som normalt. Ingenting skjæres av.

What default scope changesHva default scope endrer

region defaultregion default <tag> tags what this node sends on its own, which for a repeater is mostly its adverts. It does not change which regions the node relays for; that is the tree on the left. Each button picks the tag at that level for where the node stands — country is no, city is the nearest one. off emits no line at all, so this node's own traffic goes out unscoped and every repeater floods it. That is the setting to use until the repeaters around you carry regions.

region defaultregion default <tag> tagger det denne noden sender selv, som for en repeater stort sett er advertene dens. Det endrer ikke hvilke regioner noden videresender for; det er treet til venstre. Hver knapp velger taggen på det nivået for der noden står — country er no, city er den nærmeste. off sender ingen linje i det hele tatt, så nodens egen trafikk går ut unscoped og hver repeater flooder den. Det er innstillingen å bruke til repeaterne rundt deg bærer regioner.

unscoped floods — what this repeater does with floods carrying no region tag. allow emits region allowf *, the firmware default, restated in case the node had it denied. cap keeps that line and adds set flood.max.unscoped, limiting untagged floods to that many hops. deny emits region denyf * instead, dropping them — which cuts off every node that has not set regions yet.

unscoped floods — hva denne repeateren gjør med floods uten region-tagg. allow sender region allowf *, firmwarens standard, gjentatt i tilfelle noden hadde den denied. cap beholder den linja og legger til set flood.max.unscoped, som begrenser utaggede floods til så mange hopp. deny sender region denyf * i stedet og forkaster dem — noe som skjærer av enhver node som ikke har satt regioner ennå.

Full node config

Send it over USB, type the lines into the app's remote admin CLI, or share the whole setup by copying this page's address.

Send den over USB, skriv linjene inn i remote admin-CLI-en i appen, eller del hele oppsettet ved å kopiere adressen til denne siden.

firmware

        
Sending this to a nodeÅ sende dette til en node

Over USB — on Chrome, Edge or Opera, Send over USB reads the firmware version off the node, picks the matching form, sends every line and reboots. Console opens the same connection without sending anything.

Over USB — i Chrome, Edge eller Opera leser Send over USB firmware-versjonen av noden, velger riktig form, sender hver linje og rebooter. Console åpner den samme forbindelsen uten å sende noe.

Line by line — in the MeshCore app, open the repeater under Contacts and use its remote admin CLI. One command per message, in the order above, checking each reply. Commands cap at 160 characters, the limit this block is built to; a longer line is truncated silently and returns put failed or unknown jump. Finish with region save, then reboot.

Linje for linje — i MeshCore-appen, åpne repeateren under Contacts og bruk remote admin-CLI-en dens. Én kommando per melding, i rekkefølgen over, og sjekk hvert svar. Kommandoer har en grense på 160 tegn, den samme grensa denne blokka er bygget til; en lengre linje kuttes stille og svarer put failed eller unknown jump. Avslutt med region save, så reboot.

To another person — this page's address carries the whole setup: both pins, both devices, every setting you have changed and any passwords you have set. Copy it from the address bar; it fits in a mesh message.

Til et annet menneske — adressen til denne siden bærer hele oppsettet: begge pinnene, begge enhetene, hver innstilling du har endret og passordene du har satt. Kopier den fra adressefeltet; den får plass i en mesh-melding.

firmware — 1.16.0+ emits the one-line region def; 1.15.x builds the same tree with one region put per region. There is nothing below 1.15: the commands go back to 1.10, but there region put leaves each region flood-denied, so this block would answer OK to every line and stop the repeater relaying what it was meant to carry. Send over USB sets this control itself; by hand, run ver.

firmware — 1.16.0+ sender ett-linjes region def; 1.15.x bygger det samme treet med én region put per region. Det finnes ingenting under 1.15: kommandoene går tilbake til 1.10, men der lar region put hver region stå flood-nektet, så blokka ville svart OK på hver linje og fått repeateren til å slutte å videresende det den skulle bære. Send over USB setter denne kontrollen selv; for hånd, kjør ver.

Region

Where the node stands decides which regions it relays for.

Hvor noden står avgjør hvilke regioner den videresender for.

Region tree
Place the node on the map and its regions appear here. Everything else configures without one.Sett noden på kartet, så dukker regionene dens opp her. Alt annet konfigureres uten.
Region settings, and what the numbers meanRegion-innstillinger, og hva tallene betyr
Neighbour reachNabo-rekkevidde

A node near a border also relays for the other side, and these say how near counts: 5 km from the next fylke and the node carries that fylke too — a repeater relays for it, a companion is offered its channels. It only ever adds; the regions the node stands in are always kept.

En node nær en grense videresender også for den andre siden, og disse sier hvor nær som teller: 5 km fra neste fylke og noden bærer det fylket også — en repeater videresender for det, en companion får tilbud om channels derfra. Det legger bare til; regionene noden står i beholdes alltid.

km km km km

0 turns a level off. Kommune starts there: at this mesh size its regions have almost no members to filter, and its tags are the longest.

0 slår av et nivå. Kommune starter der: i denne meshstørrelsen har regionene dens nesten ingen medlemmer å filtrere, og taggene er de lengste.

A region tells repeaters which floods to pass on. It does not limit who you can reach — every node carries eu and no — and it cuts nobody off: tags only add, and untagged traffic keeps flowing unless you pick region denyf * under unscoped floods. What narrow tags do is keep a local channel from flooding the country. Why regions →

En region forteller repeatere hvilke floods de skal sende videre. Den begrenser ikke hvem du kan nå — hver node bærer eu og no — og den skjærer ingen av: tagger legger bare til, og utagget trafikk går som før med mindre du velger region denyf * under unscoped floods. Det smale tagger gjør, er å hindre en lokal channel i å floode hele landet. Hvorfor regioner →

A kommunenummer is not a postnummer. Both are four digits and unrelated: the node name uses the postnummer, the region tags use the kommunenummer, so NO-1354 Skuiåsen tagged no-3201 is correct. The first two digits of a kommunenummer are its fylke, so no-3201 is inside no-32 by construction.

Et kommunenummer er ikke et postnummer. Begge har fire siffer og har ingenting med hverandre å gjøre: nodenavnet bruker postnummeret, regiontaggene bruker kommunenummeret, så NO-1354 Skuiåsen tagget no-3201 er riktig. De to første sifrene i et kommunenummer er fylket, så no-3201 ligger inni no-32 av konstruksjon.

A tag means "relays for", not "is in". A node inside Oslo's city radius carries no-oslo from a ridge well outside town, one between two cities carries both, and one 5 km from Buskerud carries no-33 too. Expect neighbours across water — over water is the best path a radio gets.

En tagg betyr "videresender for", ikke "ligger i". En node innenfor byradiusen til Oslo bærer no-oslo fra en ås godt utenfor byen, en mellom to byer bærer begge, og en 5 km fra Buskerud bærer no-33 også. Regn med naboer over vann — over vann er den beste veien en radio får.

The bare three-letter tag is the single nearest airport — osl, bgo, trd — with no no- in front, because an airport code is already unique worldwide. Landsdel, fylke, kommune, city and airport are independent overlays under no, not a nesting, so every tag is listed in full; the codes are current since the county reform of January 2024.

Den bare tre-bokstavstaggen er den ene nærmeste flyplassen — osl, bgo, trd — uten no- foran, fordi en flyplasskode allerede er unik verden over. Landsdel, fylke, kommune, city og flyplass er uavhengige lag under no, ikke en nøsting, så hver tagg listes i sin helhet; kodene er gjeldende siden fylkesreformen i januar 2024.

region scope

secret

Add →