Repository navigation
pluto-tx 0.9.0 RC3 – Debian-Paket (Ubuntu 26.04, amd64)
Pre-releaseDritter Release-Kandidat von pluto-tx als Debian-Paket (Pre-Release, zum Testen), nur für Ubuntu 26.04 LTS auf amd64. Für Debian 13 und arm64 gibt es in diesem RC kein Paket.
Installation
sudo apt install ./pluto-tx_0.9.0.rc3.ubuntu26.04_amd64.deb
pluto-tx-doctorAuf dem Ubuntu-Desktop geht auch ein Doppelklick auf das .deb (App Center). Die Abhängigkeiten, u. a. GNU Radio, installiert apt mit.
Warning
Die Programme können senden. Senden ist nur mit passender Genehmigung und auf dafür zugelassenen Frequenzen erlaubt.
Warning
Dieser RC wurde nur im Container getestet, ohne angeschlossene Geräte. Die Installation auf einem echten Rechner mit Pluto, HackRF oder RTL-SDR steht noch aus.
Neu seit RC2
- JTTY (experimentell): der Tastaturmodus aus WSJT-X 3.2, Empfang und Senden in den Desktop-Apps,
pluto-cliund Web-TRX. Decoder und Encoder sind das unverändertewsjt-codecaus WSJT-Xv3.3.0-beta5, das Paket bringt es mit. Der Text wächst beim Empfang mit, gesendet werden ganze Nachrichten bis 80 Zeichen von Hand. - MeshCore in Web-TRX: Empfang und Senden, Karte, Kanalschlüssel auf dem Server.
- Pluto als Sender und Empfänger zugleich: In Datenmodi läuft der Sender ohne Audio-Kette, die eigene Sendung wird im selben Web-TRX dekodiert. Die Abtastraten bleiben dabei synchron.
pluto-cli rxund HackRF:--lna-gain,--vga-gainund--rf-ampstellen seine Stufen ein.--gainund--gain-modewurden dort bisher still ignoriert und werden jetzt abgewiesen.pluto-cli rx --device audio: Eine Funkfrequenz in--freqwird abgewiesen; sie verschob bisher unbemerkt das Audioband.- APRS: Die Wartezeit zwischen Sendungen ist nur noch eine Warnung.
Kurzanleitung
Nach der Installation
pluto-tx-doctorausführen. Es zeigt, ob alle Komponenten gefunden werden und ob die SDRs erreichbar sind.- RTL-SDR: Ein RTL-SDR, das schon vor der Installation gesteckt war, einmal ab- und wieder anstecken, damit die Zugriffsrechte der udev-Regel greifen. Einen noch geladenen DVB-T-Treiber (
dvb_usb_rtl28xxu) löst librtlsdr beim Öffnen selbst ab; nach dem nächsten Neustart lädt er dank Sperrliste gar nicht mehr. - Eine vorhandene Git-Installation mit Startern in
~/.local/binverdeckt das Paket.pluto-tx-doctor --fix-launchersbenennt die alten Starter um; gelöscht wird nichts.
Programme
- Die Desktop-Apps findest du im Menü (Pluto TX, Pluto Advanced RX, Web-TRX) oder startest sie im Terminal mit
pluto-txbzw.pluto-advanced-rx. - Für die Kommandozeile ohne GUI gibt es
pluto-cli --help,pluto-cli tx --help,pluto-cli rx --helpundpluto-cli devices --help.
Web-TRX-Server von Hand starten und stoppen
web-trx start # startet den Server im Hintergrund und zeigt die Adressen
web-trx status # läuft er? (--json für Skripte)
web-trx log # Log live mitlesen (Strg+C beendet nur die Anzeige)
web-trx restart # nach Änderungen an den Einstellungen
web-trx stop # beenden; der Sender geht dabei in den sicheren Zustand
web-trx open # im Browser öffnen (nur auf einem Rechner mit Desktop)- Adresse:
https://<rechner>:8321. Das Zertifikat ist selbstsigniert, der Browser warnt einmal. Die Ausnahme musst du zulassen, denn das Mikrofon funktioniert im Browser nur über https. - Passwort: Es wird beim ersten Start erzeugt, angezeigt und in
~/.config/pluto-tx/web-trx.envgespeichert. Dort kannst du es ändern und dannweb-trx restartausführen. - Solange Web-TRX ein SDR geöffnet hat, können die Desktop-Apps dieses SDR nicht nutzen. Die Apps zeigen das in ihrer Web-TRX-Zeile an und können den Server dort auch starten und stoppen.
Einstellungen: ~/.config/pluto-tx/web-trx.env
WEB_TRX_PASSWORD=... # Login-Passwort
WEB_TRX_PORT=8321 # Port
WEB_TRX_HOST=0.0.0.0 # Adresse, auf der der Server lauscht (127.0.0.1 = nur lokal)
WEB_TRX_TLS=false # http statt https (dann kein Mikrofon im Browser, außer auf localhost)
WEB_TRX_STATION_CALL=N0CALL # eigenes Rufzeichen (FT8/JS8)
WEB_TRX_STATION_LOCATOR=AA00 # eigener Locator
WEB_TRX_BACKEND=sim # Simulation ohne Hardware, zum AusprobierenLaufzeitdaten wie Log, Zertifikat, Sitzungen, TX-Log und Einstellungen liegen in ~/.local/state/web-trx/.
Ohne Monitor (headless), wenn du den Server von Hand startest: GNU Radio öffnet immer einen lokalen Audio-Ausgang, auf manchen Rechnern ist ALSA-default ein HDMI-Ausgang. Ohne Monitor scheitert dann der RX mit audio_alsa_sink. Abhilfe: diese zwei Zeilen in web-trx.env eintragen, danach web-trx restart. Der Ton geht ohnehin an den Browser, und der Dienst setzt das schon selbst.
GR_CONF_AUDIO_ALSA_DEFAULT_OUTPUT_DEVICE=null
GR_CONF_AUDIO_ALSA_DEFAULT_INPUT_DEVICE=nullWeb-TRX als Dienst (headless)
Mit dem Dienst startet der Server bei jedem Boot, auch ohne Anmeldung. Die Station kann dann senden, ohne dass jemand am Rechner angemeldet ist. Deshalb ist der Dienst nach der Installation aus und muss bewusst eingeschaltet werden:
web-trx service enable # als normaler Benutzer (nicht mit sudo); fragt selbst nach dem sudo-Passwort
web-trx service status # Zustand des Dienstes
web-trx service disable # Dienst ausschalten und entfernen- Der Dienst heißt
web-trx@<benutzer>.serviceund läuft als dein Benutzer, mit denselben Einstellungen und Daten wie oben. - Stoppen und Starten, ohne ihn auszuschalten:
sudo systemctl stop|start|restart web-trx@$USER. Einweb-trx stopbeendet einen laufenden Dienst ebenfalls, danach läuft er erst nach dem nächsten Boot wieder. - Log:
web-trx logoderjournalctl -u web-trx@$USER.
Deinstallieren
sudo apt remove pluto-tx # Programm entfernen
sudo apt purge pluto-tx # zusätzlich die Dienst-Einrichtung entfernenDeine Einstellungen und Daten in ~/.config/pluto-tx/ und ~/.local/state/web-trx/ bleiben erhalten. Wenn du sie nicht mehr brauchst, löschst du sie von Hand.
Weitere Doku
- Im Paket:
/usr/share/doc/pluto-tx/(README, README.web-trx.md, README.pluto-cli.md) man web-trx,man pluto-txusw.
Inhalt
pluto-tx,pluto-advanced-rx,pluto-cli,web-trx,pluto-tx-doctor, mit Menüeinträgen- Alle optionalen Komponenten sind vorgebaut: M17 (gr-m17), LoRa/Meshtastic/MeshCore (gr-lora_sdr), RADE (rade_c), FT8 (ft8_lib), JTTY (wsjt-codec), JS8 (js8ref und JSC-Wortlisten)
- Der Host-Teil des ESP32-S3 mit vorgebauter Firmware
- Web-TRX mit fertigem Frontend und den FastAPI/Uvicorn-Paketen der Distribution, ohne eigene venv
- udev-Regel: HackRF und RTL-SDR sind für den angemeldeten Benutzer ohne Gruppe und ohne Neu-Anmeldung nutzbar
web-trx@.servicewird deaktiviert ausgeliefert und ist ein bewusster Schritt:web-trx service enable
Getestet
Paket gebaut aus 7951515; bis zum Tag kamen nur diese Notizen hinzu. In einem frischen Ubuntu-26.04-Container ohne Build-Werkzeuge: Installation allein aus den Distributionsquellen, --version und --help aller Programme, alle Komponenten, pluto-tx-doctor, Web-TRX im Simulator, 658 Tests gegen den installierten Code (11 übersprungen), nichts unter /usr geschrieben, Entfernen und Löschen sauber.
Über Funk, aus dem Git-Stand und nicht aus dem Paket, mit Pluto+ bei −40 dB und HackRF bei VGA 0 dB: JTTY auf 2 m, 70 cm und 23 cm, Pluto+ und HackRF als Sender, RTL-SDR und HackRF als Empfänger; Gegenprobe mit rjtty und sjtty aus WSJT-X; Soundkarte von Lautsprecher zu Webcam-Mikrofon. Messwerte: docs/jtty/TESTS.md. MeshCore gegen einen echten Heltec V3, mit Web-TRX als Sender und Empfänger.
Bekannte Grenzen
- JTTY ist experimentell.
wsjt-codecstammt aus einer Beta, das Protokoll hat keinen Versionsmarker. Keine echte Gegenstation gehört und kein QSO gefahren. Web-TRX und die Desktop-Apps nicht mit echter Hardware getestet, AIOC und Soundkarte am Funkgerät gar nicht. - JTTY-Fehldekodierungen: Einzelne unsinnige Zeilen um −16 dB kommen vor, auch im Original.
- JTTY auf 23 cm: Ein kalter Pluto startet rund 300 Hz zu hoch und driftet bis −4 Hz/s. Der Driftausgleich ist nur mit warmem Pluto über Funk gesehen. Schon 0,65 ppm Quarzfehler führen aus dem Suchfenster: dann Audio Hz auf das Signal stellen oder die ppm-Korrektur setzen.
- JTTY-Langlauf ungeklärt: Ein CLI-Empfänger am RTL-SDR dekodierte nach 26 Minuten eine Serie nicht und endete mit Exit 134. Die Wiederholung wurde abgebrochen, die Ursache ist unbekannt.
- HackRF-Empfang: Bei der Standardrate 4 MS/s verlor JTTY Rahmen und rund 10 dB; für Digimodes
--bandwidth 2000000setzen. - POCSAG: Bei 512 Baud geht selten der erste Batch verloren und damit die Nachricht, wenn Startzeitpunkt und Frequenzversatz ungünstig zusammentreffen (rund 2 von 100 Testläufen). Das bestand schon vor diesem RC. Dieselben Tests können deshalb gelegentlich fehlschlagen.
- MeshCore: Standard sind 869,618 MHz im SRD-Band, nicht im Amateurfunk. Dort gelten nach unserem Kenntnisstand 500 mW ERP und 10 % Duty-Cycle; die App begrenzt nur die Sendezeit, nicht die Leistung hinter einer Endstufe.
- Nicht getestet: das installierte Paket mit echten Geräten und die grafischen Apps auf einem echten Desktop.
- APRS: Auf 144,800 MHz wurde noch nie gesendet. HackRF, Soundkarte, AIOC, die Sendeknöpfe der Desktop-Apps und die automatische Bestätigung sind über Funk nicht getestet. Details:
docs/aprs/SPEC.md. - POCSAG nach dem Umbau des Tastablaufs nur mit dem Pluto+ bei 1200 Bd über Funk geprüft.
- ADS-B und ADS-L: HackRF nicht an echtem Signal getestet.
- Empfindlichkeit: Rechenlast des eigenen Rechners stört einen danebenstehenden RTL-SDR messbar, vor allem um 70 cm um bis zu 14 dB.
- Noch keine APT-Quelle und kein
get.sh; Updates vorerst durch Installieren des neuen.deb. - Eine bestehende Git-Installation mit Startern in
~/.local/binverdeckt/usr/bin.pluto-tx-doctorzeigt das an,pluto-tx-doctor --fix-launchersbenennt die alten Starter um. - Aus RC1, in den vollen Läufen zu diesem RC nicht wieder aufgetreten: In einem von vier vollen Testläufen unter Ubuntu 26.04 stürzte der Testprozess einmal mit einem Segmentation Fault ab, in der Nähe der RADE-Tests. In den übrigen drei Läufen (zwei davon mit dem veröffentlichten Paket) trat er nicht auf. Die Ursache ist noch nicht geklärt.
- Lizenzhinweis gr-m17: Die Top-Level-
LICENSEvon gr-m17 und das Submodullibm17enthalten den GPL-2.0-Text ohne Versionsangabe; die Quellen von gr-m17 selbst sind GPL-3.0-or-later. Die Frage ist noch nicht geklärt, siehe/usr/share/doc/pluto-tx/copyright. - Lizenzhinweis ESP32-Firmware: Die vorgebauten Images in
espdr/imagessind mit derlibphy.aaus ESP-IDF v5.5 gelinkt, für die die Bedingungen von Espressif gelten.
Quellen
sources-0.9.0.rc3.tar.xz enthält pluto-tx und alle gebündelten Komponenten zu den eingebauten Commits (packaging/components.lock), dazu die Quelltexte von WSJT-X v3.3.0-beta5 und FFTW 3.3.11, deren Binärdateien wsjt-codec mitbringt. Die Lizenztexte liegen im Paket unter /usr/share/doc/pluto-tx/licenses/. Prüfsummen: SHA256SUMS (noch nicht signiert).