Yet Another Rust SDR Application

260 views
Skip to first unread message

John Melton

unread,
Sep 3, 2026, 6:02:59 PMSep 3
to apach...@groups.io, herme...@googlegroups.com

Some time ago I announced that I was working on a Rust application for HPSDR radios called rustyHPSDR.  This was written using GTK4 as the UI framework.  I had it working on Linux but was having problems with GTK4 on Windows so decided to try porting it to egui, a Rust UI framework that is portable across Linux, Windows and Mac. 

As an experiment I extracted out the Discovery code and tried using Claude to port the code.  This worked out so well I decided to see if Claude could write the code for the rest of the application rather than porting the existing code. It still uses WDSP as the DSP engine. I did point Claude to protocol documents, WDSP documentation and the source of piHPSDR and rustyHPSDR as a reference.

As a result I have hpsdr-rs which is now quite stable.

I have tested it on Ubuntu 26.04 Linux and on Windows 10.  It should build on a Mac, but I do not have one to test with.

The latest version is on my github account at https://github.com/g0orx/hpsdr-rs.  See the README.md and the User Manual  (linked to from the README.md) for more details.

The main features of the current code are:

  • Protocol 1 and Protocol 2 support, with standard openHPSDR UDP discovery (broadcast, port 1024)
  • Multiple simultaneous receivers (main receiver + independent "extra receiver" windows), each with its own VFO, mode, filter width, and band memory
  • Spectrum/waterfall display with adjustable dB range, palette, and Click-to-Tune (CTUN)
  • SSB/CW/AM/FM/digital modes, per-mode/per-band filter width and mode memory
  • Noise blanker (NB/NB2), noise reduction (NR/NR2/NR3/NR4), and SNB (spectral noise blanker), independently switchable
  • AGC with selectable Off/Long/Slow/Medium/Fast modes
  • TX: mic audio through WDSP's TXA chain, ALC, TX power/SWR meter with per-band PA calibration, and a Tune button (WDSP PostGen tone centered in the passband, at a separate reduced "Tune Power" for safe antenna/PA tuning)
  • PureSignal (PA linearization/predistortion), on both Protocol 1 and Protocol 2
  • rigctl (Hamlib-compatible), TCI (WebSocket), and CAT (Kenwood TS-2000 emulation) control servers, for use with WSJT-X, N1MM+, Log4OM, and similar logging/digital-mode software
  • Dual VFO (VFO A/B) with Split -- transmit on VFO B while receiving on VFO A
  • Selectable RX output / TX input audio devices (independent of the OS default), for routing through virtual audio cables
  • Per-radio settings persistence (keyed by the radio's MAC address, so multiple physical radios each keep their own saved configuration)
  • FPGA firmware upload and static IP configuration

-- John G0ORX/N6LYT

Anyone else remember YACC - Yet Another Compiler Compiler?  From when I worked on language and compiler design at Burroughs Corporation in Goleta, Santa Barbara, CA.


Dan Cusick

unread,
Sep 5, 2026, 12:56:07 AMSep 5
to John Melton, apach...@groups.io, herme...@googlegroups.com
John,

It was easy to build on a mac!  From cloning it to building it - took about 5 minutes.  Dual receivers on split bands tonight - 40 & 20m.  Bands are not good for me at the time of this writing.  Picking up nets on 40.  The NR2 is able to focus super clearly without too much tunneling noise.  And I do remember YACC - in fact I used it in a compiler class.  We had 2 micro labs in school - one running a PDP11/40.  The newer one was an early 68000 based system - we also used the latter for Graphics classes.

I am using hpsdr-rs with an HL2.  Question - when I tx using MOX from my apple earbuds while holding the spacebar - I see my tx signal in the waterfall.  But my LP-100 is not showing me any TX on my antenna.  I guess I missed a setup feature to enable TX.  Is there a filter matrix similar to the one in Quisk?  I did find some of the tx params for Power out in Settings.

Thank you.  Claude is fun isn't it?
73,
Dan
W9IRL

--
You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hermes-lite/4759dd0f-0f64-4e73-a9ec-dbc8e1bd8ca1%40googlemail.com.

Jwahar Bammi

unread,
Sep 5, 2026, 1:13:32 PMSep 5
to Dan Cusick, John Melton, apach...@groups.io, herme...@googlegroups.com

I ran into a little build problem on Windows (no sniggering you mac/Linux people, I have those too), left you the full report as an issue on GitHub

 

..

 

73 de ws1m

Bammi

k...@khk.net

unread,
Sep 5, 2026, 2:20:18 PMSep 5
to Hermes-Lite
It looks like Google Groups is again not forwarding my emails... 

I've build it on a Mac with macOS 26.6.2 - and receiving seems to work fine. I only tuned, and that triggers the HL2 into a dummy load, but i have not otherwise transmitted. 

Hope that helps, 

Karl Heinz - K5KHK

Steve Haynal

unread,
Sep 6, 2026, 3:25:14 PM (14 days ago) Sep 6
to Hermes-Lite
Hi John,

Thanks for sharing. If you are willing, would you share which version of Claude (4.6, 4.8, 5.0 and model opus, sonnet) you used for this work, and a ballpark figure for the dollar cost in tokens?

I also have Goleta and YACC connections. I attended UC Santa Barbara from 1995-2000 for graduate school and lived in Goleta. Those were the best years of my life. I met my wife there. The research group I worked in had a project called production-based synthesis, which some described as YACC to create hardware state machines. It was good at describing FSMs for various hardware protocols. I didn't work on that directly but learned a lot about it.

73,

Steve
kf7o
Reply all
Reply to author
Forward
0 new messages