Skip to content

hydrasdr-host

Host library and command-line tools for the HydraSDR RFOne receiver

What it does

The host side of the HydraSDR RFOne, a USB software defined radio receiver: a shared library (libhydrasdr) that opens the board, configures it and streams samples, and seventeen command-line programs on top of it. hydrasdr_info reports the board, hydrasdr_list_devices lists what is attached, hydrasdr_rx records samples to a file, hydrasdr_calibrate stores a frequency correction in the board, and the rest reach the tuner, the clock generator, the GPIO pins and the SPI flash directly. Upstream's README gives the RFOne a range of 24 MHz to 1.8 GHz at up to 10 MSPS and three RF ports; this project has run none of that.

Why you would want it

It is the layer every other program reaches the RFOne through. The SoapySDR module (soapysdr-module-hydrasdr), and through it SDR++, GQRX, CubicSDR and GNU Radio, are built on this library, and hydrasdr_info is the first check that the board and its permissions are right before any application is involved. It is the successor to the Airspy host code, so an operator coming from an Airspy R2 will find the same shape of tools.

Before it will work

A HydraSDR RFOne, which the maintainer does not own, and the udev rule and plugdev membership from the hydrasdr-rfone hardware entry (hammunition hardware apply). Without the rule the tools see the board only as root. Nothing to configure before the first run.

How it installs

  • apt: hydrasdr-tools — on kali
  • Kali rolling carries hydrasdr-tools 1.1.1+dfsg-1 and libhydrasdr1, the same revision as the build below. Installed and run in a kali-rolling container on 2026-10-02: hydrasdr_info prints the library version (1.1.1) and reports no devices found, exit 0. The package also ships the vendor's udev rule (the same file the hardware entry cites), which carries a second, looser rule for systems without a plugdev group (GROUP users, MODE 0664) and whose own header says that second rule overrides the plugdev one. So on this target the package's rule, not the catalog's 0660 plugdev rule, may decide the node's group and mode; which one wins depends on the order udev reads the two files, and that was not measured.
  • apt: hydrasdr-tools — on ubuntu; version 26.04
  • Ubuntu 26.04 carries hydrasdr-tools 1.0.3-1, older than the pinned 1.1.1 below, with libhydrasdr0. Installed in an ubuntu:26.04 container on 2026-10-02: hydrasdr_info runs and reports no board found. This package ships the same vendor udev rule with the same looser GROUP users, MODE 0664 fallback as Kali's (see there for what that means). Debian 13 and Ubuntu 24.04 have no package and take the build.
  • git (cmake) — https://github.com/hydrasdr/hydrasdr-host at v1.1.1 (commit d2812bd001f55ebee4c5d629fe47744cdd64aeec)
  • build dependencies: build-essential, cmake, pkg-config, libusb-1.0-0-dev
  • Built on 2026-10-02 in rootless containers the way this block runs it -- cmake configure, cmake --build --parallel 2, cmake --install into /usr/local, with the build_depends above, and nothing run as root but the install. debian:13 (cmake 3.31, gcc 14), ubuntu:24.04 (cmake 3.28, gcc 13), ubuntu:26.04 and kali-rolling (cmake 4.3, gcc 16): exit 0 on all four, about 7 s on a warm machine, ten -Wdeprecated warnings from the tools' own use of gain calls the library has deprecated. The install leaves the library, its pkg-config and CMake files, the headers and seventeen tools under the prefix and writes no udev rule (the CMake option for one, INSTALL_UDEV_RULES, defaults off and would write /etc/udev/rules.d; the hardware entry owns the rule). Run without a device: hydrasdr_info prints the library version and "Total HydraSDR devices found: 0", exit 0. Built on x86_64 only; arm64 is unmeasured. Not measured: any RFOne, streaming, or firmware access.

Binaries this produces:

  • hydrasdr_info
  • hydrasdr_rx
  • hydrasdr_list_devices
  • hydrasdr_lib_version

Files its install rule leaves under the prefix, checked after the run and never copied or removed by the engine:

  • lib/libhydrasdr.so
  • lib/libhydrasdr.so.1
  • lib/pkgconfig/libhydrasdr.pc
  • include/libhydrasdr/hydrasdr.h

Known problems

Builds on Debian 13, Parrot and Ubuntu 24.04 install into /usr/local, and the library is found through an embedded run path rather than the system library cache; a program of your own that links libhydrasdr needs -L/usr/local/lib -Wl,-rpath,/usr/local/lib or a run of ldconfig as root. The RFOne shares a USB identifier with the Airspy R2 and Mini (1d50:60a1, in firmware that predates the board's own identifier), so a tool written for one can open the other; see the hardware entries. hydrasdr_spiflash, hydrasdr_reset and hydrasdr_calibrate write the board's flash: run them knowing which board is attached. Kali's and Ubuntu 26.04's packages are named hydrasdr-tools and differ in version (1.1.1 and 1.0.3) from the 1.1.1 build the other targets get, and both ship the vendor's udev rule with a looser fallback for users (group users, mode 0664; see the install notes). Licence: upstream's tree states two things, the per-directory LICENSE.md files (MIT and BSD-3-Clause for the library, GPL-2.0 for the tools) and a debian/copyright reading "Custom-HydraSDR, licensed exclusively for HydraSDR products ... All rights reserved". This catalog follows the LICENSE.md files and builds on your machine from upstream's tag, redistributing nothing; read both before depending on it. Not measured: everything that needs a board.

Keeping it current

  • probe: github tags (hydrasdr/hydrasdr-host)
  • strategy: rebuild
  • Tagged releases, several a year (v1.0.2 2025-07, v1.1.0 2026-02, v1.1.1 2026-05-02, v1.1.3 2026-09-11). Debian sid and Kali package v1.1.1; move the pin when a distribution does, or when a release fixes something this catalog has been told about. The tag and its commit move together. A moving tag called nightly sits at the head commit beside v1.1.3; a probe that reads the tag list must not take it for a release.

Where to get help with the software itself

Issues on the repository above and hydrasdr.com. Licences, per the LICENSE.md files: libhydrasdr is MIT with two BSD-3-Clause files, the tools are GPL-2.0; see the licence note under known problems.

Source: catalog/packages/hydrasdr-host.yaml