Hallo zusammen
Vorgeschichte / wichtige Information zur Fehlersuche
Bevor ich an meinem Standort einen eigenen Repeater installiert habe, hatte ich bereits versucht, MeshCore mit einem Seeed Studio SenseCAP T1000-E sowie einem Heltec V4 zu verwenden.
Dabei zeigte sich bereits genau das Problem, das ich heute noch habe:
Der Empfang funktionierte an meinem Standort, teilweise sogar über grössere Entfernungen, aber meine eigenen Nachrichten wurden offenbar von niemandem empfangen.
Zunächst ging ich deshalb davon aus, dass an meinem Standort schlicht die Verbindung zum bestehenden Mesh zu schwach bzw. die Entfernung zu den vorhandenen Repeatern zu gross ist. Genau aus diesem Grund habe ich später den SenseCAP Solar Node P1 als eigenen Dachrepeater installiert und diesen zusätzlich mit der Delock 12504 LoRa 868 MHz 8-dBi-Antenne ausgerüstet.
Interessant und für die Fehlersuche sehr wichtig ist jedoch Folgendes:
Wenn ich meinen Standort verlasse und mich mit dem SenseCAP T1000-E oder Heltec V4 in die Nähe eines anderen funktionierenden Repeaters begebe, kann ich Nachrichten senden und andere Teilnehmer können mich empfangen.
Das Problem scheint also standortabhängig zu sein.
Deshalb gehe ich momentan davon aus, dass die grundsätzliche Konfiguration meiner Companion-Geräte und Apps wahrscheinlich korrekt ist. Ich habe das Verhalten sowohl unter Android als auch iOS und mit KiekR bzw. der MeshCore App getestet.
Vereinfacht dargestellt:
An meinem Standort:
Empfang aus dem Mesh → funktioniert
Eigene Nachrichten ins Mesh → offenbar nicht
An anderen Standorten in der Nähe eines funktionierenden Repeaters:
Empfang → funktioniert
Senden → funktioniert ebenfalls
Das Verhalten trat bereits auf, bevor der SenseCAP Solar Node P1 installiert wurde.
Der P1 wurde letztlich gerade deshalb angeschafft: Ich wollte an meinem Standort einen lokalen Repeater bereitstellen, damit meine Companion-Geräte einen zuverlässig erreichbaren Einstiegspunkt ins bestehende Mesh haben.
Trotz des eigenen P1 auf dem Dach und der deutlich grösseren 8-dBi-Antenne besteht das ursprüngliche Problem jedoch weiterhin.
Das lässt mich inzwischen daran zweifeln, dass ein Hardwaredefekt meines P1 allein die Ursache sein kann. Andererseits möchte ich natürlich trotzdem ausschliessen, dass beispielsweise dessen TX-Seite nicht korrekt funktioniert.
Für mich stellt sich deshalb vor allem die Frage:
Warum kann mein Standort offenbar Pakete aus dem bestehenden Mesh sehr gut empfangen, während Pakete von meinem Standort nicht oder nicht ausreichend in die Gegenrichtung gelangen?
Könnte hier eine asymmetrische Funkverbindung zu den erreichbaren Repeatern vorliegen? Oder gibt es aufgrund der aktuellen Region-, Flood- oder Routing-Konfiguration eine andere plausible Erklärung dafür, dass der Downlink zu meinem Standort funktioniert, der Uplink ins Mesh jedoch nicht?
Eigentliches Problem
ich versuche seit einiger Zeit, ein merkwürdiges Problem mit meinem MeshCore-Setup einzugrenzen, und wäre froh um eure Einschätzung, bevor ich unnötig Hardware ersetze.
Das grundlegende Problem ist:
Ich kann Nachrichten aus grossen Teilen der Schweiz und teilweise sogar aus Deutschland empfangen, aber offenbar kann niemand meine Nachrichten lesen.
Ich möchte deshalb herausfinden, ob ich ein Konfigurations-, Routing-, Region-/Flood-Problem habe oder ob möglicherweise die TX-/Sendestufe meines SenseCAP Solar Node P1 einen Defekt hat.
Hardware des Repeaters
Repeater:
SenseCAP Solar Node P1
Antenne:
Delock 12504 LoRa 868 MHz
- Frequenzbereich: 860–870 MHz
- Gewinn: 8 dBi
- Rundstrahlantenne
- Outdoor
- N-Anschluss
Antennenkabel:
TRENDnet TEW-L202, H/W V2.1R
- Länge: 2 Meter
- zwischen SenseCAP Solar Node P1 und Delock 12504
Ich habe bewusst eine relativ grosse 8-dBi-Antenne montiert, weil ich zunächst davon ausgegangen bin, dass mein Problem möglicherweise einfach zu wenig Antennengewinn bzw. zu geringe Sende-/Empfangsreichweite ist.
Da ich inzwischen aber sehr viel Traffic aus teilweise grossen Entfernungen empfangen kann, bin ich mir nicht mehr sicher, ob die Antenne bzw. Reichweite überhaupt das Problem ist.
Standort
Der Repeater befindet sich auf einem Dach und soll primär lokal bzw. regional weiterleiten. Er ist nicht als exponierter Berg-/Backbone-Repeater gedacht.
Standort:
Breitengrad: 47.112600
Längengrad: 7.836700
Höhe: 646 m ü. M.
Deshalb habe ich bewusst:
txdelay = 0.5
und nicht beispielsweise 2.0 für einen Berg-/Backbone-Repeater gewählt.
Software / Firmware
Auf dem SenseCAP Solar Node P1 läuft:
MeshCore Repeater v1.17.1
Zusätzlich habe ich den für den P1 angepassten Bootloader mit OTA-Fix von MeshCore installiert.
Radioeinstellungen
Die Radioeinstellungen sind:
869.618 MHz
BW 62.5 kHz
SF 8
CR 8
Gesetzt wurde:
set radio 869.618,62.5,8,8
TX-Leistung:
set tx 20
also:
20 dBm TX Power
Duty Cycle:
set dutycycle 10
also:
10 % Duty Cycle
Repeater-Funktion:
set repeat on
Delay-Einstellungen
Da es sich um einen lokalen/regionalen Dachrepeater handelt:
set txdelay 0.5
Zusätzlich:
set direct.txdelay 0.2
set rxdelay 0
Damit sind aktuell:
txdelay: 0.5
direct.txdelay: 0.2
rxdelay: 0
Path Hash
Da wir im Schweizer Mesh mit 2 Byte arbeiten:
set path.hash.mode 1
Also ausdrücklich:
path.hash.mode = 1 = 2 Byte
Auch beim Companion bzw. in den Apps ist 2 Byte aktiviert.
Loop Detection
Gesetzt wurde:
set loop.detect moderate
Also:
loop.detect = moderate
Flood-Einstellungen
Aktuell habe ich folgende Werte:
set flood.max 14
set flood.max.unscoped 3
set flood.max.advert 8
set flood.advert.interval 49
Damit:
flood.max: 14
flood.max.unscoped: 3
flood.max.advert: 8
flood.advert.interval: 49
Wichtig:
Ich blockiere flood * nicht vollständig.
Meine Idee war, unscoped Flood nicht grundsätzlich abzuschneiden, sondern über:
flood.max.unscoped = 3
zu begrenzen.
Regionskonfiguration
Ursprünglich hatte ich:
*
→ europe
→ ch
→ ch-de
Die gewünschte aktuelle Struktur ist deshalb:
*
→ europe
→ ch
→ ch-de
Dazu wurden unter anderem folgende Befehle verwendet:
region put europe *
region put ch europe
region put ch-de ch
Flood wurde für die verbleibenden Regionen freigegeben:
region allowf *
region allowf europe
region allowf ch
region allowf ch-de
Home und Default Region
Der Repeater soll zur Schweiz gehören.
Deshalb:
region home ch
und:
region default ch
Somit habe ich:
Home Region: ch
Default Region: ch
Anschliessend wurde die Regionskonfiguration gespeichert:
region save
Zusammenfassung der relevanten Einstellungen
Die von mir verwendete Konfiguration sieht damit zusammengefasst folgendermassen aus:
set radio 869.618,62.5,8,8
set tx 20
set dutycycle 10
set repeat on
set txdelay 0.5
set direct.txdelay 0.2
set rxdelay 0
set path.hash.mode 1
set loop.detect moderate
set flood.max 14
set flood.max.unscoped 3
set flood.max.advert 8
set flood.advert.interval 49
Regions:
region put europe *
region put ch europe
region put ch-de ch
region allowf *
region allowf europe
region allowf ch
region allowf ch-de
region home ch
region default ch
region save
Die Regionsstruktur sollte somit sein:
* → europe → ch → ch-de
Home und Default sind beide:
ch
Companion
Als Companion verwende ich einen:
Seeed Studio SenseCAP Card Tracker T1000-E
Getestet habe ich sowohl mit iPhone als auch Android.
Verwendet werden dabei MeshCore/KiekR bzw. entsprechende MeshCore-Apps.
In den Apps ist:
Region = CH
und:
Path Hash = 2 Byte
eingestellt.
Auch die Channels haben nach meinem Verständnis den korrekten Region Scope.
Ein wichtiges Beispiel ist:
#chtest
Dort ist die Region:
ch
gesetzt.
Ich habe auch Channels mit europe getestet.
Was funktioniert?
Der Empfang funktioniert erstaunlich gut.
Ich empfange Nachrichten aus verschiedenen Teilen der Schweiz und teilweise sogar aus Deutschland.
Ich weiss beispielsweise, dass Nachrichten unter anderem über folgende Repeater bei mir ankommen:
MS Repeater 1
Felix / 18 Esel
HB9CL Repeater
RX-seitig scheint die Kombination aus P1, Kabel und Delock-Antenne daher ziemlich gut zu funktionieren.
Und genau deshalb verstehe ich mein TX-Problem nicht.
Das eigentliche Problem
Wenn ich selbst eine Nachricht schreibe, beispielsweise im:
#chtest
mit Region:
ch
zeigt die App zunächst an, dass die Nachricht versendet wurde.
Bei der Nachricht sehe ich:
zwei Haken und dahinter eine 1.
Trotzdem scheint niemand meine Nachricht tatsächlich lesen zu können.
Das Problem tritt auf, obwohl:
- der Channel auf Region ch steht
- der Companion auf CH steht
- 2-Byte Path Hash aktiviert ist
- der Repeater Home Region ch hat
- der Repeater Default Region ch hat
- ch für Flood erlaubt ist
- * nicht vollständig blockiert wird
- flood.max.unscoped lediglich auf 3 begrenzt ist
- die Schweizer Radioeinstellungen verwendet werden
- der Repeater sehr viel Traffic von weit entfernten Stationen empfängt
Das Ganze wirkt deshalb auf mich sehr asymmetrisch:
RX funktioniert sehr gut.
Meine eigenen TX-Nachrichten scheinen dagegen nicht richtig ins Mesh zu gelangen bzw. nicht bei anderen Nutzern anzukommen.
Was bedeuten zwei Haken + 1 genau?
Das wäre eine meiner wichtigsten Fragen.
Wenn ich nach dem Senden:
✓✓ 1
sehe:
Was bedeutet das technisch genau?
Bedeutet die 1, dass mindestens ein anderer MeshCore-Node bzw. Repeater meine Funkübertragung tatsächlich empfangen bzw. bestätigt hat?
Oder kann dieser Status auch entstehen, ohne dass bewiesen ist, dass ein anderer Repeater mein RF-Paket erfolgreich empfangen hat?
Das wäre für die Fehlersuche sehr wichtig.
Könnte die TX-/PA-Stufe des P1 defekt sein?
Ich frage mich inzwischen, ob möglicherweise die Sendestufe / PA des SenseCAP Solar Node P1 defekt oder stark beeinträchtigt sein könnte.
Ist es technisch möglich, dass der SX1262 bzw. der P1 über die externe Antenne ausgezeichnet empfängt, während beim Senden nur eine sehr geringe oder gar keine brauchbare HF-Leistung an der Antenne ankommt?
Das würde zumindest erklären, warum ich sehr weit entfernte Stationen empfangen kann, aber meine eigenen Nachrichten niemand sieht.
Andererseits:
Wenn die zwei Haken + 1 tatsächlich bedeuten, dass mindestens ein anderer Node/Repeater meine Nachricht über Funk bestätigt hat, wäre eine komplett defekte Sendestufe vermutlich eher unwahrscheinlich.
Deshalb würde mich sehr interessieren, was diese Anzeige tatsächlich aussagt.
Antenne und Kabel
Nochmals zur HF-Seite:
P1
→ TRENDnet TEW-L202 H/W V2.1R
→ 2 m Kabel
→ Delock 12504
→ 8 dBi
TX ist bewusst auf:
20 dBm
eingestellt.
Ich bin also nicht auf die maximale mögliche Ausgangsleistung des P1 gegangen.
Die grössere Antenne habe ich ursprünglich installiert, weil ich dachte, dass mein Problem möglicherweise zu wenig Antennenleistung bzw. Reichweite ist.
Inzwischen frage ich mich allerdings, ob ich damit lediglich den Empfang verbessert habe, während möglicherweise auf der TX-Seite ein anderes Problem besteht.
Bevor ich einen zweiten P1 kaufe
Ich überlege mir inzwischen, einen zweiten SenseCAP Solar Node P1 zu kaufen bzw. den vorhandenen zu ersetzen, um einen Hardwaredefekt der TX-Stufe auszuschliessen.
Bevor ich aber unnötig Geld ausgebe, würde ich gerne sämtliche Konfigurations- und Routingmöglichkeiten ausschliessen.
Deshalb meine Fragen an euch:
- Seht ihr in meiner oben aufgeführten Konfiguration einen offensichtlichen Fehler?
- Ist flood.max = 14 für einen lokalen/regionalen Dachrepeater sinnvoll?
- Kann flood.max.unscoped = 3 meine Nachrichten beeinflussen, obwohl beispielsweise #chtest ausdrücklich auf Region ch gesetzt ist?
- Ist die Hierarchie
* → europe → ch → ch-de
so korrekt?
- Ist es sinnvoll, sowohl
region home ch
als auch
region default ch
zu verwenden?
- Ist path.hash.mode = 1, also 2 Byte, für das aktuelle Schweizer Mesh korrekt?
- Was bedeutet zwei Haken + 1 nach dem Senden technisch genau?
- Gibt es unter MeshCore Repeater v1.17.1 eine CLI-Möglichkeit oder einen Debug-/Logging-Modus, mit dem ich sehen kann, ob der P1 tatsächlich mit den eingestellten 20 dBm sendet?
- Kann ich feststellen, welcher Repeater meine Nachricht tatsächlich empfangen bzw. weitergeleitet hat?
- Gibt es eine Möglichkeit, TX- und RX-Pakete direkt am Repeater zu beobachten?
- Würdet ihr für einen Test flood.max, flood.max.unscoped oder andere Einstellungen vorübergehend wieder auf Default setzen?
- Gibt es eine bekannte Problematik mit dem SenseCAP Solar Node P1 + MeshCore Repeater v1.17.1 + OTA-Fix-Bootloader bezüglich TX?
- Könnte das Antennenkabel bzw. ein Anschlussproblem ein Verhalten verursachen, bei dem RX noch hervorragend funktioniert, TX aber stark beeinträchtigt ist?
- Oder würdet ihr an diesem Punkt tatsächlich einen zweiten P1 zum Vergleich verwenden, um einen Defekt der TX-/PA-Stufe auszuschliessen?
Was ich gerne gezielt testen würde
Am hilfreichsten wäre für mich ein kontrollierter Test:
T1000-E → mein P1 → bekannter entfernter Repeater/Benutzer
Dabei würde ich gerne für jeden Schritt feststellen können:
1. T1000-E hat gesendet
↓
2. Mein P1 hat das Paket empfangen
↓
3. Mein P1 hat das Paket tatsächlich erneut ausgesendet
↓
4. Ein anderer Repeater hat dieses Paket empfangen
↓
5. Die Nachricht wurde weiter durchs Mesh transportiert
Und umgekehrt:
entfernter Benutzer/Repeater → mein P1 → T1000-E
Diese Richtung scheint bereits sehr gut zu funktionieren.
Wenn es eine Möglichkeit gibt, anhand von Logs, Packet Paths oder CLI-Ausgaben eindeutig festzustellen:
T1000-E → P1 RX → P1 TX → Remote Repeater RX
könnte man vermutlich sehr schnell unterscheiden, ob wir hier ein:
- Companion-TX-Problem
- P1-RX-Problem
- P1-TX-/PA-Problem
- Repeater-Konfigurationsproblem
- Region-/Scope-Problem
- Flood-/Routingproblem
- oder ein Problem bei den nachfolgenden Repeatern
haben.
Ich möchte das gerne systematisch diagnostizieren, bevor ich einfach den P1 ersetze und danach möglicherweise feststelle, dass ein neuer P1 exakt dasselbe Verhalten zeigt.
Hat jemand eine Idee oder vielleicht sogar einen ähnlichen Fall gehabt?
Insbesondere Erfahrungen von Leuten, die einen SenseCAP Solar Node P1 als MeshCore-Repeater im Schweizer Netzbetreiben, wären sehr hilfreich.
Danke für die Hilfe
Gruss
Alisha




