Kommt bald: Raspi (m)isst Honig | Raspi auf Sendung |
Raspberry Pi im Maschennetz mit LoRa SX1262
Das Waveshare SX1262 868/915M LoRaWAN Module in Kombination mit einem Raspberry Pi bietet vielseitige Möglichkeiten für die LoRa Meshtastic Kommunikation. Ob das Senden und Empfangen von Nachrichten per Skript oder die Einbindung von nahezu jedem Sensor, diese Hardware-Kombination bringt Meshtastic auf ein neues Level.
Besonders spannend: Über das Meshtastic-Netzwerk lassen sich über LoRa externe Geräte bequem steuern. Trotz der Hardware Einschränkungen des HATs, die eingeschränkte Weiterleitung langer Nachrichten, und der deswegen begrenzten Eignung als Router, Repeater oder als Client, bleibt das Modul äußerst nützlich. Im CLIENT_MUTE-Modus kann es ebenso sämtliche Features bieten und ermöglicht kreative sowie praxisnahe Anwendungen.
In diesem Projekt zeigen wir, was mit einem Raspberry Pi 4 alles möglich ist.

Die Hardware
Indem Projekt verwenden wir:
- Raspberry Pin 4 mit mindestens 2GB Ram
- Waveshare SX1262 868/915M LoRaWAN Node Module mit oder ohne GPS
- Raspberry Netzteil oder andere Spannungsversorgung
- Ein PC mit SSH Client Software (zB OpenSSH, Putty)
- LM1220 Batterie oder besser ein ML1220 Akku
optional: - zusätzlich zur Antenne aus dem Lieferumfang, eine kleine Antenne mit SMA Anschluss (der Handlichkeit halber)


Assemblierung
Das Wavesharemodul kommt komplett mit allen Kabeln und mit Antennen.
Vor Inbetriebnahmen unbedingt die Antennen am Modul anstecken!
Auf der Unterseite die Batterie einstecken
Das HAT mit dem „zwischen Steckerleisten Adapter“ auf den Raspi stecken
Auf dem Bild ist ein Raspberry Pi mit dem GPS LoRa sx1262 HAT

Raspberry Pi 4 vorbereiten
- Optional: Falls die microSD-Karte formatiert werden muss:
- Installiere und öffne den SD Formatter.
- Aktiviere unter „Optionen“ die Einstellung „FORMAT SIZE ADJUSTMENT“.
- Formatiere die Karte.
- Lade den Raspberry Pi Imager herunter und installiere ihn: Raspberry Pi Imager.
- Bespielen der SD-Karte:
- Starte den Raspberry Pi Imager.
- Wähle das Modell Raspberry Pi Zero 2 W.
- Wähle das Betriebssystem Raspberry Pi OS (Legacy, 32-Bit) Bullseye.
- Wähle die microSD-Karte aus.
- Klicke auf „Einstellungen bearbeiten“ und konfiguriere: Hostname (aufschreiben).
- Benutzername (muss pi sein) und Passwort (aufschreiben).
Für die Anleitung sollte es der Standard Benutzer pi sein, da auf das pi Homeverzeichnis referenziert wird - WLAN-Name (SSID) und Passwort (aufschreiben).
- WLAN-Land: AT.
- Zeitzone: Europe/Vienna.
- Tastatur: de.
- SSH: aktivieren.
- Authentifizierung per Passwort: aktivieren.
- Speichere die Einstellungen und bestätige mit JA.
- Die SD-Karte wird nun mit dem Betriebssystem beschrieben.
- Entnehme die microSD-Karte und stecke sie in den Raspberry Pi.
- IP-Adresse des Raspberry Pi ermitteln:
- Installiere den Advanced IP Scanner oder finde die IP im Router (unter „angeschlossene Geräte“).
- Notiere die IP-Adresse des Raspberry Pi.
- SSH-Verbindung herstellen:
- Lade PuTTY herunter und installiere es.
- Starte PuTTY und gib die IP-Adresse des Raspberry Pi ein.
- Bestätige die Sicherheitswarnung.
- Melde dich mit deinem Benutzernamen und Passwort an.
Software Installation
Original Installationsanleitung auf meshtastic.org
WICHTIG ! Die Installationsanleitung in der Reihenfolge ganz exakt einhalten, nichts auslassen und nichts zusammenfassen!
Die Anleitung betrifft Raspberry 4 in Verbindung mit dem Waveshare LoRa SX1262 Modul und die Meshtastic Softwareversion 2.5.21.xxx.
In Putty Terminalfenster nacheinander eingeben (Befehl kopieren und mit rechter Maustaste im Terminal einfügen)
sudo apt-get update && sudo apt-get upgrade -y
sudo reboot
Nun den gesamten Block kopieren und im Terminalfenster einfügen
echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Raspbian_12/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Raspbian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
sudo apt update
Dann die Meshtastic Software installieren, mit dieser Installationsvariante wird automatisch die aktuellste verfügbare stabile VErsion installiert.
sudo apt install meshtasticd
Jetzt müssen einige Parameter eingestellt werden. Dazu folgende Anweisungen nacheinander in das Terminal Fenster eingeben
sudo raspi-config nonint set_config_var dtparam=spi on /boot/firmware/config.txt # Enable SPI
den gesamten Block eingeben
# Ensure dtoverlay=spi0-0cs is set in /boot/firmware/config.txt without altering dtoverlay=vc4-kms-v3d or dtparam=uart0
sudo sed -i -e '/^\s*#\?\s*dtoverlay\s*=\s*vc4-kms-v3d/! s/^\s*#\?\s*(dtoverlay|dtparam\s*=\s*uart0)\s*=.*/dtoverlay=spi0-0cs/' /boot/firmware/config.txt
# Insert dtoverlay=spi0-0cs after dtparam=spi=on if not already present
if ! sudo grep -q '^\s*dtoverlay=spi0-0cs' /boot/firmware/config.txt; then
sudo sed -i '/^\s*dtparam=spi=on/a dtoverlay=spi0-0cs' /boot/firmware/config.txt
fi
Nun der Reihe nach eingeben
sudo raspi-config nonint set_config_var dtparam=spi on /boot/firmware/config.txt # Enable SPI
sudo raspi-config nonint set_config_var dtparam=i2c_arm on /boot/firmware/config.txt # Enable i2c_arm
sudo raspi-config nonint do_serial_hw 0 # Enable Serial Port (enable_uart=1)
sudo raspi-config nonint do_serial_cons 1 # Disable Serial Console
sudo raspi-config nonint do_serial_cons 1 # Disable Serial Console
sudo reboot
Nun testen ob soweit alles OK ist und folgendes im Terminal eingeben
dmesg | grep tty
Nun wird die info … serial:ttyS0 at …. ausgeben

Nun geht es weiter mit
sudo cp /etc/meshtasticd/available.d/lora-waveshare-sxxx.yaml /etc/meshtasticd/config.d/
Nun die Konfigurationsdatei
sudo nano /etc/meshtasticd/config.yaml
Die Datei wie folgt bearbeiten:
Achtung im File ist Case sensitive, es reagiert empfindlich auf nicht korrekt gesetzte Leerzeichen. Alles lassen wie es ist, nur # bei den entsprechenden Zeilen entfernen also auskommentieren!
Folgendes ist zu ändern:
Diesen Teil direkt nach „Lora:“ in eine neue Zeile einfügen
Module: sx1262 # Waveshare SX126X XXXM
DIO2_AS_RF_SWITCH: true
DIO3_TCXO_VOLTAGE: true
SX126X_ANT_SW: 6
CS: 21
IRQ: 16
Busy: 20
Reset: 18
Nun folgendes im File aus kommentieren (Achtung: nur das Zeichen # entfernen)
Falls ihr Sx1262 Board mit GPS ausgestattet ist
GPS:
SerialPath: /dev/ttyS0
Logging auf debug, kann später wieder auf info geändert werden
Logging:
LogLevel: debug # debug, info, warn, error
Webserver aktivieren
Webserver:
Port: 443 # Port for Webserver & Webservices
RootPath: /usr/share/doc/meshtasticd/web # Root Dir of WebServer
Hier die gesamte Datei fertig konfiguriert in diesem Falle MIT GPS
Achtung im File ist Case sensitive, es reagiert empfindlich auf nicht korrekt gesetzte Leerzeichen. Alles lassen wie es ist, nur # bei den entsprechenden Zeilen entfernen also auskommentieren!
### Many device configs have been moved to /etc/meshtasticd/available.d
### To activate, simply copy or link the appropriate file into /etc/meshtasticd/config.d
### Define your devices here using Broadcom pin numbering
### Uncomment the block that corresponds to your hardware
### Including the "Module:" line!
---
Lora:
Module: sx1262 # Waveshare SX126X XXXM
DIO2_AS_RF_SWITCH: true
DIO3_TCXO_VOLTAGE: true
SX126X_ANT_SW: 6
CS: 21
IRQ: 16
Busy: 20
Reset: 18
# Module: sx1262 # Waveshare SX1302 LISTEN ONLY AT THIS TIME!
# CS: 7
# IRQ: 17
# Reset: 22
# Module: RF95 # Elecrow Lora RFM95 IOT https://www.elecrow.com/lora-rfm95-iot-board-for-rpi.html
# Reset: 22
# CS: 7
# IRQ: 25
# Module: sx1280 # SX1280
# CS: 21
# IRQ: 16
# Busy: 20
# Reset: 18
### The Radxa Zero 3E/W employs multiple gpio chips.
### Each gpio pin must be unique, but can be assigned to a specific gpio chip and line.
### In case solely a no. is given, the default gpio chip and pin == line will be employed.
###
# Module: sx1262 # Radxa Zero 3E/W + Ebyte E22-900M30S
# DIO2_AS_RF_SWITCH: true
# DIO3_TCXO_VOLTAGE: 1.8
# CS: # NSS PIN_24 -> chip 4, line 22
# pin: 24
# gpiochip: 4
# line: 22
# SCK: # SCK PIN_23 -> chip 4, line 18
# pin: 23
# gpiochip: 4
# line: 18
# Busy: # BUSY PIN_29 -> chip 3!, line 11
# pin: 29
# gpiochip: 3
# line: 11
# MOSI: # MOSI PIN_19 -> chip 4, line 19
# pin: 19
# gpiochip: 4
# line: 19
# MISO: # MISO PIN_21 -> chip 4, line 21
# pin: 21
# gpiochip: 4
# line: 21
# Reset: # NRST PIN_27 -> chip 4, line 10
# pin: 27
# gpiochip: 4
# line: 10
# IRQ: # DIO1 PIN_28 -> chip 4, line 11
# pin: 28
# gpiochip: 4
# line: 11
# RXen: # RXEN PIN_22 -> chip 3!, line 17
# pin: 22
# gpiochip: 3
# line: 17
# TXen: RADIOLIB_NC # TXEN no PIN, no line, fallback to default gpio chip
# Module: sx1268 # SX1268-based modules, tested with Ebyte E22 400M33S
# CS: 21
# IRQ: 16
# Busy: 20
# Reset: 18
# TXen: 6
# RXen: 12
# DIO3_TCXO_VOLTAGE: true
# DIO3_TCXO_VOLTAGE: true # the Waveshare Core1262 and others are known to need this setting
# TXen: x # TX and RX enable pins
# RXen: x
# spiSpeed: 2000000
### Set default/fallback gpio chip to use in /dev/. Defaults to 0.
### Notably the Raspberry Pi 5 puts the GPIO header on gpiochip4
# gpiochip: 4
### Specify the SPI device to use in /dev/. Defaults to spidev0.0
### Some devices, like the pinedio, may require spidev0.1 as a workaround.
# spidev: spidev0.0
### Define GPIO buttons here:
GPIO:
# User: 6
### Define GPS
GPS:
SerialPath: /dev/ttyS0
### Specify I2C device, or leave blank for none
I2C:
# I2CDevice: /dev/i2c-1
### Set up SPI displays here. Note that I2C displays are generally auto-detected.
Display:
### Waveshare 1.44inch LCD HAT
# Panel: ST7735S
# CS: 8 #Chip Select
# DC: 25 # Data/Command pin
# Backlight: 24
# Width: 128
# Height: 128
# Reset: 27
# OffsetX: 0
# OffsetY: 0
### Adafruit PiTFT 2.8 TFT+Touchscreen
# Panel: ILI9341
# CS: 8
# DC: 25
# Width: 240
# Height: 320
# Rotate: true
### SHCHV 3.5 RPi TFT+Touchscreen
# Panel: ILI9486
# spidev: spidev0.0
# BusFrequency: 30000000
# DC: 24
# Reset: 25
# Width: 320
# Height: 480
# OffsetRotate: 2
### TZT 2.0 Inch TFT Display ST7789V 240RGBx320
# Panel: ST7789
# spidev: spidev0.0
# # CS: 8 # can be freely chosen
# BusFrequency: 80000000
# DC: 24 # can be freely chosen
# Width: 320
# Height: 240
# Reset: 25 # can be freely chosen
# Rotate: true
# OffsetRotate: 1
# Invert: true
### You can also specify the spi device for the display to use
# spidev: spidev0.0
Touchscreen:
### Note, at least for now, the touchscreen must have a CS pin defined, even if you let Linux manage the CS switching.
# Module: STMPE610 # Option 1 for Adafruit PiTFT 2.8
# CS: 7
# IRQ: 24
# Module: FT5x06 # Option 2 for Adafruit PiTFT 2.8
# IRQ: 24
# I2CAddr: 0x38
### You can also specify the spi device for the touchscreen to use
# spidev: spidev0.0
Input:
### Configure device for direct keyboard input
# KeyboardDevice: /dev/input/by-id/usb-_Raspberry_Pi_Internal_Keyboard-event-kbd
###
Logging:
LogLevel: debug # debug, info, warn, error
# TraceFile: /var/log/meshtasticd.json
# AsciiLogs: true # default if not specified is !isatty() on stdout
Webserver:
Port: 443 # Port for Webserver & Webservices
RootPath: /usr/share/meshtasticd/web # Root Dir of WebServer
General:
MaxNodes: 200
MaxMessageQueue: 100
ConfigDirectory: /etc/meshtasticd/config.d/
# MACAddress: AA:BB:CC:DD:EE:FF
# MACAddressSource: eth0
Speichern mit CTRL + x y enter
Um den meshtastic Service beim Systemstart automatisch zu starten
sudo systemctl enable meshtasticd
um den meshtastic Service manuell zu starten
sudo systemctl start meshtasticd
um den Servicemanuell zu beenden
sudo systemctl stop meshtasticd
für den aktuellen Status des Service
sudo systemctl statusmeshtasticd
Um das Logfile zu lesen
journalctl -u meshtasticd -b
Meshtastic Konfigurieren
nun im Browser am Raspi
https://localhost
oder von einem PC im Netzwerk
https://HostIPadresse (funktioniert möglicherweise auch mit dem Hostnamen)
Weiter im Browser:
Bei Sicherheitswarnung „advanced“ bzw. „erweitert“ klicken und weiter zu Host wählen
dann auf
- New Connection
- Http
- Connect

unter Config (Radio Config) -> Lora -> Region einstellen : Region EU_868
MTTQ vorerst ausschalten

unter Config -> Device -> Role einstellen: CLIENT_MUTE
Dies ist erforderlich da das Wavershare sx1262 durch seine Hardware längere Nachrichten beschränken kann
damit das Node über WLAN konfiguriert werden kann:
unter Config -> Network -> Wifi: enabled
SSID und PSK eingeben
falls GPS vorhanden und aktiviert:
unter Config -> Position -> GPS: enabled
speichern (Floppy Symbol rechts oben)
Dann Webseite aktualieren, neu connecten
Node sollte nun erreichbar sein
Bluetooth wird nicht in der hier beschriebenen Version 2.5.21 noch nicht unterstützt, daher disablen

Wenn nun alles fertig eingerichtet ist, im Browser aktualisieren klicken, dann wieder New Connection, http und connect.
Der Raspi ist nun im Meshtastic Meshnet eingebunden.
MQTT aktiviert, 7 Hops, 1227 Nodes am 16.2.2025 21:30 MEZ

Kommt bald: Raspi (m)isst Honig | Raspi auf Sendung |