Naar inhoud springen

Repeater via CLI configureren

Uit MeshWiki

Deze pagina legt uit hoe u een MeshCore-repeater instelt via de seriële console (CLI). Na het doorlopen kunt u de repeater via de CLI bedienen, de belangrijkste instellingen aanpassen en weet u welke parameters helpen voor een stabiele werking. Ook als u meerdere repeaters naast elkaar gebruikt. De instructie is voor gebruikers die de repeater via USB aansluiten of via een T-Deck of smartphone-client op afstand beheren.

Wat hebt u nodig?

  • Repeater met MeshCore-firmware – Geflasht en bij voorkeur via USB aangesloten voor de eerste configuratie.
  • Toegang tot de CLI – Via de seriële console (bijv. config.meshcore.dev of flasher.meshcore.dev → Console), via pio device monitor (in een PlatformIO-project) of een ander terminalprogramma (bijv. PuTTY op Windows), of via een T-Deck/smartphone-client met remote administration.
  • Adminwachtwoord – Standaard is dat password; wijzig dit na de eerste login.

Stap 1: Verbinding maken met de repeater

Dit kan op verschillende manieren.

  • Browser: Sluit de repeater aan met USB. Ga met Chrome naar config.meshcore.io of flasher.meshcore.io, kies "Console" (of vergelijkbaar) en selecteer de juiste USB-poort.
  • Terminal (pio): Sluit de repeater aan met USB. In de MeshCore-projectmap: pio device monitor Indien gevraagd: gebruik 115200 baud, 8N1, geen flow control.
  • Op afstand, via radio: Log in met de Meshcore-app op telefoon of laptop die verbinding heeft met het mesh, of met bijvoorbeeld een T-Deck. Dan ga je naar Contacts en klik je de repeater aan. Hiervoor moet je een zo direct mogelijke verbinding hebben; als er veel repeaters tussen zitten zul je veel timeouts krijgen. Na inloggen klik je op Command Line.

Zodra de verbinding staat, verschijnt er een prompt. Typ een commando en druk op Enter; de repeater reageert met een regel tekst.

Stap 2: Inloggen

Voer het adminwachtwoord in. De standaardwaarde is password. Na een geslaagde login kunt u alle configuratiecommando's gebruiken.

U kunt het wachtwoord wijzigen met:

password <uw_nieuwe_wachtwoord>

Bewaar geen standaardwachtwoord in productie; kies een sterk wachtwoord en noteer het veilig.

Stap 3: Basisconfiguratie

Naam en positie

Geef de repeater een herkenbare naam en eventueel coördinaten (handig voor kaarten en discovery):

set name <naam>
set lat <breedtegraad>
set lon <lengtegraad>

De naam mag maximaal 24 tekens zijn als u locatie gebruikt, anders 32. Gebruik geen emoji of ongebruikelijke tekens als die problemen geven.

Radio: frequentie, bandwidth, spreading factor

Stel de LoRa-parameters in volgens uw regio en regelgeving. Landelijk (Nederland) wordt vaak 869,618 MHz gebruikt met 62,5 kHz bandwidth, SF7 en CR5. Controleer de regionale instellingen. N.B.: als het bereiken van een eerste repeater lastig blijkt, kan CR8 instellen soms helpen dit te verbeteren.

Huidige waarden bekijken:

get radio

Waarden instellen (freq in MHz, bw in kHz, sf 5–12, cr 5–8):

set radio <freq>,<bw>,<sf>,<cr>

Voorbeeld landelijk (869,618 MHz, 62,5 kHz, SF7, CR5 de huidige NL instellingen):

set radio 869.618,62.5,7,5

Let op: Na het wijzigen van radio-instellingen moet u de repeater herstarten met reboot.

Zendvermogen

Stel het zendvermogen in (in dBm). Te hoog kan in strijd zijn met de wet; raadpleeg de handleiding van uw board:

get tx
set tx <dbm>

Stap 4: Routing en vertragingen

Het vertragen van berichten kan helpen om storingen te voorkomen.

  • Heeft u twee of meer repeaters in elkaars bereik (bijv. een omni- en een Yagi-antenne)? Dan kunnen ze tegelijk proberen te herhalen en elkaar storen. De firmware biedt vertragingsinstellingen. Zo zenden repeaters niet gelijktijdig.
  • Vertragingen worden ook gebruikt om verkeer over lange afstanden te synchroniseren. Heel hoge repeaters kunnen in 1 hop enorme afstanden overbruggen. Als hetzelfde bericht via veel andere repeaters veel later aankomt, kan daar zo veel tijd tussen zitten, dat sommige repeaters het bericht weer als nieuw bericht zien, en opnieuw doorgeven. Om dat te vermijden krijgen hoge repeaters, die grote afstanden overbruggen, een extra vertraging.

Vertraging bij flood-verkeer (txdelay)

Hoe hoger de factor, hoe groter de wachttijd vóór het opnieuw uitzenden van flood-verkeer. Standaard 0.5.

get txdelay
set txdelay <waarde>

Waarde tussen 0 en 2.

Bij meerdere repeaters bij elkaar: geef de ene repeater een lagere waarde (bijvoorbeeld 0.3, zendt sneller), de andere een hogere (bijvoorbeeld 0.8, zendt later).

Bij een enkele repeater: afhankelijk van de hoogte.

Als je repeater net boven dakhoogte staat set txdelay 0.5
Als je repeater boven op een hoog gebouw staat set txdelay 1.0
Als je repeater 100m of hoger staat set txdelay 2.0

Vertraging bij direct verkeer (direct.txdelay)

Zelfde idee voor direct (point-to-point) verkeer. Standaard ongeveer 0.3 op de repeater.

get direct.txdelay
set direct.txdelay <waarde>

Verwerkingsvertraging bij ontvangst (rxdelay) – experimenteel

Met rxdelay stelt u een extra vertraging in (waarde 0–20) vóór de repeater een ontvangen flood-pakket verwerkt. Standaard 0 (uit). Geef op één van de twee repeaters een waarde zoals 3 of 5. Die repeater reageert dan later; dat geeft minder botsing.

get rxdelay
set rxdelay <waarde>

Samenvatting bij twee repeaters (bijv. omni + Yagi): Stel op de ene repeater lagere vertragingen in (txdelay 0.3, direct.txdelay 0.2, rxdelay 0) en op de andere hogere (txdelay 0.8, direct.txdelay 0.5, rxdelay 3). Zo zendt de eerste sneller, de tweede vult aan waar nodig.

Herhalen aan/uit

Standaard staat herhalen aan. U kunt het uitzetten met:

get repeat
set repeat off

Zet het weer aan met set repeat on als de repeater weer moet doorsturen.

Stap 5: Interferentie en zendtijd

Interferentiedrempel (int.thresh)

De repeater meet een ruisvloer. Ligt de huidige RSSI meer dan int.thresh dB boven die ruisvloer? Dan wordt het kanaal als "bezet" gezien. De repeater wacht dan met zenden (listen-before-talk). Standaard is de drempel 0 (uit).

get int.thresh
set int.thresh <waarde>

Waarde in dB (0 = uit; 8–15 is gangbaar). Voor de landelijke instellingen (869 MHz, SF8) is 10 een goed startpunt. Veel valse "kanaal bezet"-meldingen? Probeer lager (bijv. 8). Storende interferentie? Probeer hoger (12–15).

Airtimefactor (af) of dutycycle

Beperkt het percentage zendtijd (duty cycle). Standaard 1.0, wat een zendtijd van 50% betekent. Wettelijk mag het slechts 10% zijn, dus pas dit aan!

get af
set af <waarde>

Waarde tussen 0 en 9. Bij factor 9 is de zendtijd maximaal 10%, het wettelijke maximum.

In nieuwere firmware-versies is dit commando vervangen door dutycycle. Dat is de zendtijd in percentage van de totale tijd.

get dutycycle
set dutycycle <percentage>

Stap 6: Overige nuttige instellingen

Power saving (Repeater Only)

Staat standaard aan: het apparaat gaat tussen zendslagen in slaapstand. U kunt het uitzetten voor debugging of als u geen batterijbesparing nodig hebt:

powersaving
powersaving off

Flood-advertentie-interval

Hoe vaak de repeater zichzelf via flood bekendmaakt (in uren). Standaard 12. Zet dit op 50 uur om spamming door flood adverts te voorkomen. Pak geen veelvoud van 24 uur, want dat levert pieken overdag op.

get flood.advert.interval
set flood.advert.interval 50

Waarde tussen 3 en 168.

Maximum aantal hops voor flood

Hoe ver een flood-bericht mag doorreizen (aantal hops). Standaard 64.

get flood.max
set flood.max <waarde>

Waarde tussen 0 en 64.

Statistieken en status

Handig om te controleren of de repeater goed werkt:

stats-radio
stats-packets
ver
board

stats-radio toont o.a. ruisvloer en laatste RSSI/SNR; stats-packets toont tellers voor ontvangen en verzonden pakketten.

Overige repeater-commando's

  • advert – Stuurt handmatig een flood-advert uit zodat andere nodes de repeater kunnen ontdekken.
  • neighbors – Toont een lijst van nabije nodes (max. 8 recente adverts). Alleen op de repeater.
  • erase – Voert een factory reset uit (alle instellingen en opgeslagen gegevens worden gewist). Alleen via de seriële console; destructief, gebruik met zorg.

Instellingen opslaan

De meeste instellingen die u met set wijzigt, worden opgeslagen en blijven na een herstart behouden. Bij radio- en enkele andere wijzigingen moet u herstarten:

reboot

Zie ook