MMDVM Hotspot mit 3.5“ Touch-Display für D-Star/DMR/C4FM
Ich möchte meine Erfahrungen des Aufbaus eines Raspberry Pi mit einem aufgesetzten MMDVM Simplex Modem teilen. Der Hotspot soll mir den Zugang über C4FM bereitstellen, ist natürlich auch mit anderen Modis nutzbar.
Zusätzlich setze ich auf den Hotspot ein 3.5“ Nextion Display, welches mir eine Übersicht der CPU-Temperatur, aktiven Modes, deren Verbindungsstatus und der zuletzt gehörten Teilnehmern liefern soll. Das Display soll über das aufgesetzte Modem mit dem Pi kommunizieren. So ist kein zusätzlicher USB-Konverter für das Display nötig, was auch den Installationsaufwand in der Pi-Star Software vereinfacht.
Als Case kommt ein tolles Produkt von C4Labs zum Einsatz. Der Aufbau ist so simpel wie genial. Das Case ist auch mit etwas Fleiß selbst druck- oder schneidbar.
Simplex statt Duplex?
Grundsätzlich reicht ein Simplex-Modem völlig aus, wenn man jedoch auf stark frequentierten Reflektoren oder „Räumen“ unterwegs ist, macht der Duplex-Hotspot es im Betrieb einfacher. Das nervige „warten“, bis ein Gesprächsteilnehmer seine Übertragung beendet um sich abzuschalten, kennt jeder. Hier gibt es als Lösung nur den Disconnect per Weboberfläche durchzuführen oder den Hotspot neu zu starten. Mit einem Duplex-Modem hat man da kein Problem. Duplex nutze ich in meinem weiteren Hotspot, welcher ausschließlich im DMR-Mode läuft. Für das YCS-System entschied ich mich vorerst für das Simplex-Modem.
Raspberry Pi Zero, Pi 3 oder doch Pi 4?
Grundsätzlich reicht ein Pi Zero (W) völlig aus. Dieser liefert genug Rechenleistung und ist aufgrund seiner Baugröße mit einem Simplex/DuplexMiniBoard-Modem gleicher Platinengröße perfekt in ein kleines Gehäuse unterzubringen. Mit einer passiven Kühlung gibt es keine Probleme. Der Stromverbrauch ist sehr gering, das System läuft so an jedem 5Watt/1Ampere USB-Anschluss, somit z.B. auch im Auto usw. Die „W“-Version des Pi Zero macht es wesentlich angenehmer im „Aufsetzen“ und der Nutzung. Hier ist ein W-Lan-Modul mit auf der Platine, worüber man nicht nur das Programmieren, sondern auch die Verbindung ins Internet leicht realisieren kann.
Wer eine schnellere Weboberfläche und ein stabileres System für die Nutzung von C4FM haben möchte, der greift am besten zu dem Pi 3(B/+). Dieser läuft ebenfalls mit passiver Kühlung ohne Probleme, allerdings benötigt die höhere Rechenleistung auch mehr Saft. Ein 12,5Watt/2,5Ampere Netzteil sollte hier verwendet werden. Somit funktioniert auch dieser Problemlos an USB-Ports, man muss lediglich auf die höheren Leistungsanforderungen achten. Ich habe mich für den Pi 3B+ entschieden.
Der Pi 4 kann natürlich auch genutzt werden, bringt jedoch etliche Nachteile mit sich. Aufgrund der hohen Rechenleistung (welche nicht benötigt wird) läuft die CPU sehr heiß. Im passiven Kühlmodus ohne Gehäuse noch vertragbare 50°-60°C. Mit Gehäuse kommt er schnell in Regionen über 70°C. Mittels eines aktiven CPU-Kühlers läuft der Pi 4 dann munter, man kauft sich hiermit leider eine Geräuschkulisse ein.
Außerdem hat man mit dickeren Lüftern Probleme das Modem auf den GPIO-Port des Raspberrys zu setzen. Der Pimoroni Shim Lüfter tut seinen Dienst einwandfrei, ist jedoch sehr Laut. Aufgrund seiner kleinen Baugröße holt er die Kühlleistung über die Drehzahl. Nutzt man größere Lüfter muss der GPIO-Port verlängert werden, die Baugröße des Gehäuses wird hiermit größer.
Der größte Nachteil des Pi 4 ist jedoch die GPIO-Port Boot-Eigenschaft. Der GPIO-Port wird beim Pi 4 sofort bestromt, wenn der Pi gestartet wird. Hierdurch bootet der Chipsatz des Modems gleichzeitig mit dem Pi. Da der Modem-Chipsatz sehr viel schneller als der Pi ist, reagiert das Modem nach erfolgreichem Boot des Pi-Systems nicht mehr auf Eingabebefehle. Nun muss das Modem neu gestartet werden, welches ausschließlich über den Hardware-Button erfolgen kann. Danach funktioniert der Betrieb tadellos, leider ist eine automatisierte Nutzung hier noch nicht möglich. Vielleicht finden die „MACHER“ hierfür noch eine Lösung in Zukunft, aktuell sehen Sie jedoch noch keinen Ansporn dieses Problem anzugehen.
Temperaturen der CPU Pi3b+ / Pi4 und Lüfter
Ich habe die Temperaturtests mit offenliegender Platine sowie im geschlossenen Gehäuse (C4Labs) getestet. Beim Versuchsaufbau war jeweils ein Simplex-Modem-Board am GPIO-Port aufgesetzt und es lief das Betriebssystem Pi-Star im Dauerbetrieb C4FM mit 80% Empfang (TX) und 20% Senden (RX) über Gruppe 35 und BridgeModus zu AmericaLink. Die Raumtemperatur im geschlossenen Raum betrug im Test 23°C.
RPi 4 ohne CPU Kühler offene Platine: max. 61°C.
RPi 4 mit passivem Kühler offene Platine: max. 60°C.
RPi 4 ohne CPU Kühler im geschlossenen Gehäuse: >80°C mit Abbruch, da zu heiß.
RPi 4 mit passivem Kühler im geschlossenen Gehäuse: >80°C mit Abbruch, da zu heiß.
RPi 4 mit Pomoroni MiniShim Aktivlüfter offene Platine: 37°C Idle bis max. 45°C im RX/TX Betrieb.
RPi 4 mit Pomoroni MiniShim Aktivlüfter im geschlossenen Gehäuse: 55°C Idle bis max. 67°C im RX/TX Betrieb.
Der Pomoroni MiniShim Fan ist ein super Lüfter, der aufgrund seines geringen Abstandes zum Modem jedoch kaum Luft „atmen“ kann, und somit die Kühlleistung den RPi zwar ausreicht, aber nicht wirklich effektiv arbeiten kann. Die Lüfterreglung steuert auch ohne Installation im OS, was lobenswert ist, liegt jedoch innerhalb eines Gehäuses stets am maximum und generiert eine hohe Laustärke. Wenn es nicht stört, fährt man gut mit diesem Lüfter.
RPi 3B+ ohne CPU Kühler offene Platine: max. 57°C.
RPi 3B+ mit passivem Kühler offene Platine: max. 55°C.
RPI 3B+ mit passivem Kühler im geschlossenen Gehäuse: 49°C Idle bis max. 61°C im RX/TX Betrieb.
RPi 3B+ mit aktivem Kühler wurde nicht getestet, da der Betrieb mit passivem Kühler absolut in Ordnung geht. Als Passivkühler wurde der Standard RaspberryPi CPU Kühler montiert. Es gibt wohl größere Versionen an Passivkühlern, die die Erwärmung aufgrund Ihrer Masse etwas herauszögern, nach einer gewissen Laufzeit erreichen Sie jedoch alle die obigen Temperaturen. Ein größere Passivkühler macht sich erst bemerkbar, wenn das Gehäuse in einem leichtem Luftstrom steht.
Welches Modem?
Als Modem kann jedes erhältliche MMDVM-Board genutzt werden. Ich habe die besten Erfahrungen mit STM32-Chipsätzen, da mir andere Chipsätze schon „abgeraucht“ sind, taub wurden oder man mit einer sauberen Modulation zu kämpfen hat (auch wenn Einstellungen wie Offsets etc. passen). Ich habe China WCH wie auch STM Chips am Oszilloskop durchgemessen, meine besten Ergebnisse ergaben die STM Chips, allerdings waren die Ergebnisse alle miserabel, daher rate ich dringlichst von dem China-Modem-Platinen ab. Der Preis ist natürlich heiß! Jedoch hat man weniger Stress und eine bessere Sprachqualität wenn man sich den Modems deutscher Herstellung bedient.
Aufgesetztes Display
Selbstverständlich funktioniert der Hotspot ohne Display. Jedoch ist es im DMR wie auch im C4FM Betrieb schön zu sehen, woher denn der Gesprächspartner kommt oder wie sein Rufzeichen lautet, wenn man ihn nicht direkt versteht. Hierzu habe ich es mir zur Aufgabe gemacht ein 3.5″ Display aufzusetzen. Die Displaygröße bringt eine ähnliche Baugröße wie die Raspberry Pi Platine mit sich, was eine Implementierung in ein gemeinsames Gehäuse angenehm macht.
Nextion Display einbinden
Ich verbinde dass Nextion 3,5″ Display über das Modem. So benötige ich keinen USB-Adapter, welcher die Baugröße für das Gehäuse erheblich vergrößern würde. Das Display kommt selbst mit einem eigenen Chipsatz, auf dem eine Anzeige-Software installiert werden muss. Der Vorteil dieses Systems: Man muss lediglich Dateninformationen über den GPIO des Pi zum Display senden und kommt so mit einer geringen Übertragungsrate aus. Für das Display gibt es eine Software vom Hersteller zum basteln eigener Layouts, es sind jedoch auch schon viele „gebaute“ Layouts von Funkamateuren im Netz OpenSource erhältlich.
Weitere Information für den Zusammenbau folgen bald…
Programmierung des OS Pi-Star:
Ich gebe zu, auch Ich hatte Probleme, bis der Hotspot sauber lief. Letzten Endes versuche ich meine Probleme hier darzustellen, um schlussendlich doch ohne Programmierkenntnisse das Pi-Star mit dem Display zu laufen zu bekommen.
Schritt 1: Pi-Star oder Pi-Star (EA7EE) herunterladen und auf eine max. 16GB SD-Karte schreiben.
Schritt 2: Nach dem ersten Boot-Up bringe ich dem Pi zuerst das Netzwerk (WLAN) bei, in das er sich einwählen soll.
Schritt 3: Nach erfolgreichem einloggen im WLAN programmiert man nun seine Configurationspage (Hostname/Node Callsign/DMR-Id etc.), nachdem ersten „Apply Changes“ wird nun noch das Modem abgefragt. Dieses eintragen und erneut „Apply Changes“.
Schritt 4: Mode aktivieren, in meinem Fall YSF Mode on, keine weiteren Änderungen nötig. „Apply Changes“ .
Schritt 5: Nun erscheint das Mode-Menü von YSF weiter unten. Hier den Startupmode auf YSF. Den Startuphost auf den Wunschhost, das Feld „Startup DG-ID for TreeHouse“ bleibt leer. Wichtig jedoch noch die fest gebuchten Räume unter „Statical DGIS’s for YCS-Network“ einsetzen, als Beispiel „62;88“. Das wars, „Apply Changes“.
Nun läuft der Hotspot. Ihr solltet nun folgendes Bild im Admin-Beriech sehen. (Farben können abweichen)
MMDVMHost zeigt die aktive Kommunikation zum Modem an.
YSFGateway/Parrot die bestehende Verbindung zum YSF-Netzwerk.
Pi-Star Watchdog/GPSd aktive Systemfunktionen/Dienste.
Unter „Modes Enabled“ der YSF Mode und unter Network Status das aktive YSF Net.
Radio Info zeigt eure eingestellte Frequenz und Informationen wie die HAT_Firmwareversion. Hier kann auch eine ältere Installiert sein, was kein Problem darstellt. Nicht jeder HAT ist einfach zu updaten, hier bitte nur herantrauen wenn man weis was man macht.
Und schlussendlich der verbundene [Lnkd] Raum, in dem Ihr euch gerade befindet.
Sollte euer Bild nicht so aussehen, wiederholt das „aufsetzen“ der Pi-Star Software einfach nochmal. Vielleicht hat sich der Pi bei der Installation verschluckt.
Programmierung des Nextion Displays:
Folgt…
Programmierung des Pi-Star für den Nextion-Display Betrieb:
Hierzu stellt man folgendes in der MMDVM-Configuration ein:
Und schon sollte das Display einiges anzeigen. Wichtig hierbei das ON7LDS L3 Layout anzuwählen (Baudrate 9600), nicht das ON7LDS L3 HS Layout, dies arbeitet mit einer zu hohen Baudrate im „Modem-Anschluss-Betrieb“. Um nun noch Informationen wie CPU-Temp. etc. zu übertragen, muss der Nextion-Display-Treiber im Pistar installiert werden. Hierzu geht man ins SSH und führt folgende Befehle aus:
rpi-rw (um den Pi beschreibbar zu machen)
cd /tmp (um die Treiber in den Temp-Ordner zu laden)
git clone https://github.com/on7lds/NextionDriverInstaller.git (um den Treiber herunter zu laden)
sudo NextionDriverInstaller/install.sh (um den Treiber-Installer zu starten.
Nun müsst Ihr einmal bestätigen, das der Treiber installiert werden soll. Der Installer überprüft nun die vorhandene Softwareversion und stellt meist fest, das eine neuer Version vorliegt, lädt diese herunter und überschriebt die Daten in die neuere Version. Bei der nächsten Frage, ob Ihr Neustarten wollt VERNEINT ihr.
Nun startet Ihr nochmal den Installer mit:
sudo NextionDriverInstaller/install.sh
Jetzt wird die aktuellste Version installiert, mit „Y“ den Installer bestätigen und bei der erneuten Frage des Reboots könnt Ihr nun mit „Y“ Yes bestätigen und neu booten. Das wars, das Display zeigt nun alle Funktionen an und lässt sich auch „fernsteuern“.
Bleibt dran, in Kürze folgt das Update…