Meshtastic Solar Motherboard

Auf Basis des RAKwireless Coremoduls RAK4631 und der Baseboards RAK19007 bzw. RAK19003 kann sehr einfach ein solar-betriebener IoT-Knoten aufgebaut werden. Ich hatte im Beitrag Solar-betriebener LoRa-Knoten einen solchen Knoten für das LoRaWAN vorgestellt.

Die einzusetzenden Baseboards unterstützen zwar eine einfache Stromversorgung über ein Solarpanel, doch sollte wegen der höheren Stromaufnahme eines Meshtastic-Knotens die vom Solarpanel bereitgestellte Energie mit einem Solar-MPPT-Batteryloader optimal genutzt werden.

MPPT steht für „Maximum Power Point Tracking“ und bezeichnet die Nachführung des Punktes maximaler Leistung einer Solarzelle.

Vlastimil Slintak hat diesen Ansatz verfolgt und einen Solar-MPPT-Batteryloader für Li-Ion-, LiFePo4- oder LTO-Batterien mit einem RAK4630-Modul zu einem Meshtastic Solar Motherboard kombiniert (https://uart.cz/en/2534/solar-mppt-charger-for-meshtastic/). Das Board mit den Maßen 70 × 43 mm ermöglicht die Verwendung eines jeden Solarpanels mit einer Spannung von 7 bis 30 V und jeder Batterie mit einer Nennspannung von weniger als 5,6 V.

Unterstützt werden:

  • 1S Li-Ion und Li-Po-Batterie (Standard- und allgemein erhältliche Akkus, wahrscheinlich die am häufigsten verwendeten unter Meshtastic-Enthusiasten),
  • 1S LiFePo4 (gängige Batterien in Solaranlagen mit langer Lebensdauer und einer Kapazität von mehr als 100 Ah) oder
  • 1S und 2S Lithiumtitanatoxid, auch LTO genannt (Batterien, die auch im Winter bei Temperaturen unter -10 °C entladen und geladen werden können).

Das Board verfügt über Qwiic-Anschlüsse (SparkFun Qwiic bzw. Adafruit STEMMA) für I2C-Sensoren (z. B. Temperatur-, Feuchtigkeits- und Druckmessungen oder alle anderen von der Meshtastic-Firmware unterstützten Sensoren), einen USB-C-Anschluss (dieser wird nur für die Kommunikation verwendet, er ist nicht für die Stromversorgung der Platine vorgesehen) und eine RESET-Taste für einfache FW-Updates, zwei Signal-LEDs, einfachen Zugriff auf UART RX- und TX-Signale und eine SWD- Schnittstelle (Serial Wire Debug) für die FW-Entwicklung/das Debuggen und schließlich drei Befestigungslöcher für M3-Schrauben zur bequemen Montage der Leiterplatte in einer Box.

Hier ist das umfangreiche Datenblatt für das Meshtastic Solar Motherboard (https://pcb.uart.cz/datasheets/solar-node-revD-datasheet.pdf).

Sie finden das Meshtastic Solar Motherboard von Vlastimil im Lectronz-Onlineshop (https://lectronz.com/stores/uartcz).


2025-04-25/CK

Meshtastic Firmware V2.6.x

Der Frühling beginnt und damit steigt unser Wohlbefinden. Das Frühlingslicht steigert die Produktion von Glückshormonen wie Serotonin und Dopamin.

Pünktlich zu genau dieser Zeit bekommt der Meshtastic-Enthusiast mit der Firmware V2.6 die Meshtastic UI oder kurz MUI, die erste Version der brandneuen Benutzeroberfläche für Standalone-Geräte. Außerdem beinhaltet diese Firmware Version einen völlig neuen Routing-Algorithmus für Direktnachrichten.

Dieser als Next-Hop Routing for Direct Messages bezeichnete Routing-Algorithmus wird hier beschrieben. Da der Ansatz rückwärts-kompatibel ist, kann die Firmware der Knoten des Netzwerks sukzessive aktualisiert werden. Je mehr Knoten im Netzwerk aktualisiert sind, desto mehr werden Sie vom besseren Routing profitieren.

Von der Meshtastic UI können Sie sofort profitieren, weshalb ich diese hier auch vorstellen möchte.

Das MUI ist mit den folgenden Meshtastic-Geräten kompatibel:

  • Standalone LoRa Devices mit ESP32-S3 und a TFT Display: LilyGo T-Deck, Seeed SenseCAP Indicator, unPhone, PICOmputer, Elecrow 5″/7″ (experimental)
  • Kundenspezifische Geräte mit ESP32-S3, mit serieller Verbindung zu einem LoRa Transmitter: T-HMI, Mesh-Tab, „Replicator“ (ESP-4848S040), Makerfabs 4″
  • Embedded Linux Devices mit SPI/I2C and GPIOs: Raspberry Pi, Milk-V oder LuckFox mit TFT SPI und LoRa Hat
  • Linux Native Setups: PC mit Meshstick oder SIMRadio Simulation und X11 MUI

Ich konzentriere mich hier auf das LilyGo T-Deck PLus, dessen Erweiterung für mich sehr überzeugend ist.

Der Webflasher präsentiert sich nach Selektion der aktuellen Alpha-Version V2.6.4 in leicht abgeänderter Form. Die Auswahl des MUI ist nun möglich.

Auswahl des Meshtastic UI im WebFlasher

Nach dem Flashen der Firmware V2.6.4 kann das T-Deck Plus normal gestartet werden. Der Bootvorgang dauert etwas länger und nach dem Startscreen meldet sich das MUI mit dem Homescreen:

Homescreen oberer Teil
Homescreen unterer Teil

Im Homescreen sind bereits wesentliche Statusinformationen zu sehen:

  • Anzahl neuer Nachrichten
  • Zahl der Nodes online
  • Datum und Uhrzeit
  • LoRa Kanal
  • Güte des Kommunikationskanals (SNR und RSSI)
  • Akustisches Signal beim Eintreffen einer neuen Nachricht
  • GPS-Daten
  • Status der SD-Card (wird für das Kartenmaterial benötigt)

Die Liste der Nodes zeigt der folgende Menupunkt. Hier sind gleichzeitig Informationen zum jeweiligen Node zu sehen.

Liste der Nodes

Im nächsten Menupunkt sind die Channels gelistet. Ich arbeite hier nur mit dem Primary Channel. Wählt man diesen aus, dann werden die dort erhaltenen Nachrichten sichtbar.

Liste der Kanäle
Nachrichtem im betreffenden Kanal

Der folgende Menupunkt zeigt eine Location Map, das ist die Anordnung der empfangenen Nodes in einer Kartendarstellung.

Das hier verwendete Map Tile Starter Kit enthält eine Grundausstattung an Karten in verschiedenen Stilen für Meshtastic UI-fähige Geräte mit SD-Kartenunterstützung. Jede Zip-Datei enthält die Zoomstufen 1 – 6 der Erdoberfläche, sodass Sie herauszoomen und sehen können, in welches Land Sie gebeamt wurden. Wählen Sie eine Zoomstufe größer 6, dann ist keine Kartendarstellung mehr vorhanden.

Kartendarstellung Zoom Level 6
„Kartendarstellung“ Zoom Level 7

Die Kartenkacheln liegen im .png-Format mit einer Größe von 256×256 Pixel und den Zoomstufen 1 – 20 vor, wobei 1 die gesamte Erde und 20 ein mittelgroßes Gebäude darstellt.

Wie Sie das hier verwendete Kartenmaterial um weitere Zoomstufen erweitern können, ist unter https://github.com/meshtastic/device-ui/tree/master/maps#downloading-tiles beschrieben.

Der letzte Menupunkt betrifft die Settings und Tools. Über die Settings kann das Meshtastic Device komplett konfiguriert werden. Bei den Tools stehen Mesh Detector, Signal Scanner, Trace Route, Statistics und Packet Log zur Verfügung.

Settings
Tools

Die folgenden Screenshots zeigen Mesh Detector, Signal Scanner und Trace Route. Mit dem Mesh Detector können Nodes in der Umgebung gesucht werden. Der Signal Scanner zeigt SNR und RSSI für die gewählte Verbindung an und Trace Route listet den Verbindungsweg von der Quelle zum Ziel.

Mesh Detector
Signal Scanner
Trace Route

Mit dem MUI wird aus dem LilyGo T-Deck Plus ein wirklich autonom arbeitender Meshtastic Knoten, der keine Verbindung zu einem Mobilphone mehr benötigt.


In der Zwischenzeit habe ich die V2.6.4 auch auf einem SenseCAP Indicator installiert. Das Gerät verfügt über keine Tastatur, doch mit dem Soft-Keyboard können die Eingaben recht ordentlich vorgenommen werden.


2025-04-03/CK

Post im (Meshtastic-) Postfach?

Ein mit einem Display ausgestatteter Meshtastic-Knoten zeigt eingegangene Messages auf diesem an. Wählt man sich mit einem Meshtastic-Client (bspw. einem Smartphone) ein, dann kann man eine eingegangene Message incl. des Empfangszeitpunktes lesen. Wird eine Message zu spät gelesen, dann kann sie bereits obsolet sein. Das Ereignis ist einfach vorbei.

Mit dem Modul External Notification erhält man die Möglichkeit, beim Eintreffen einer Textnachricht eine externe Benachrichtigung abzusetzen. Die Benachrichtigung kann durch eine LED, einen Buzzer oder einen Vibrationsmotor erfolgen.

Mit dem Meshtastic Kit von SeeedStudio ist sehr schnell ein geeignetes Experimentierumfeld geschaffen. Zur Komplettierung habe ich noch eine M5Stack ENV Unit über I2C angeschlossen.

Bei der Konfiguration des Moduls External Notification sind den eingesetzten Benachrichtigungselementen (LED, Buzzer, Vibrationsmotor) IO-Pins zuzuweisen.

Hier ist es wichtig, die ESP-Notation zu verwenden. Bspw. muss einer an D0 angeschlossenen LED Pin (GPIO)1 zugewiesen werden. Mich hat das anfangs etwas verwirrt und entsprechend Zeit gekostet.

XIAO ESP32-Se Pinout

Die folgenden Abbildungen zeigten das Display des Meshtastic-Knotens in verschiedenen Situationen.

Wie am folgenden Pinout des XIAO-Expansionsboards zu sehen ist, steht nur Pin D0 zur freien Verfügung. Der interne Buzzer ist mit D3 verbunden und wenn auf die SD Card verzichtet wird, dann können auch D2 und D8-D10 noch eingesetzt werden.

XIAO Expansionsboard Pinout

Ich möchte zur Signalisierung eine LED mit Vorwiderstand, einen Piezo-Buzzer oder einen Vibrationsmotor einsetzen. Dem auf dem XIAO-Expansionsboard befindlichen Buzzer konnte ich keinen Ton entlocken und habe deshalb einen externen Piezo-Buzzer eingesetzt. Alle drei Elemente reagieren auf einen Hi-Pegel am betreffenden digitalen Ausgang.

Die beiden folgenden Screenshots zeigen die Konfiguration des Moduls External Notification für den Piezo-Buzzer. Der Piezo-Buzzer ist an D3 und GND angeschlossen. Bei der Konfiguration ist GPIO4 (des ESP32-S3) zu aktivieren. Die Dauer eines Beeps ist 150 ms und die der Ausgabe 1 s. Es werden als mehrere kurze Beeps bein Eintreffen einer Textnachricht ausgegeben.

Für die anderen Signalisierungselemente kann vergleichbar vorgegangen werden.


2025-03-28/CK

Solar-betriebener Meshtastic-Knoten

Der im Blogpost Meshtastic – Erfassen, Versand und Visualisierung von Messwerten beschriebene Meshtastic-Knoten wird hier bezüglich der Stromaufnahme unter verschiedenen Umgebungsbedingungen untersucht.

Da das externe Sensormodul hinsichtlich der Stromaufnahme (noch) nicht optimiert ist, starte ich den Solartest ohne diesem Modul.

Eine Überschlagsrechnung zeigt, dass mit einem 5 V/3 W-Solarpanel und einem Li-Ion-Akku 18650 der Strombedarf gedeckt sein könnte. Die theoretische Laufzeit von ca. 3 Tagen ist für die Überbrückung einer Dunkelflaute allerdings knapp bemessen.

Weiterlesen

Audio-Zusammenfassungen mit Google NotebookLM

Heute habe ich Google’s NotebookLM ausprobiert. NotebookLM ist ein KI‑basierter Assistent für vielfältige Aufgaben, wie dem Lesen von Quellen, dem Erstellen von Notizen und gemeinsam mit NotebookLM dem Verfeinern und Organisieren Ihrer Ideen. Mit der Audio-Zusammenfassung können die Quellen mit nur einem Klick in aufschluss- und detailreiche Diskussionen (z.Z. nur in Englisch) verwandelt werden.

Hier ist als Beispiel eine Zusammenfassung meiner Meshtastic-Beiträge unter https://ckblog2016.net/:

Laden Sie einfach die Audio-Zusammenfassung unter https://bit.ly/4iDgt8Z.


2025-03-09/CK

Meshtastic – Erfassen, Versand und Visualisierung von Messwerten

Im Blogbeitrag „Meshtastic – Erfassung und Versand von Messwerten“ hatte ich die Erweiterung eines Meshtastic-Knotens mit Sensoren und den Versand der erfassten Messwerte betrachtet. Damit stehen die Messwerte im Meshtastic-Netzwerk zur Verfügung.

Sollen die erfassten Messwerte visualisiert oder anderweitig weiterverarbeitet werden, dann müssen sie außerhalb des Meshtastic-Netzwerks zur Verfügung gestellt werden. Ein mit einer MQTT-Schnittstelle ausgestatteter Meshtastic-Knoten kann die Verbindung ins Internet ermöglichen. Auf diese Weise lassen sich örtlich weit auseinanderliegende (lokale) Meshtastic-Netzwerke verbinden und/oder erfasste Daten zentral auswerten.

Der Off-Grid-Aspekt geht in diesem Fall allerdings verloren.

Bei den folgenden Betrachtungen gehe ich von dem in der Abbildung gezeigten Meshtastic-Netzwerk aus.

Meshtastic-Netzwerk

Mein Netzwerk besteht aus verbreiteten Meshtastic-Devices. Eine kommentierte Übersicht finden Sie unter Meshtastic Erfahrungen: Boards und Module.

Hervorzuheben sind hier der RAKwireless-Sensorknoten auf Basis eines Mikrocontrollers RAK4631 (nRF52840), der Messwerte über verschiedene Sensoren erfasst und diese im Meshtastic-Netzwerk zur Verfügung stellt, und der Heltec LoRa32 V3 Knoten auf Basis eines ESP32-S3, der eine WiFi-Schnittstelle zur Verbindung mit einem Router und über diesen mit dem Internet ermöglicht. Die anderen Meshtastic-Knoten (in der Abbildung nicht eingefärbt) empfangen die Nachrichten des Sensorknotens und dienen dem üblichen Nachrichtenaustausch.

Um den Meshtastic-Knoten autonom betreiben zu können, wird dieser über eine Solarzelle mit Batteriepufferung versorgt. Nachdem der ursprünglich vorgesehene Waveshare Solar Power Manager (B) nicht die erwarteten Ergebnisse gebracht hat, habe ich einen DFRobot Solar Power Manager 5 V eingesetzt (siehe Abbildung).

Speisung des Meshtastic-Knoten durch einen DFRobot Solar Power Manager 5 V

Der Ladezustand des eingesetzten NCR18650 Li-Ion-Akkus muss separat überwacht werden. Hierzu verwende ich einen INA219, der über den I2C-Bus mit dem Grove-Anschluss des RAK1920 Sensor Adapter Modul verbunden wird (siehe Abbildung).

Messung des Ladezustands des LiPo-Akkus mit einem INA219-Sensor

Der mit einem I2C-Interface ausgestattet SHTC3-Sensor zur Messung von Temperatur und relativer Feuchte kann über einen I2C-Hub (z.B. von M5Stack) mit dem Grove-Anschluss des RAK1920 Sensor Adapter Moduls verbunden werden.

Der Temperatursensor DS18B20 ist Bestandteil des im Blogbeitrag „Meshtastic – Erfassung und Versand von Messwerten“ beschriebenen externen Sensormoduls, welches über ein serielles Interface mit dem RAK1920 Sensor Adapter Modul verbunden wird.

Beide Mikrocontroller, der Meshtastic-Knoten und das externe Sensormodul, werden vom DFRobot Solar Power Manager 5 V über ein USB-A- zu 2x USB-C-Kabel mit Spannung versorgt.

Als MQTT-Broker verwende ich HiveMQ (https://broker.hivemq.com). Es ergibt sich damit die in der Abbildung gezeigte Zusammenstellung.

Vom Meshtastic-Gateway werden mit dem Token msh/2/json/LongFast verschiedene MQTT-Messages versendet (published). Ein MQTT-Client abonniert (subscribed) diese Tokens und kann damit die übermittelten Nachrichten weiterverarbeiten.

Ich habe auf dem PC den MQTT-Client MQTTX installiert und kann damit die empfangenen Messages anzeigen. Abgeleitet von den aktivierten Meshtastic-Modulen empfange ich vom Knoten 2692927950 (RAK1) die folgenden Messages:

Telemetry Message:

{
  "channel": 0,
  "from": 2692927950,
  "hop_start": 3,
  "hops_away": 0,
  "id": 587303572,
  "payload": {
    "barometric_pressure": 0,
    "current": -0.200000002980232,
    "gas_resistance": 0,
    "iaq": 0,
    "lux": 0,
    "radiation": 0,
    "relative_humidity": 29.2199993133545,
    "temperature": 24.4500007629395,
    "voltage": 4.19999980926514,
    "white_lux": 0,
    "wind_direction": 0,
    "wind_gust": 0,
    "wind_lull": 0,
    "wind_speed": 0
  },
  "rssi": -54,
  "sender": "!fa66367c",
  "snr": 6.75,
  "timestamp": 1740267577,
  "to": 4294967295,
  "type": "telemetry"
}

TextMessage:

{
  "channel": 0,
  "from": 2692927950,
  "hop_start": 3,
  "hops_away": 0,
  "id": 3687588499,
  "payload": {
    "text": "DS18B20 Temp =  24.8 °C\n"
  },
  "rssi": -54,
  "sender": "!fa66367c",
  "snr": 6.25,
  "timestamp": 1740267577,
  "to": 4294967295,
  "type": "text"
}

Position Message:

{
  "channel": 0,
  "from": 2692927950,
  "hop_start": 3,
  "hops_away": 0,
  "id": 1306258064,
  "payload": {
    "altitude": 423,
    "latitude_i": 471921490,
    "longitude_i": 88150580,
    "precision_bits": 32,
    "time": 1740266796
  },
  "rssi": -54,
  "sender": "!fa66367c",
  "snr": 5.75,
  "timestamp": 1740266796,
  "to": 4294967295,
  "type": "position"
}

In den drei Messages sind alle von den Sensoren erfassten Messwerte enthalten. Vom Sensor SHTC3 werden Temperatur (temperature) und rel. Luftfeuchtigkeit (relative_humidity) erfasst. Der Sensor INA219 erfasst den Ladezustand der Batterie mit Spannung (voltage) und Strom (current).

Der Temperaturmesswert des DS18B20 Sensors wird vom externen Sensormodul als Textstring übergeben und folglich auch als Textmessage (text) versendet.

Die Positionsdaten sind hier fest vorgegeben und werden in der Position Message (altitude, latitude_i, longitude_i) versendet.

Die MQTT-Messages enthalten weitere Daten, die bei Bedarf auch noch ausgewertet werden können.

Ich verwende zum Zugriff auf den MQTT-Broker und zur Visualisierung der erfassten Messwerte die IoT-Plattform Datacake. Datacake ist eine vielseitig einsetzbare Low-Code-IoT-Plattform, die keine Programmierkenntnisse und nur minimalen Zeitaufwand erfordert, um benutzerdefinierte IoT-Anwendungen für den Desktop oder Mobil Devices zu erstellen.

Die folgenden Abbildungen zeigen ein Dashboard für einen Desktop-PC und zwei Screenshots des Dashboards für ein Smartphone.

Dashboard für den Desktop
Dashboard für Smartphone-1
Dashboard für Smartphone-2

Die verwendete Software finden Sie unter https://github.com/ckuehnel/Meshtastic.

Über den öffentlichen Link können Sie
das Dashboard aufrufen.


Das Verhalten des Meshtastic-Knotens unter verschiedenen Umgebungsbedingungen beschreibe ich im Blogpost Solar-betriebener Meshtastic-Knoten.


2025-03-14/CK

Meshtastic Knoten reist von Zürich nach Dresden und zurück

Im Sommer des vergangenen Jahres hatte ich Meshtastic Knoten mit auf meiner Reise von Zürich an die Ostsee (Meshtastic Knoten auf Reise).

Diesmal geht die Reise von Zürich nach Dresden und ich bin gespannt, was sich so getan hat. Das folgende Bild zeigt meine Reiseroute.

Es begleiten mich zwei Nodes – WisMesh Pocket (WMsh) & LiliGo T-Deck Plus (TDck). WisMesh Pocket habe ich mit eine Magnetfussantenne auf dem Dach des PKW befestigt. Bis etwas 150 km/h zeigte sich das auch als stabil.

WisMesh Pocket
LilyGo T-Deck Plus

Ich habe den Default Channel (LongFast) bemüht, da nur wenige Special Channels auf dieser Route verfügbar waren. Um es vorwegzunehmen, die Ausbeute war unter meinen Erwartungen.

Im Vorarlberg habe ich einige bekannte Nodes wieder gesehen, doch über den Rest der Strecke war weitgehend Schweigen. Zumindest in Ulm und Nürnberg hatte ich etwas erwartet. Um so erfreulicher waren die ersten Nodes dann in Dresden. Da hat es einiges gegeben und ich werde in den nächsten Tagen etwas in die Höhe gehen und dann sicher eine bessere Ausbeute zeigen können.

Leider hat sich der WisMesh Pocket zwischendurch verabschiedet und muss erst zu Hause wieder zum Leben erweckt werden.

Die letzten Tage habe ich dann mit dem LilyGo T-Deck Plus auf dem Armaturenbrett meines PKW die folgende Abdeckung in Dresden sehen können. Morgen werde ich noch von der Babisnauer Pappel (Höhe 330 m.ü.M.) einen neuen Test starten.

TDck im Stadtgebiet
TDck an der Babisnauer Pappel

Bei der Heimfahrt konnte ich nicht mehr von der Magnetfussantenne profitieren, sondern hatte das gegenüber dem WisMesh Pocket weniger empfindliche LilyGo T-Deck Plus auf dem Armaturenbrett. Im Bild links wurden auch keine Nodes während der Fahrt empfangen, während die Abdeckung zu Hause (im Bild rechts) wieder das übliche Bild zeigt.

TDck auf der Fahrt ohne Empfang
Abdeckung wieder zu Hause

Interessant für mich war die große Meshtastic Aktivität in und um Dresden, die ich selbst unter suboptimalen Bedingungen auf meiner Seite sehen konnte.

Die folgende Tabelle zeigt eine kleine Auswahl von empfangenen Nodes mit deren Ortskoordinaten sowie der Entfernung zu meinem an der Babisnauer Pappel installierten TDck und die Zahl der Hops.

ShortLongLONLATHeightDistanceHops
TDckLilygo
T-Deck
50.9782913.750052570
MikeMike51.0400013.7300042072
Lohm Lohmen50.9870113.97228015.63
WBL1DG2KW51.15341 13.5795313122.84
ZH-D JO61VC51.0449013.76502 17811.82
PO4 PHOS-44 51.0918713.65770014.21

2025-02-14/CK

Meshtastic – Erfassung und Versand von Messwerten

Ein Meshtastic-Netzwerk ist ein drahtloses Mesh-Netzwerk, das hauptsächlich zur Kommunikation in Gebieten ohne Mobilfunknetz oder Internet oder unabhängig von diesen verwendet wird (Off-Grid-Netzwerk).

Es können Textnachrichten und Standortinformationen zwischen Geräten (Meshtastic-Knoten) ausgetauscht werden. Neben der Übermittlung von Textnachrichten und Standortinformationen, wie GPS-Daten, können Meshtastic Knoten aber auch Messwerte erfassen und mit anderen Knoten austauschen.

In der folgenden Abbildung ist eine solche Anwendung gezeigt. Es steht das Übertragen der von einzelnen Knoten erhobenen Messwerte im Vordergrund.

Meshtastic-Netzwerk zum Erfassen und Übermitteln von Messdaten

Außerdem kann einer der Meshtastic-Knoten mit einer MQTT-Schnittstelle ausgestattet sein, die eine Verbindung ins Internet ermöglicht. Auf diese Weise lassen sich örtlich weit auseinanderliegende (lokale) Meshtastic-Netzwerke verbinden und deren Daten zentral auswerten. Der Off-Grid-Aspekt geht in diesem Fall allerdings verloren.

Zur Messwerterfassung steht eine breite Palette von Sensoren mit unterschiedlichen Interfaces zum Datenaustausch zur Verfügung.

Sensoren mit I2C-Interface

Von Meshtastic wird eine Reihe wichtiger Sensoren mit I2C-Interface direkt unterstützt. Unter der URL https://meshtastic.org/docs/configuration/module/telemetry/ sind die aktuell unterstützten Sensoren gelistet.

Messungen der Umgebungsbedingungen und einiger Gesundheitsaspekte sind damit direkt möglich. Wichtig zu beachten ist, dass der betreffende Meshtastic Knoten auch ein I2C-Interface zur Verfügung stellt.

Meshtastic-Knoten

Eine komfortable Lösung besteht bei Verwendung eines Meshtastic Starter Kits von RAKwireless bestehend aus den folgenden Komponenten:

  • WisMesh Base Board RAK19026 oder WisBlock Base Board RAK19007
  • WisBlock Core Module RAK4631
  • WisBlock Sensor Adapter Module RAK1920
  • OLED Display RAK1921 (optional)
  • GNSS GPS Location Module u-blox ZOE-M8Q RAK12500 (optional)

Selbst bei bestücktem OLED-Display ist das I2C-Interface über den Grove-Stecker des RAK1920 zugänglich, wie die folgende Abbildung des komplett ausgestatteten Meshtastic Knotens zeigt.

RAKwireless RAK4631 Meshtastic Knoten

Für experimentelle Arbeiten bietet sich ein RAKBox-B5 Transparent Acrylic Enclosure (https://store.rakwireless.com/products/rakbox-b5-transparent-acrylic-enclosure) von RAKwireless an, wie ich es beispielsweise bei Experimenten zu einem solargepufferten IoT-Knoten eingesetzt habe (https://ckarduino.blog/2023/12/21/solar-buffered-wisblock-node/).

Für das Meshtastic Starter Kit von RAKwireless gibt es aus der Gehäusereihe Unify Enclosure das für den Außeneinsatz spezifizierte Unify Enclosure IP67 150x100x45 mm mit einem Solarpanel im Gehäuseoberteil.

Mit diesen Möglichkeiten kann recht einfach von einem Prototyp, der nicht für den Außeneinsatz geeignet ist, auf ein finales, für den Außeneinsatz geeignetes Produkt übergegangen werden.

Auf dem Baseboard lassen sich WisBlock Sensoren direkt montieren. Mit dem RAK1901 WisBlock Temperature and Humidity Sensor können beispielsweise Umweltdaten (Temperatur, rel. Luftfeuchte) sehr einfach erfasst werden. Will man nicht die Messwerte im Inneren des Gehäuses erfassen, dann sollte der RAK1901 entweder durch ein Expansionskabel vom Baseboard abgesetzt oder gleich durch einen externen Sensor ersetzt werden. Sowohl für die Sensor- als auch IO-Slots der Baseboards bietet RAKwireless FPC Extension Cables an.

Wollen Sie gleich einen für den Outdoor-Einsatz geeigneten Sensor einsetzen, dann liefert eine Suche schnell verschiedene Angebote unterschiedlicher Bauform, die in der Regel auf Sensoren der Schweizer Fa. Sensirion aufbauen.

Bauformen von Sensoren für den Ausseneinsatz

Mit einem Grove-Stecker ausgerüstet, kann ein solcher Sensor direkt mit dem RAK1920 kontaktiert werden.

Beim Starten des Meshtastic-Knotens kann über die serielle Console des WebFlashers die Detektion der angeschlossenen I2C-Devices verfolgt werden. Der folgende Screenshot zeigt die Detektion des OLED-Displays und die Detektion eines externen SHTC3-Sensors.

Detektion der angeschlossenen I2C-Devices

Die Telemetriedaten beinhalten der erfassten Messdaten und zeigen sich beispielsweise im Programm MeshSense, wie im folgenden Screenshot gezeigt.

Telemetriedaten im Programm MeshSense

Mit der Anschlussmöglichkeit für externe I2C-Sensoren haben Sie bereits vielfältige Möglichkeiten der Messwerterfassung. Bedingung ist, dass der Sensor ein I2C-Interface aufweist und von der Meshtastic Firmware auch unterstützt wird.

Sensoren ohne I2C-Interface

Für die Erfassung von Umweltdaten gibt es auch eine Reihe von Sensoren, die zwar für den Außeneinsatz geeignet sind, aber kein I2C-Interface aufweisen. Zwei möchte ich hier beispielhaft nennen.

Waterproof DS18B20 Digital Temperature Sensor (IP68)

Der DS18B20 ist ein Temperatursensor im TO92-Gehäuse mit einem 1-Wire-Interface. Durch seine werkseitige Kalibrierung ist der Sensor sehr genau. Der DS18B20 wird nicht durch Meshtastic unterstützt. In der wasserdichten Version gemäss der folgenden Abbildung kann er sehr gut als echter externer Sensor dienen.

Ultrasonic Ranging Sensor for Water Level Detection (25-800 cm, IP67)

Dieser Ultraschallsensor misst Entfernungen zwischen 25 und 800 cm. Dank der integrierten Temperaturkompensation arbeitet er zuverlässig in einem Temperaturbereich von -15 °C bis 60 °C. Dieser Sensor weist ein serielles Interface (UART) auf und ist ideal für die Erkennung des Wasserstandes in Schächten, in Wassertanks und in Flussläufen. Auch dieser Sensor wird nicht durch Meshtastic unterstützt.

Das serielle Interface steuert über RX die Messung (T1>2,5 s, T2 = 0,9 ~ 2,5 s; RX Pulsbreite zwischen 10 us und 2 ms). Alle weiteren Informationen und Codebeispiele sind über den Link oben zu finden.

Timing Diagram

Externes Erfassungsmodul

In einem Meshtastic-Netzwerk können externe Erfassungsmodule Sensoren ergänzen, die bislang (noch) nicht durch Meshtastic unterstützt werden.
Die folgende Abbildung zeigt einen Ausschnitt aus einem Meshtastic-Netzwerk mit drei Meshtastic-Knoten (grün eingefärbt). Ein Meshtastic-Knoten weist eigene, von der Meshtastic-Firmware unterstützte Sensorik auf. Für weitere Sensoren kann ein externes Erfassungsmodul eine Schnittstellenfunktion übernehmen. Das externe Erfassungsmodul (blau eingefärbt) kontaktiert einen beliebigen Sensor über dessen Interface und wandelt die Messergebnisse in einen Textstring. Dieser Textstring wird dann seriell an einen Meshtastic-Knoten übertragen.

Meshtastic Netzwerk mit externem Erfassungsmodul

Der eingesetzten Mikrocontroller muss die erforderlichen Schnittstellen für den Anschluss des auszuwertenden Sensors aufweisen (I2C, SPI, 1-Wire etc.) sowie eine UART-Schnittstelle zur Übertragung der Messwerte an den zugeordneten Meshtastic-Client. Die Stromaufnahme für das gesamte Erfassungsmodul incl. Sensor sollte möglichst gering sein, damit Batteriebetrieb möglich ist. Ich verwende hier einen nRF52840 in Form eines XIAO nRF52840 von SeeedStudio. Grundsätzlich kann jeder Mikrocontroller aus der XIAO-Familie eingesetzt werden.

XIAO nRF52840

Wie die Abbildung oben zeigt, sind I2C, SPI, UART sowie analoge und digitale IO nach Außen geführt und die Voraussetzungen für eine flexible Sensoranbindung erfüllt. SeeedStudio bietet ergänzend zu den XIAO-Mikrocontrollern noch das XIAO Expansion Board an, wodurch ein kompaktes Erfassungsmodul mit optionaler Anzeige aufbaubar ist.

XIAO Expansion Board

Für die Kontaktierung des XIAO nRF52840 stehen Buchsenleisten zur Verfügung, über die jeder Anschluss auch nach außen hin verfügbar ist. Außerdem stehen die I2C- und UART-Anschlüsse als Grove-Ports (rot umrandet) zur Verfügung.

Der 1-Wire-Sensor DS18B20 wird über den digitalen Eingang D0, der an einem Grove-Anschluss zur Verfügung steht, angeschlossen. Bitte denken Sie an den erforderlichen PullUp-Widerstand. Auf dem OLED-Display wird der erfasste Temperaturmesswert angezeigt.

Das Programm XIAO_nRF52840_DS18B20.ino fragt den DS18B20 Sensor ab und bereitet die Daten zur Anzeige auf dem OLED auf. Der ermittelte Temperaturmesswert wird in einen String konvertiert, der über die UART an den Meshtastic-Knoten weitergeleitet wird. Dieses und weitere Programmbeispiele finden Sie auf GitHub unter https://github.com/ckuehnel/Meshtastic. Die folgende Abbildung zeigt die Ausgabe über die Console des XIAO nRF5240.

Die Übertragung der Daten vom externen Erfassungsmodul zum Meshtastic-Knoten zeigt die folgende Abbildung.

Das ursprünglich am Meshtastic Knoten installierte GPS-Modul RAK12500 musste ich entfernen, da das Modul das serielle Interface belegt, welches hier für die Verbindung zum Erfassungsmodul verwendet wird.

Die Details zur Konfiguration des Serial Module finden Sie unter https://meshtastic.org/docs/configuration/module/serial/. Der folgende Screenshot zeigt die erforderlichen Einstellungen. Die seriellen Pins gelten für ein RAK19007 Baseboard.

Serial Configuration für RAK19007

Der übertragene Textstring wird vom Serial Module der Meshtastic-Firmware als Textmessage in der Form RAK1: DS18B20 Temp = xx.x °C über den Primary Channel gesendet. Im Programm MeshSense zeigen sich die Textmessages gemäss folgendem Screenshot.

MeshSense Messages Output

In der Android-App zeigen sich die Telemetriedaten und die Textmessage mit dem DS18B20 Messwert, wie in den beiden Screenshots von einem Smartphone zu sehen ist.


Die gesplittete USB-Spannungsversorgung für die beiden den Meshtastic-Knoten bildenden Module war zwar sehr komfortabel, zeigte sich aber als sehr stromhungrig. Im Blogpost Solar-betriebener Meshtastic-Knoten ist der Strombedarf im realen Betrieb gezeigt. Mit den Erkenntnissen aus dem erwähnten Post ergibt sich die folgende Schaltungsänderung zur Reduzierung des Strombedarfs.


Sind Sie noch neu bei diesem interessanten Thema, dann finden Sie Grundlagen im nebenstehenden eBook, das im Rheinwerk-Verlag erschienen ist. Daniel Schlapa hat das Buch schon mal gelesen und rezensiert.


2025-03-17/CK

Meshtastic Kit: Experimenting with XIAO ESP32-S3 & Wio-SX1262

Im Blogbeitrag Meshtastic Kit for Experimentation hatte ich Ihnen das XIAO ESP32S3 & Wio-SX1262 Kit vorgestellt.

Rechtzeitig vor dem Chinesischen Neujahrsfest kam heute meine Bestellung von Seeedstudio an.

Komponenten des XIAO ESP32S3 & Wio-SX1262 Kits

Durch die Kontaktierung der beiden Boards über den B2B-Connector entsteht ein kompaktes Meshtastic-Modul.

XIAO ESP32-S3 & Wio-SX1262 Modul

Ein Meshtastic Experimentierumfeld zeichnet sich dadurch aus, dass es den eigentlichen Meshtastic Knoten um für die Anwendung wichtige externe Komponenten erweitert. Das XIAO Expansionsboard bietet neben Grove-Connectoren ein OLED-Display, wodurch die komplette Infrastruktur für Meshtastic Experimente verfügbar ist.

XIAO ESP32-S3 & Wio-SX1262 Modul im XIAO Expansionsboard

Die Einrichtung des Meshtastic-Knotens erfolgt wie gewohnt über den WebFlasher und anschliessende Konfiguration.

Ich habe den Meshtastic-Knoten über den I2C-Port mit einer M5Stack ENV II Unit erweitert. Durch die in dieser Unit verbauten Sensoren 8sh

SHT30 & BMP280) können Temperatur und relative Feuchte sowie barometrischer Druck gemessen werden. Auf dem OLED-Display werden die Daten der empfangenen Meshtastic-Knoten angezeigt.

In der verbundenen Android App stellen sich die übermittelten Telemetriedaten dann gemäss dem folgenden Screenshot dar.

Screenshot Android App

2025-01-09/CK

Meshtastic Erfahrungen: Boards und Module

Ich habe mich recht intensiv mit Meshtastic beschäftigt und die Erfahrungen im eBook Meshtastic – Funknetze mit LoRa zusammengestellt. Hier im Blog sind neue Erfahrungen und Ergebnisse erschienen.

Es ist sehr erfreulich, dass neue Boards und Module die bislang vorhandene Hardware ergänzen und durch Meshtastic auch unterstützt werden.

Ein Blick in den WebFlasher zeigt die Vielzahl heute unterstützter Boards.

Aus diesem breiten Angebot kann sicher ein Board gefunden werden, welches die konkreten Anforderungen abdeckt. Die Beschaffung selbst ist derzeit auch kein Problem mehr. Wer die Bestellung beim Lieferanten in China nicht vornehmen möchte, findet für die meisten Boards auch einen Lieferanten in Europa.

Im folgenden Excel-Sheet habe ich die bei mir laufenden Meshtastic Nodes mit wichtigen Merkmalen zusammengestellt. Die Tabelle ist nicht final und wird ggf. erweitert. Der Änderungsstand ist am Fuss der Tabelle vermerkt.

Für Ihre Hinweise bin ich jederzeit offen und kann auch dementsprechende Ergänzungen vornehmen.


2025-01-07/CK