Lyra — Qt6 SDR Transceiver für Hermes Lite 2 / 2+
Lyra — Qt6 SDR Transceiver für Hermes Lite 2 / 2+
Aktuelle Version: 0.1.0-pre2 — „RX2 Dual Receiver“
Modern PySide6 Desktop-SDR für Steve Haynals Hermes Lite 2 und HL2+. Native Python HPSDR Protokoll 1, TCI v1.9 Server, gläserne Benutzeroberfläche mit Lit-Bogen- und LED-Stabzähler, ein Band-Plan-Overlay mit Wahrzeichen click-to-tune, GPU-beschleunigter Panadapter + Wasserfall, Dual-Empfang (RX2) mit fokussiertem VFO-Operatormodell und SUB-Stereo-Split, a CW-fokussiertes Audio-Toolkit (APF-Audio-Peaking-Filter + BIN binaural Pseudo-Stereo) und ein tiefes WDSP-cffi-Noise-Toolkit, das sich auf Warren Pratts WDSP — EMNR-Modus 1-4 Rauschunterdrückung, adaptive Linie Enhancer (ANF), All-Mode-Squelch. Eingebaute Wetterwarnungen beobachten die Lokale Bedingungen des Betreibers über mehrere Datenquellen hinweg (Blitzortung, NWS, Ambient, Ecowitt) und erhöhen Sie die Symbolleiste + Toast Benachrichtigungen für Blitz- und Hochwindereignisse.
Status
Pre-alpha — RX ist funktionell; TX ist in Arbeit. Entwickelt und getestet gegen ein Hermes Lite 2+ Board.
Die obige Versionsatte ist die einzige Quelle der Wahrheit, die in lyra/__init__.pyund Oberflächen in:
- Die Fenster-Titelleiste
- Die Hilfe → Über Lyra Dialog
- Ein permanentes Label auf der rechten Seite der Statusleiste
- Der Abschnitt Über den Benutzerführer (live aus Paketmetadaten renderederd)
Das Bumping der Version ist eine einzeilige Bearbeitung in lyra/__init__.py; jede Die Anzeigefläche folgt automatisch.
Changelog
Alle bemerkenswerten Änderungen an Lyra-SDR werden in dieser Datei dokumentiert, zuletzt zuletzt.
Das Format folgt Keep a Changelog lose. Lyra verwendet Pre-1.0-Semver: 0.<minor>.<patch>wo <minor>Beulen für Benutzerorientierte Feature-Batches und <patch>Beulen für nur Bug-fix-Veröffentlichungen zwischen Feature-Batches. Siehst du lyra/__init__.pyfür die kanonische Version String.
Lizenzhistorie: durch v0.0.5 wurde Lyra MIT-lizenziert. Beginnend mit v0.0.6, Lyra ist GPL v3 oder höher (siehe NOTICE.md).
[0.1.1] — 2026-05-14 — Polnisch & Audio-Routing
Polnisches Release auf v0.1.0 RX2 GA. Fünf gebündelte Artikel (§15.16 Zielfernrohrsperre) vom Park-Features-Rückstandsschiff zusammen statt Als fünf Schnellfeuer-Pflaster.
Neue Features
- RIT (Receiver Incremental Tuning) — TUNING-Panel erhält eine
RITTaste neben der VFO-Brückengruppe. Klicken Sie auf RIT ein/aus; Shift+click Nullen der Offset und deaktiviert in einer Geste. Wenn engagiert, eine Inline[−] value [+]StepperReadout erscheint neben die Schaltfläche zur Offseteinstellung (1 Hz / Klick, 10 Hz / Shift+click, Klick-und-Halte-Rampen, Mausrad = 1 Hz/Kerbe, Rechtsklickwert für getippte Präzisionseinfahrt). Stepper versteckt sich, wenn RIT ausgeschaltet ist, so dass die Die Reihe bleibt kompakt. Reichweite ±9999 Hz. Bleibt über Sessions hinweg bestehen. RX1 nur in v0.1.1 — pro-RX RIT aufgeschoben. - TCI RX2 Kanal — Lyra wirbt jetzt für
channel_count:2;auf Clientverbindung und RoutenDDS:1/VFO:0,1/IF:0,1/MODULATION:1Befehle an RX2. Outbounddds:1/vfo:0,1/modulation:1sendet Feuer auf RX2 Zustandsänderungen. SDRLogger+ (und jeder andere Dual-VFO-TCI-Client) kann jetzt sowohl RX1 als auch RX2 von einer einzigen Websocket-Verbindung. Initial-State-Emission auf connect füllt die ch1-Oberfläche des Kunden ohne Umfragen. - Gerätelisten-Gruppierung nach Host-API — Einstellungen → Audio → Dropdown-Menü Ausgabegerät gruppiert nun Einträge mit Abschnittsteilern (Windows WASAPI / Windows WDM-KS / DirectSound / MME / ASIO), Das gleiche physische Gerät einmal pro verfügbarer Host-API. Status Banner Shows
✓ N device(s) across M host API(s). Entfernt die vorherige Verwirrung des Sehens von „Speakers (Realtek)“ fünfmal hintereinander ohne Erklärung. - VAC Digital-Modes Workflow Doc —
docs/help/audio.mdgewinnt eine „Digitale Modi mit VAC“-Abschnitt für virtuelles Audiokabel Retouting nach WSJT-X / FLDigi / JS8Call / MSHV, TCI-vs-VAC Vergleich, Latenz-Mathe und Per-App-Getchas. Code-Pfad bereits funktioniert (VAC registriert sich als normales Audiogerät); dies ist die fehlende Dokumentation.
Fehlerbehebungen
- TCI-Limit-Schlüsselkollision (RX1 vs RX2) —
_broadcastBisher Keyed Rate Limiting nur durch Befehlsname, so schnell RX1-Tuning könnte RX2-Sendungen verhungern lassen und umgekehrt. Jetzt Schlüssel von(command, channel)So bekommt jeder RX seinen eigenen Rate Bucket. - Auto-LNA-Tasten-Tooltip – aktualisiert, um die Pull-up-Realität zu entsprechen (Das Vermächtnis „erhöht nicht Gewinn“ Behauptung war falsch, seit die Auto-LNA-Klimmzugszweig landete mehrere Releases zurück).
Scope Notizen
- XIT — TX-Spiegel-RIT; renders deaktiviert in v0.1.1, Schiffe vollständig in v0.2 neben TX-Breitstellung (~2 h ermöglichen die Arbeit auf der Oberseite der v0.1.1 RIT-Infrastruktur).
- ASIO-Unterstützung — Host-API-Gruppierung ist vorhanden; Volle ASIO-Schiffe in v0.2, wenn TX-seitige Monitor-Latenz die ~5 ms Host-API-Boden lohnt sich auf die Implementierung.
- WASAPI Exclusive-Modus — bereits in v0.0.9.6 über die Einstellungen → Audio-Host-API-Dropdown; das Audit während v0.1.1 prep markierte, dass es mit „still geparkt“ im §15.16 Rückstand (kein Code funktioniert, nur Dokumentationsschließung).
Testabdeckung
Verhaltensvalidierungspass: 11 TCI RX2 Channel-Routing-Assertionen (DDS / VFO / IF / MODULATION read+write auf ch0 und ch1, Kanal Isolation, Müll-Index-Handling, Rate-Limit-Schlüsseltrennung) + 6 RIT-Mathe-Assertionen (USB-Baseline, off→on-Knebel, ±offsets, CW Pitch-Zusament, RX2-Isolierung, Reichweitenspannung) + UI-Prüfstandsprüfung (Schritte-Sichtbarkeit, Signalsynchronisation, keine Echoschleifen). Bankbestätigt 2026-05-14.
Letzte Veröffentlichung — siehe CHANGELOG.md
Die aktuelle Veröffentlichung ist 0.1.0-pre2 — „RX2 Dual Receiver“ (2026-05-12). Vorabversion für Tester-Tischflug mit Brent (N9BC), Timmy (KC8TYK), und N8SDR. Die Hauptänderung ist der vollständige RX2-Doppelempfänger auf der HL2 — Zwei unabhängige Empfänger, die nebeneinander unter einem fokussierten VFO laufen Betreibermodell.
- RX2 Dual-Empfänger — zweiter Empfänger auf DDC1 mit eigenem VFO, Modus, Filter, AGC und NR-Zustand. Beide Empfänger laufen kontinuierlich Wann immer RX2 aktiviert ist – keine Muting-Tricks oder Quick-Toggles.
- Fokussiertes VFO-Modell – genau ein VFO ist jederzeit „fokussiert“; Panadapter, Tuning-Knauf, Modus-Picker, Band-Tasten und GEN/TIME/ Mem erinnert sich an alle Handlungen auf dem fokussierten VFO. Grüne Grenze an der Fokussierte VFO-Frequenzanzeige markiert, wohin der Eingang geht. Swap Fokussieren Sie durch Anklicken der LED des anderen VFO, Strg+1 / Strg + 2, oder mittlerer Klick an einer beliebigen Stelle auf dem Panadapter.
- SUB Stereo Split — Single-Button-Toggle auf dem TUNING-Panel. Sub off = mono auf fokussiertem VFO. SUB on = RX1-links / RX2-Rechts Stereo Split. Vol-A / Vol-B / Mute-A / Mute-B Schieberegler sind immer sichtbar (Phase 3. E.1 Hotfix — vorhersehbare Layout-Bedingungen Widgets). Balance + AF Gain bleiben einzelne gemeinsame Steuerelemente.
- VFO B immer sichtbar – die zweite Frequenzanzeige (zuvor versteckt) sitzt jetzt dauerhaft unter VFO A. Klicken Sie auf Geben Sie ihm Fokus; Doppelklicken, um eine Frequenz einzugeben.
- Ausdauer über Sitzungen hinweg –
rx2_enabled,focused_rx, pro-RX vol / stumm und pro RX-Modus alle Hin- und Rückfahrt durch die Lyra Sitzungsdatei. Öffnen Sie Lyra genau, wie Sie es verlassen haben. - Reduzierung der Audioweglatenz (Post-pre2-Politur, §15.7) — rmatch ring 400 → 150 ms, HL2 TX-Latenzregister 40 → 15 ms. ~275 ms rasiert vom RX-Pfad gegen vor§15.7. Siehe das Benutzerhandbuch Problembehandlungsthema für die Tester-Diagnostik-Env-Vars (
LYRA_RMATCH_RING_MS,LYRA_HL2_TXLATENCY_MS,LYRA_TIMING_DEBUG).
Für die vorherige Veröffentlichung vom v0.0.9.3 („WDSP AGC“ — Warren Pratt wcpAGC-Engine, APF bewegt nach AGC, Soundgerät-Geräte-Info Diagnose), v0.0.9.2 (Host → Radio EP2-Kadenz-Umschreibung, Bandwechsel Fixes, 48 k IQ-Renten) und der v0.0.9 / v0.0.9.1-Charge (Memory & Stations, TIME-Taste, EiBi-Overlay, etc.):
- TIME-Taste (HF-Zeit-Station-Zyklus). Drücken Sie ZEIT auf die BANDs Panel zum Springen zu WWV / WWVH / CHU. Drücken Sie erneut, um durchzutreten 9 Zeitsignalfrequenzen (2.5, 3.330, 5, 7.850, 10, 14.670, 15, 20, 25 MHz) in länderbezogener Reihenfolge — nächstgelegene Stationen zu Ihrem Callsign zuerst. Modus + Filter automatisch eingestellt.
- GEN1 / GEN2 / GEN3 Anpassung. Klicken Sie mit der rechten Maustaste auf einen GEN-Slot, um Speichern Sie Ihre aktuelle Frequenz / Modus / Filter. Dialog bestätigen verhindert versehentliche Überschreibungen. Die Standardwerte sind sinnvoll (40m / 20m SSTV / 10m), aber jeder Slot gehört Ihnen, um neu zuzuordnen.
- Speicherbank — 20 benannte Voreinstellungen. Neue MemMem-Taste neben GEN3 öffnet ein Dropdown-Menü mit benannten Operatorspeichern (z. „OMISS Netz 7.185, „30m Beacon“). Addieren Sie aus dem Dropdown-Menü, verwalten von Einstellungen → Bänder → Speicher: Umbenennen, Nachbestellen, Löschen, CSV Import / Export.
- Shortwave Broadcaster Overlay (EiBi). Lyra malt jetzt Stations-IDs auf dem Panadapter — Name + Sprache + Zielregion — für den Sender, der derzeit in jeder sichtbaren Frequenz in der Luft ist innerhalb der SW-Sendebänder (49m bis 11m). Auto-unterdrückt in den Amateurzuteilungen Ihrer Region, damit es nicht überfüllt Schinkenbands. Mit einem Klick aus der saisonalen EiBi CSV gezogen Hintergrund-Updater (Auto-Update + manuelle Installationspfade beide unterstützt). Mehrreihes Label stapeln, wenn Bands überfüllt werden.
Plus: Tooltip-Schriftart für Lesbarkeit auf 13 pt gestoßen, Einstellungsdialog Er erhielt eine BandsBands-Registerkarte, die alle oben genannten enthält.
Die Vollversionshistorie (0,0.3 → 0.0.9) finden Sie unter In: CHANGELOG.md.
Siehst du docs/help/getting-started.mdfür die komplette Führung oder Presse F1 in der App für das In-App-Benutzerhandbuch.
Merkmale bisher
RX-Signalkette
- Native HPSDR P1 Discovery + Streaming (UDP, Port 1024)
- Dual-Empfang (RX2) auf DDC1 — unabhängig VFO / Modus / Filter / AGC / NR pro RX
- Spektrum-korrekter Panadapter (HL2 Basisband Spiegelkorrektur angewendet)
- AGC mit Schnell / Medium / Langsam / Lang / Auto / Kundenspezifische Profile (WDSP wcpAGC engine via cffi)
- Auto-LNA-Back-off + Opt-In-Klimmzug (Überlastschutz, Bereich -12 bis +48 dB)
- Manuelle Kerbfilter — Multi-Notch, pro Kerbe Q, Live-Schnitttiefe Visualisierung auf dem Spektrum
- WDSP EMNR Rauschunterdrückung (Mode 1-4 Picker, AEPF Nachfilter, NPE Rauschschätzer)
- Aufgenommene Rauschprofilbibliothek (schnappt das Rauschen der Band, erinnert sich später)
- Geräuschboden-Referenzlinie mit automatischer Schwellenfütterung AGC
- Passband-Overlay mit schleppbaren Kanten für Live-RX-BW-Tweaks
- Spitzenmarker (Linie / Punkte / Dreiecke, nur In-Passband)
Bands und Modi
- IARU Regionalbandpläne (US / R1 / R3 / NONE)
- Farbige Subbandsegmente + FT8 / FT4 / WSPR / PSK Landmark Dreiecke — Klicken Sie auf ein Dreieck, um die Modi zu optimieren und zu wechseln
- SSB (USB/LSB), CW, AM, FM, DIGU / DIGL
UI
- Angedockter Arbeitsbereich (auf schwebend / tabus ziehen / Layout zurücksetzen)
- Lit-Arc S-Meter mit LED-Bar Alternative (klicken Sie auf die Chip-Reihe im Meters-Panel-Header, um die Stile zu wechseln)
- Fokussierte-VFO-Anzeige (grüner Rand) + Mittelklick-zu-Swap der Panadapter
- Wasserfall mit acht Paletten (Classic / Inferno / Viridis / Plasma / Regenbogen / Ozean / Nacht / Graustufen)
- Klick-Beschriftungs-Farbauswahl in Einstellungen → Visuals (Text jedes Feldes Gemalt in der aktuellen Farbe dieses Feldes + fett gedruckt für auf einen Blick Konfigurationsansicht)
- Optionales OpenGL-Rasterisierungs-Backend, damit die Größe/der Vollbildmodus nicht geändert wird Audio anhalten
- Y-Achsen-Trag-to-Rescale am rechten Rand des Spektrums
- Zwei-Wege-Synchronisierung zwischen Schiebereglern und Einstellungen an der Frontblende anzeigen
Integration
- TCI v1.9 Server — steuert SDRLogger+, DX-Cluster, CAT-Clients
- DX-Spot-Rendering mit Altersverblassung und mehrreihiger Kollisionspackung
- Per-Session-Notch-Bank, pro-Band-Frequenzspeicher
Audio out
- HL2 Audio-Buchse (EP2 → AK4951 Onboard-Codec, Standard für HL2 Hardware) oder PC-Soundcard (WASAPI via PortAudio mit adaptivem Rmatch-Resampler)
- Automatischer Fallback, wenn die IQ-Stromrate die 48 kHz von AK4951 überschreitet
- Pro-RX Vol-A / Vol-B / Mute-A / Mute-B-Schieberegler immer sichtbar (SUB-bewusst)
Stapel
- Benutzeroberfläche: PySide6 (Qt6)
- Protokoll: Native Python HPSDR Protokoll 1 (UDP, Port 1024)
- DSP: WDSP via cffi (gebündelte GPL DLLs in
lyra/dsp/_native/)- NumPy / SciPy-Kleber für Nicht-DSP-Signalhandling
- Steuerung: TCI v1.9 Server
- Audio: HL2 Audio-Buchse (EP2 Codec) standardmäßig; sounddevice / PortAudio (WASAPI) für den PC Soundcard-Ausgabepfad
- Zielbetriebssystem: Windows-first
Aus der Quelle laufen
Erfordert Python 3.11+ unter Windows.
Schnellstart:
pip install -r requirements.txt
python -m lyra.ui.app
Oder Doppelklick LYRA.bat.
Schritt-für-Schritt-Installation für Nicht-Entwickler-Tester: siehe INSTALL.md— deckt Python-Installation, Git Setup-, Abhängigkeitsinstallations-, Common-Getchas- und Feedback-Kanäle. Eine druckbare Word-Version ist ebenfalls erhältlich docs/Lyra-SDR-Install-Guide.docx.
Beim ersten Start versucht Lyra, eine HL2 im lokalen Netzwerk zu entdecken. Wenn die Platine erreichbar ist, wird sie im Verbindungsfenster angezeigt; wenn nicht, überprüfen Sie die Firewall, die Verkabelung und dass der HL2 Strom hat. Voll Anleitung zur Fehlerbehebung im In-App-Benutzerhandbuch (drücke F1F1).
Hardware-Referenzen
- Hermes Lite 2: http://hermeslite.com/
- Hermes Lite 2+: https://www.hermeslite2plus.com/
Beziehung zu Thetis / WDSP / openHPSDR
Lyra v0.0.5 und früher (unter MIT) waren eine Reinraumimplementierung Referenzierung nur Protokolldokumentation und bedienersichtliche Benutzeroberfläche Verhalten — keine Thetis-Quelle wurde integriert.
Beginnend mit v0.0.6 (unter GPL v3 oder höher) ist Lyra voll Lizenzkompatibilität mit dem openHPSDR-Ökosystem. Zukünftige Releases kann direkt mit GPL’d Ham-Radio-Bibliotheken einbinden oder verlinken (insbesondere WDSP für PureSignal, CESSB und Advanced TX). Alles so Eingliederungen speichern vorgelagerte Urheberrechte + GPL-Begriffe; siehe NOTICE.mdfür laufende Offenlegungen Dritter.
ExpertSDR3 ist eine kommerzielle Closed-Source-Software von Expert Elektronik — aus veröffentlichten Handbüchern als Design referenziert Inspiration nur, keine Code-Beteiligung.
Backlog
Verfolgt in docs/backlog.md. Offene Elemente mit hoher Priorität: TX-Pfad, pro-Band-Notch-Speicher, freigelegte RNNoise / SpectralBleach NR über UI (DLLs bereits versendet, noch kein Frontend), Installateur für Beta Tester.
Lizenz
GNU General Public License v3.0 oder höher — siehe LICENSE.
Lyra wurde ursprünglich unter der MIT-Lizenz bis zum Abschluss freigegeben v0.0.5 („Listening Tools“). Beginnend mit v0.0.6 ist Lyra Relizenziert unter GPL v3 oder höher, um der Lizenzierung der breiteres openHPSDR / WDSP-Ökosystem und um zukünftige Integration zu ermöglichen mit WDSP-basierten Funktionen (PureSignal, CESSB, Advanced TX). Vergangenheit Die Veröffentlichungen (≤ v0.0.5) bleiben unter ihren ursprünglichen MIT-Begriffen; die Relicense gilt nur für v0.0.6 und höher.
Was das in der Praxis bedeutet:
- Sie können Lyra für jeden Zweck verwenden, einschließlich kommerzieller Nutzung
- Sie können Lyra frei ändern
- Sie können Lyra und Ihre Modifikationen weiterverteilen – aber das Ergebnis Sie müssen auch GPL v3 (oder später) sein, und Sie müssen Quelle zur Verfügung stellen
Was sich nicht ändert:
- Spenden sind immer noch willkommen (PayPal, etc.) – GPL schränkt nicht ein Zahlung für das Projekt erhalten
- Betreiber können Lyra kostenlos ausführen, keine Strings
- Die komplette Quelle bleibt auf GitHub öffentlich
Für den kanonischen GPL v3 Text, siehe LICENSEin diesem Repository oder https://www.gnu.org/licenses/gpl-3.0.html.
© 2026 Rick Langford (N8SDR), Brent Crier (N9BC), Timmy Davis (KC8TYK), und Lyra-SDR-Mitwirkende — siehe CONTRIBUTORS.md


