Openhpsdr Zeus v0.9.0
Openhpsdr Zeus v0.9.0
Cross-platform SDR client for OpenHPSDR Protocol-1 and Protocol-2 radios.
[0.9.0] β 2026-06-13
π°οΈ Smooth tuning, cleaner transmit, Raspberry Pi β and Voyeur Mode arrives as an optional plugin. Panadapter tuning now glides instead of jumping, PureSignal and the transmit path reach desktop-grade quality, Zeus runs on the Raspberry Pi 4/5 for the first time, and there's a live CW decoder and a reel-to-reel tape-deck recorder. Under the hood, the plugin system gained the hooks β an RX audio tap, host-mediated QRZ, and radio-state read β that let large features ship as optional add-ons instead of bloating every download. The first of those: Voyeur Mode, the unattended AI net monitor, is now an installable plugin β opt in only if you want it. Roughly 155 changes since v0.8.4.
What's new (in plain English)
Tuning that glides. Spinning the dial used to make the spectrum jump in steps. Now the panadapter animates smoothly to the new center, the receiver "catches up" faster after a big jump so the display isn't smeared, and the filter passband and dial marker stay locked to the center line the whole time. It just feels right now. (#597)
Voyeur Mode β your automatic net secretary, now an optional plugin. Voyeur is no longer baked into the main download β install it from Settings β Plugins so operators who don't use it carry none of its weight. Once installed, point it at a net and walk away: it records every over, turns the speech into text right on your machine, picks out callsigns and validates them against your QRZ account, builds a live roster of who checked in, and β with a small local AI model β writes a "what was discussed" summary so you don't re-listen to an hour of audio. Everything's saved in a searchable archive and any over replays with one click. The speech + AI engines download once, on first enable, on every platform (Windows, macOS Intel + Apple Silicon, Linux x64 + arm64). Privacy: transcription and summarization run entirely offline; the only thing that ever leaves your computer is the QRZ lookups you already use. (Install from the plugin browser; needs Zeus 0.9.0+. If you used the in-core Voyeur from a nightly, the plugin adopts your existing logs, engines, and models automatically β nothing is lost.)
CW decoder + redesigned Telegraph Console. Zeus now decodes received Morse to on-screen text in real time, streamed live from the radio's audio. The CW console was rebuilt and its settings persist across restarts, you get a proper host-side sidetone monitor, and the Hermes-Lite 2's on-board iambic keyer can be configured from Zeus.
Cleaner, more reliable transmit (PureSignal). A large body of work brought PureSignal and the transmit path on the desktop build up to the quality of the web build and Thetis: two-tone and voice are noticeably cleaner, PureSignal holds its correction instead of "jumping," your per-radio feedback-attenuation calibration is now saved and restored, and there's a two-tone IMD measurement overlay so you can see your transmit purity. Arming/disarming PureSignal mid-transmit no longer wedges it. (#556, #557, #558, #559)
Runs on Raspberry Pi. Zeus now has official arm64 Linux builds β an AppImage and a tarball β plus a headless deployment guide, so you can run the backend on a Raspberry Pi 4 or 5.
Tape-deck recorder. A new reel-to-reel style panel records your receive or transmit audio to a WAV file and plays it back, either locally or back out over the air.
Polish all over. Lots of settings now survive a restart that didn't before β panadapter dB scale, tuning step, band favorites, mic gain and Leveler. Every meter now shares the same smooth needle behavior. macOS signed builds can use the microphone and no longer depend on a Homebrew library being installed. Windows machines with multiple network adapters now discover the radio and draw the panadapter correctly. And the plugin system gained receive/transmit audio taps so audio plugins can see and shape the signal.
Added
- Voyeur Mode β now an installable plugin (
com.kb2uka.voyeur, in the plugin browser), not a core feature. Unattended net-monitor capture + log management; whisper speech-to-text with callsign extraction and host-mediated QRZ enrichment; roster report, searchable archive, per-over audio replay; a local-LLM "what was discussed" digest; in-app, terminal-free, cross-platform download of the speech + AI engines and models. Adopts any existing in-core Voyeur data (logs/engines/models) on first run. - Plugin SDK seams for receive-side feature plugins β
AudioBlockContext.Receiver(RX taps can filter to one receiver),IQrzLookup(plugins reuse the operator's stored QRZ credentials), and a registeredIRadioStateReader(current VFO/mode/band). These are what let Voyeur live outside core; SDK bumped to 1.2.0. - Raspberry Pi 4/5 support β linux-arm64 AppImage and tarball in the release matrix, with a headless deployment script and guide.
- WAV tape-deck recorder β record RX/TX to WAV and play back locally or over the air, from a reel-to-reel panel (#579).
- CW decoder + Telegraph Console β server-side CW decode streamed to the panel, redesigned console with persisted settings, host-side sidetone monitor, TCI raw-key sidetone, and HL2 on-board iambic-keyer configuration.
- Two-tone IMD measurement overlay for transmit-purity checks (Thetis parity).
- Smooth panadapter tuning β animated view-center with fast-attack averaging on retune (#597).
- Plugin audio pipeline β read-only RX audio tap, TX audio taps + playback sink, a post-demod insert seam, and an
IRadioControllerso plugins can key TX. - TCI spots rendered on the panadapter.
Changed
- Tuning the dial now glides the spectrum smoothly and keeps the passband + dial marker pinned to center during the move (#597).
- PureSignal runs continuous auto-mode (Thetis parity) and persists/restores per-board feedback attenuation with manual override (#557).
- CESSB now matches Thetis/piHPSDR/desktop defaults β off while PureSignal is armed, on otherwise β fixing voice-peak splatter (#559).
- Many settings now persist server-side across restarts: panadapter dB scale (#478, #496), tuning step + favorites (#515), mic gain + Leveler.
- All meters share a unified ballistics hook for consistent needle response.
Fixed
- Voyeur transcription produced nothing. Captured overs are 48 kHz but the bundled whisper engine requires 16 kHz and was silently rejecting every over; Zeus now down-converts in-process so transcription works (#614).
- macOS: signed builds can now use the microphone (
device.audio-inputentitlement); FFTW libraries are bundled in the.appso it no longer needs Homebrew (#421, #543); the bundle is code-signed correctly without--deep(#530). - Windows: radios are discovered and the panadapter draws correctly on hosts with multiple network adapters (#574).
- PureSignal/TX: the wedge watchdog recovers in ~5 s instead of ~37 s; two-tone no longer jumps; the TUN/two-tone pump runs on a real-time thread at the exact DAC rate so the transmit FIFO can't underrun; arming/disarming PureSignal mid-transmit no longer wedges correction (#558, #559).
- ANAN-10E wire byte
0x06with a low code version is now correctly classified as HermesII (#545). - Protocol 1: TxFreq refreshes during receive so HL2 external-amp boards drive the band-voltage output (#361, #503).
- Linux AppImage: WebKitGTK GPU acceleration disabled in
AppRunto fix blank/garbled rendering on some systems. - Sliders stream their value live during a drag and commit on release (#485).
One binary, three launch modes:
- Headless service (no flag, default) β LAN-bound HTTP/HTTPS server on
port 6060/6443. Console banner only, no GUI. Use this for systemd, Docker,
Raspberry Pi, or any headless deploy. - Server mode (
--serverflag) β same backend as headless, plus a
small Photino status window showing the LAN URLs and a Stop Zeus button.
What the new Zeus Server desktop icon launches on Windows / macOS /
Linux. - Desktop mode (
--desktopflag) β full Photino native window with the
web UI inline. Loopback only, no browser tab. Use this for single-machine
local operation.
Downloads
Windows (x64 / ARM64)
- openhpsdr-zeus-0.9.0-win-x64-setup.exe
- openhpsdr-zeus-0.9.0-win-arm64-setup.exe
The installer drops two Start Menu shortcuts plus optional desktop
icons: Openhpsdr Zeus (Photino native window, --desktop) and
Openhpsdr Zeus Server (backend + small status window with the LAN
URLs and a Stop Zeus button, --server). The desktop-icon checkboxes
appear on the installer's "Additional Tasks" page β pick whichever
icons you want on the desktop. ARM64 build is native for Surface Pro X
/ Snapdragon X Elite hosts. .NET 10 runtime is bundled β no separate
install required.
Upgrade behaviour: this installer reuses the same AppId as the previous
service-mode installer, so it upgrades that install in place. If you
previously installed the separate "Zeus Desktop" edition it remains
alongside this install as cruft until you uninstall it manually from
Settings β Apps.
macOS (Apple Silicon)
- OpenhpsdrZeus-0.9.0-macos-arm64.dmg
Drag both OpenHPSDR Zeus.app and OpenHPSDR Zeus Server.app to Applications.
Double-clicking OpenHPSDR Zeus.app opens the Photino desktop window;
double-clicking OpenHPSDR Zeus Server.app runs the backend with a small
status window showing the LAN URLs and a Stop Zeus button.
OpenHPSDR Zeus Server.app is a thin wrapper β drag both, or drag just
OpenHPSDR Zeus.app if you only want the desktop window.
Intel Mac builds are no longer published β the macos-13 runner queue
on GitHub-hosted Actions is too slow to be practical. Build from source
if you need one.
The DMG and both .app bundles are signed with a Developer ID
Application certificate and notarized by Apple, so Gatekeeper
accepts them directly β no xattr -cr workaround needed.
Linux (x64)
- openhpsdr-zeus-0.9.0-linux-x64.tar.gz
β extract; run./install-icons.shto register Zeus + Zeus Server
in the application menu, or invoke any of the three launchers
directly:./openhpsdr-zeus(headless service),./openhpsdr-zeus-desktop
(Photino window),./openhpsdr-zeus-server(backend + status window).
Self-contained .NET runtime + statically-embedded FFTW3. - OpenhpsdrZeus-0.9.0-linux-x86_64.AppImage
β single-file Photino desktop launcher:chmod +xand run. - OpenhpsdrZeus-Server-0.9.0-linux-x86_64.AppImage
β single-file server launcher: backend + status window with the
LAN URLs and a Stop Zeus button. - Both AppImages require
libwebkit2gtk-4.1-0(apt install/dnf install).
Linux (arm64 β Raspberry Pi 4 / Pi 5)
- openhpsdr-zeus-0.9.0-linux-arm64.tar.gz
β headless server for Raspberry Pi 4/5 and other arm64 boards.
Extract and run./OpenhpsdrZeus; openhttp://<pi-ip>:6060in
any browser. Self-contained β no .NET install needed on the Pi.
Requires: 64-bit OS (Raspberry Pi OS 64-bit or Debian arm64).
No extra packages needed (libfftw3-double3is pre-installed on
Debian 13; statically linked on older distros).
Desktop/Photino mode requireslibwebkit2gtk-4.1-0.
Seedocs/lessons/raspberry-pi-deployment.mdfor the full setup guide.
License
GNU GPL v2 or later. See LICENSE for details.