← All projects

spe-remote — SPE Expert remote control server

Active

Modern Python 3 remote-control server for SPE Expert HF amplifiers (1.3K-FA / 1.5K-FA / 2K-FA). Runs on a Raspberry Pi over USB serial and serves both a built-in web dashboard and a WebSocket API. Implements the full SPE Application Programmer's Guide Rev 1.1 plus the undocumented RCU command set, so the amplifier's LCD can be mirrored frame-by-frame.

Mixed-client broadcast — text JSON for browsers, binary RCU frames for the MacExpert companion app — over the same socket. Threaded reader + async writer survive the USB-serial poll glitches that crash naive serial_asyncio setups.

Server-side ballistics: p_out_avg (EMA, ~1 s settle) and p_out_peak (peak-hold, 600 W/s decay) travel alongside raw p_out, so a RAW / AVG / PEAK pill toggle on the shack dashboards reads meaningful values at CW-swing speeds without every client rolling its own filter. Interactive ./configure.sh lists the Pi's /dev/serial/by-id/ aliases for menu pick, walks through the optional Flex block, and preserves saved settings across re-runs; sudo ./install-service.sh --update re-configures and restarts the live systemd unit with a diff preview.

Optional flex: config opens a second connection to a FlexRadio 6000-series rig over the SmartSDR TCP API and orchestrates an SM5TOG-style ATU tune plus the full sub-band SWEEP; leave flex.host empty and the server auto-discovers the radio via SmartSDR's UDP broadcast on port 4992. All four UIs (MacExpert, the bundled dashboard, Node-RED /ui, Vue /shack) receive the same tune_event stream. Based on original work by OH2GEK, rewritten and extended.

View repo on GitHub
Python 3WebSocketRaspberry PiUSB serialSPE ExpertRCU protocolSmartSDRTUNE sweep
← All projects