Review: Airspy HF+

Airspy HF+ is a software defined radio receiver (SDR), which has been widely available since 2017. Unlike most of other devices, it has some cutting edge features like very high dynamic range sigma-delta ADCs and a polyphase harmonic rejection mixer. This receiver supports multiple frequency ranges: 9 kHz – 31 MHz, 60 – 260 MHz and 1.2 – 1.67 GHz (undocumented).

HF+ uses STA709 front-end tuner IC with two Σ∆ ADCs at 36 Msps, which are an equivalent to direct sampling at 72 Msps. The digital signal is decimated, scaled down and streamed via USB. The output I/Q stream provides 16-bit samples at 768 Ksps rate, but the usable bandwidth is a bit narrower though, up to 660 kHz. Actually, this is not much, but seems to be enough for HF, and some purposes at VHF band. More information about this receiver, including a detailed block diagram, is available on Airspy website. This review concerns VHF reception only (i.e. 87.5 – 108 MHz FM broadcast band).

1. Product availability

ITEAD Studio located in Shenzhen, China is the manufacturer of the Airspy HF+ device, as well as other devices designed by Airspy. An order can be placed online at a regular price of $199 (excluding shipping). Unfortunately, this is more than the expected price of $149, which was announced before production. There are also some resellers in Europe and the USA, but HF+ is available at noticeably higher prices there.

Personally, I ordered my HF+ directly from ITEAD. Three shipping methods were available to Poland at the time of my order placement.

  • SF E-Parcel – $4.94
  • Registered Air Mail – $8.61
  • DHL Express – $24.41

Of course, the most expensive option DHL is the fastest one, but it also guarantees additional tax and duty charges, at least in my country. Some of my friends from Poland have already ordered and received their Airspy devices from ITEAD, so I was able to rely on their experience.

  • In one case, SF Express failed to deliver the ordered item. Happily, ITEAD sent another parcel which finally arrived, but it took around 5 months in total.
  • In another case, the parcel was sent by HK Post and arrived without any problems (using Registered Air Mail option).

Taking this into account, I also decided to go with more expensive Registered Air Mail shipping and I completed my payment by PayPal. Unfortunately, my order was stuck at processing stage for a quite long time, but finally it was sent after 18 days. What is more, my HF+ was shipped by… SF Express. It turns out that I paid almost 2× more for the cheaper shipping method.

Considering both long processing time and overpriced shipping costs, I cannot recommend ITEAD Studio as a fully reliable seller. Nevertheless, I received my HF+ after one month from shipping, which is a typical period of time (52 days in total).

 

2. Build quality

Despite a compact size of this device, which is almost identical to the size of a credit card, it feels quite heavy (186 g), but this is completely fine. The Airspy HF+ device logo is engraved on top of the metal case, that is also an excellent thing concerning RF shielding. One side of the receiver contains a micro-USB port, while the opposite side has two SMA connectors and two LED status indicators. There are separate RF paths, one for HF (marked as H) and another for VHF (marked as V). Both connectors are equipped with red plastic covers. The red diode, next to HF input, is used as a power indicator. The other blue one, next to VHF input, represents that device is currently operating. The overall look is simply excellent. The metal case is very susceptible to finger smudges, though.

          

There is also a USB cable included, with ferrite chokes at both ends, and it seems to be of good quality, too.

 

3. Installation & software

The good news is that Airspy provides an open-source driver. Instead of a dedicated kernel module, Airspy HF+ uses a user mode driver for both Linux and Windows (libusb). The bad news is that HF+, unlike the Airspy One, uses closed-source firmware blob, where all the magic actually takes place. Regarding GNU/Linux operating systems, the only thing that is required after compilation and installation is a setup of udev permissions for a particular user group.

Apparently, ITEAD is continuously supplying Airspy HF+ units with an old firmware version (1.0.0). The firmware update process should be pretty straightforward, but it is not, at least for Linux users. Actually, there is no software to accomplish this process in Linux at all. I was able to update the firmware using Windows 10 running in a VM, after enabling the USB passthrough.

 

3.1. GQRX

GQRX does not support HF+ out of the box, because gr-osmosdr does not provide source for it. Fortunately, gr-osmosdr-gqrx fork provides support in the airspyhf branch. I managed to install all the required software shortly, but HF+ still refused to operate with the latest git version of GQRX. It works fine after HF+ firmware update, though.

In general, GQRX is not really suitable for WFM reception. It does not support basic functions like audio de-emphasis.

 

3.2. SDR#

SDR# is an advanced DSP application for Windows 7 or later. SDR# also works with Wine & Mono under GNU/Linux, but it crashes quite often and the graphical performance is incredibly slow at higher display resolutions in this combination. The performance is good, but the native gdiplus library is required (see the comment below).

The another option is to use a virtual machine with native Windows version, which is also somewhat slow. My laptop is not the latest one (5 years old, i7-4600U), so the performance issues are quite common. The default configuration with USB passthrough is totally unreliable, as it results in cracking sound due to extensive data loss. I was finally able to use the Airspy HF+ with SDR# on VM with VirtualBox Extension Pack and different USB driver implementation, but the data loss is still significant. Fortunately, there is an additional software available called SPY Server that can work as a workaround for the USB passthrough.

 

3.3. SPY Server

SPY Server allows to use Airspy HF+ remotely with SDR# over TCP/IP. I use it to distribute the CPU load between my current and old laptop. The server performs FFT calculation and streams it together with I/Q samples of the fragment selected in SDR# for demodulation. The single core load on i5-470UM is around 50% with default settings, 15 fps and 216 FFT length.

There are two issues with SPY Server:

  • If more than one SDR# instance is connected, SPY Server does not allow to tune to other frequencies outside the current spectrum range. This is extremely annoying.
  • There is no native version of SPY Server available for 64-bit ARM boards (this is also closed-source software), so I can’t test it in a simple way on my Raspberry PI 3 at this moment.

 

3.4. Performance improvements

Another idea for performance improvement is to under-volt the processor. I managed to reach stable operation with -60 mV for CPU and -50 mV for GPU on my Intel i7-4600U. This noticeably reduces the temperature and as a result allows longer periods of turbo boost operation at higher frequency. Eventually, I am simultaneously able to use SDR# on VM with all plugins disabled (like noise reduction algorithms or custom FFT views) and record my desktop at 15 fps (GPU hardware encoder) without any audio dropouts.

 

4. Power consumption

I measured the power consumption using the latest firmware (1.7.2).

  • Idle: 0.67 W
  • Operation: 1.6 – 1.8 W
  • Idle after operation: 1.17 W

The device gets a little warm during operation, but the metal case is a very good radiator.

 

5. VHF broadcast operation

Regarding FM broadcasts (87.5 – 108 MHz), up to six subsequent radio channels are available at once (150 kHz overlapping channels with 100 kHz spacing) using Airspy HF+ with 660 kHz spectrum. Because of a relatively narrow bandwidth, it is not possible to receive wide-band emissions on VHF-III band, like DAB (1.536 MHz) or DVB-T (7 MHz).

 

5.1. Signal level measurement

In order to measure a signal level, the spectrum of a given channel must be integrated over the frequency. This can be easily done using Signal Diagnostics interface in SDR#. As the reference for this meter I initially used the power of an empty WFM channel, with no antenna connected to HF+. Apparently, it turned out that I’m getting almost the same readings as with my Sony XDR-F1HD tuner with an error less than 1 dB.

Important note: The signal meter of my XDR-F1HD tuner was calibrated at 75 Ω input impedance using a professional signal generator few years ago. Also, I’m using 75 Ω connectors and coaxial cables only. Therefore, I will keep all dB signal values in reference to the 75 Ω impedance, even though Airspy HF+ has a 50 Ω input. The difference between dBf at 50 Ω minus 75 Ω is 1.76 dB.

Another note: The resulting mismatch of a 50-75 Ω connection is negligible and results in a VSWR of 1.5 (4% or 0.18 dB loss). This will not be taken into account.

Therefore, I found a quick way for a rough calibration of my Airspy HF+ signal meter to dBf unit at 75 Ω.

  1. Turn on the receiver and wait until it warms up a little.
  2. Disconnect the antenna from HF+.
  3. Select a 150 kHz spur-free channel at the center of 87.5 – 108 MHz band.
  4. Acquire the reference level in the Signal Diagnostics interface of SDR#.

The reference level of my HF+ is set to approx. -91.5 dB. Your mileage may (will) vary, depending on many factors including the firmware version. 

Frequency [MHz] XDR-F1HD [dBf] Airspy HF+ [dBf]
88.1 75 75
93.1 54 55
93.9 32 32
89.2 22 23
90.8 9-10 9-10
104.3 77 77
104.3 84 77

See the following video where I’m presenting this process and getting almost the same signal level values using both receivers, as specified in the table above.

Strong local signals are being attenuated in Airspy HF+ starting from a threshold level of 77 dBf. Of course, the entire bandwidth of the visible spectrum is also affected.

For comparison, XDR-F1HD performs a little better regarding the maximum signal level detection and handles up to 84 dBf with the RF AGC threshold set to the highest level. It is worth mentioning that XDR-F1HD also utilizes two Σ∆ ADCs, at 2 × 41.6 Msps sampling rate (325 kHz bandwidth after decimation by 128), but with a 10.7 MHz digital IF.

On the other hand, HF+ allows to measure much weaker signals than XDR-F1HD can. However, this does not matter too much for FMDX, as the thermal noise of a WFM channel added together with the receiver noise figure effectively limits the minimum level of the received signals.

The first disadvantage of HF+ is that it uses 16-bit I/Q samples for streaming. Unfortunately, you cannot take the full advantage of the 18-bit DDC in Airspy HF+, as two additional bits would provide significantly better dynamic range. The reason for this is secretly unknown and I don’t think that available USB data rate is the limitation. Apparently, the required bit-stream rate for such configuration is lower than the rate that cheap RTL-SDR can handle, even for padded 24-bit samples instead of packed 18-bit I/Q.

  • RTL-SDR: 2.4 Msps × 8 bits × 2 = 38.4 Mbps
  • Airspy HF+: 0.768 Msps × 16 bits × 2 = 24.576 Mbps
  • 0.768 Msps × 24 bits × 2 = 36.864 Mbps

 

5.2. Strong signal handling

Currently, the strongest signal available at my QTH is 96 dBf on 104.3 MHz, but it used to be even more, up to 104 dBf. For a reference, there is a list with some of my local stations and their level at 10 dBd antenna (Körner 19.3 or 2× 9-el K6STI Yagi).

Freq Station Location ERP Distance Signal level [75 Ω] ASL AGL
90.4 VOX FM Płock – Kochanowskiego 0.5 kW 5 km 86 dBf -34 dBm 107 m 55 m
97.3 Radio Zet Sierpc – Rachocin 60 kW 35 km 87 dBf -33 dBm 114 m 204 m
101.2 TOK FM Płock – Radziwie 1 kW 9 km 88 dBf -32 dBm 60 m 106 m
104.3 KRDP Płock – Orlen (h220) 1 kW 5 km 104 dBf -16 dBm 103 m 180 m
104.3 KRDP Płock – Orlen (h160) 1 kW 5 km 96 dBf -24 dBm 103 m 165 m

As already noted for Airspy HF+, if a strong station (> 77 dBf) is included in the selected spectrum, then its level is attenuated by AGC, together with other signals. However, when such strong station is pushed away from the displayed spectrum, other signals return to the correct level.

XDR-F1HD uses RF AGC with broad passband to avoid front-end overload. Desensitization on XDR-F1HD is a serious problem. I measured signal values around my strongest local station (96 dBf) with default RF AGC threshold level. Additionally, I also checked the highest threshold level, marked below as [H], which is much more susceptible to produce RF intermods (with two or more strong stations). 

Airspy HF+ easily handles this strong signal, as long as it is outside the selected spectrum. 

  98.1 99.2 100.7 101.6 101.9 102.4 103.3 103.8 104.3 104.9 105.6 106.3 107.6
HF+ 43 45 31 41 63 46 23 39 77 28 21 61 52
XDR [H] 43 44 31 39 59 41 17 31 84 21 15 57 48
XDR 43 42 27 32 53 35 11 25 83 15 10 52 43
Δ [H] 0 1 0 2 4 5 6 8 -7 7 6 4 4
Δ 0 3 4 9 10 11 12 14 -6 13 11 11 9

Apparently, this is not the limit of Airspy HF+ capabilities. I added a preamp and all signals increased by about 25 dB on HF+ (!). The performance in signal handling is really spectacular.

Just remember to keep the strong local stations out of the selected spectrum range, in order to keep the sensitivity and signals at the right level. The following video presents the AGC impact on HF+. This particular station is using Stereo Tool software for generating MPX signal and produces very strong noise around its frequency. Apparently the sound card is producing high frequency noise above the sampling frequency, which is then transmitted on VHF…

 

5.3. Sensitivity

I do not have any reliable signal generator to measure the noise figure of Airspy HF+ at the moment.

I compared the sensitivity of Airspy HF+ vs XDR-F1HD while tuning to my semi-local signals with a series of attenuators connected between antenna and tuner. I used an antenna switch to toggle the signal path between tuners (both outputs are the same, difference less than 0.1 dB). Both receivers were set to fixed bandwidth mode with 125 kHz filter.

Freq Station Location ERP Distance Signal level Attentuators Final level
91.0 RMF FM Warszawa – Raszyn 120 kW 96 km 65 dBf 3× 20 dB ~5 dBf
101.6 PR 1 Kutno – Komin ECO 10 kW 48 km 71 dBf 3× 20 dB ~11 dBf

XDR-F1HD applies high-cut noise filter for weak signals, so to make this test more comparable I also applied some low pass filtering to the SDR# output (the unprocessed video is available here). As presented on the following video, it is clear that HF+ has a better noise figure than XDR-F1HD.

Anyway, Sony XDR-F1HD outperforms all regular receivers in the stereo mode, thanks to the adaptive noise reduction algorithm. It divides the L-R signal into sub-bands and picks usable fragments of it, depending on SNR. This provides extremely good suppression of noise, co-channel interference and multipath distortion.

Of course this is not a hardware issue for Airspy HF+. Perhaps someday in the future, such algorithm will be also available in computer software for SDRs. The stereo noise filtering in XDR-F1HD has some drawbacks (like degraded imaging of low-level sounds), but it does an amazing job for weak signals.

 

5.5. Selectivity

The selectivity depends on the software that process the I/Q samples from Airspy HF+. There is no point in comparing the selectivity of SDR# and XDR-F1HD, because the latter one uses adaptive IF bandwidth regulation, based on the real-time adjacent-channel interference detection and the digital IF chooses whether to use a narrower or wider filter. Unfortunately, such feature seems to be missing in the computer software for SDRs.

 

5.6. Self-interference

Airspy HF+ produces some spurs within the FM 87.5 – 108 MHz band, but most of them are insignificant. Furthermore, not all of them are persistent, as some appear and disappear, depending on the local oscillator frequency. The biggest problem is a strong spike on 98.304 MHz, that wipes out weak signals. I measured over 20 dBf within a 150 kHz channel with a dummy load connected to the antenna input. 

I checked the spectrum with two different laptops connected (Dell Latitude E7440 and Vostro V130) to make sure this is not any interference coming from a computer. In both cases, all spurs were at the same place and with the same signal level. Regarding this, Airspy HF+ seems to have good shielding against any external noise on VHF band.

      

       

The easiest way to overcome these spurs is to connect a preamp between the antenna and Airspy HF+. Another idea is to use a notch filter in the software, however this is not very practical and with inaccurate usage may still result in some artifacts, especially in the stereo mode.

For comparison, a modified XDR-F1HD with an Arduino board also produces a strong spur on 96.0 MHz, which is the sixth harmonic of 16 MHz crystal that clocks the ATmega microprocessor.

 

5.7. Intermodulations

When the antenna is directed towards my local high power transmission site at a distance of 35 km (6× 60 kW ERP), some intermodulations appear within the 60 – 70 MHz range.

92.2 94.3 96.1 97.3 101.9 106.3
85 dBf 86 dBf 86 dBf 87 dBf 87 dBf 85 dBf

As can be seen on the following video, they also appear and disappear, depending on the local oscillator frequency. The signal level is approx. 75 dB down, so no need to worry at all. 

Moreover, this also happens with a single strong signal and results in a spur with double deviation level. See 4:30 (104.3 MHz at 96 dBf → ~70 MHz at 21 dBf).

On the other hand, XDR-F1HD does not produce any intermods there, but with higher RF AGC threshold levels there are some intermodulations within the 87.5 – 108 MHz band.

 

5.8. Zero-IF architecture

Because Airspy HF+ uses zero-IF architecture, there should be a visible spike in the middle of the spectrum. The HF+ driver applies some kind of correction to remove this DC offset, but it is not reliable. Therefore, for the highest reception quality, do not use center tuning in SDR#. The desired signal should be placed either at the first or second half of the available spectrum. Otherwise, some distortion artifacts will be audible, especially in the stereo mode.

The following video presents this issue with noticeable hissing in the background (use headphones for the best experience).

 

6. Summary

Generally, Airspy HF+ is a very nice receiver in terms of hardware. It could be even better with full 18-bit I/Q streaming. Strong signal handling is the main advantage of HF+, as the receiver does not become desensitized due to local signals, when they are out of the selected spectrum range. Also, HF+ seems to have fair noise figure, which can be possibly even slightly improved using a low noise preamp, without instant overload. 

Unfortunately, the software side lacks the essential features for FM DX, like adaptive stereo noise reduction or adaptive IF bandwidth, which have been available for over 10 years in Sony XDR-F1HD tuner.

12 thoughts on “Review: Airspy HF+

  1. Konrad,

    Thanks very much for the very extensive review of Airspy HF+ SDR for FM DXers. I have been using Airspy HF+ for FM DX for over a year now. On many occasions, I thought the audio quality is low compared to other receivers that I have. I must admit, I was WRONG! Airspy HF+ produces excellent quality audio given it’s an SDR device. I am, however, surprised that Airspy HF+ generates images. Those who are located near a strong local transmitter should consider it prior purchase. I wasn’t aware of this issue until I read your review. In fact, I never experienced imaging using Airspy HF+. I think it’s good to have both in the setup, the SONY XDR-F1HD tuner and the Airspy HF+ SDR. As you know, I recently purchased the SONY XDR-F1HD tuner and I can honestly say, it is still a very strong contended to modern SDR devices. It does not offer as much as Airspy HF+ but thanks to your modification it became really powerful receiver! Enjoy your device and Good DX, Zach.

    1. The Sony XDR-F1HD tuner is actually also a SDR device. This radio tuner was introduced 11 years ago, in 2008, but only for the US market. Inside, there is a combination of NXP ICs: TEF6730 (RF front-end), SAF7730 (DSP) and SAF3550 (HD Radio). It utilizes two Σ∆ ADCs, like Airspy HF+. The available bandwidth is somewhat similar (up to 650 kHz in HD Radio mode). However, XDR-F1HD has a 10.7 MHz digital IF with a ceramic roofing filter (180 kHz), unlike HF+, which uses zero-IF architecture.

      Taking into account both hardware and software, a modified XDR-F1HD is still the best tuner for FM DX-ing. It features very sophisticated DSP techniques to keep the output sound as clean as possible, including:
      – adaptive stereo noise reduction algorithm, which relies on the L−R quadrature channel for S/N estimation, divides the L-R signal into sub-bands and picks usable fragments,
      – adaptive IF bandwidth regulation, where the digital IF chooses whether to use a narrower or wider digital FIR filter, down to 55 kHz, depending on adjacent channel interference,
      – threshold extension, used for impulse noise suppression in the FM detector,
      – high-cut noise filter and soft mute for weak signals, depending on their level.

      There are also two drawbacks:
      – the desensitization, as mentioned above,
      – quite high noise figure (around 7 dB).

      As one can see, HF+ is a nice upgrade over the XDR-F1HD’s disadvantages. However, the software part is missing, and it would be great to have such algorithms running on a computer with HF+. I will be exploring this topic, but I don’t have much experience in DSP.

  2. “Unfortunately, the software side lacks the essential features for FM DX, like adaptive stereo noise reduction or adaptive IF bandwidth”

    I guess each DXers requirements are different, for me stereo reception is irrelevant as I leave the software (SDR Sharp) in mono at all times. One feature that can be applied in software is asymmetric filtering which has allowed me to ID many stations from RDS that wasn’t received with standard filtering due to adjacent channel interference.

    Thanks for the in depth review, any gains seem marginal over the XDR but if anyone still wants a single channel DX machine then they could be the way to go. I’m still holding off for the Elad S3 if it ever gets released or an equivalent should one become available, not sure I could ever go back to DXing with just a single channel on FM.

    1. Regarding the asymmetric filtering, this is also possible with XDR-F1HD. Just tune away from the frequency (±25-35 kHz) and apply a narrow filter (73-83 kHz and wider). You will get the same effect like using an asymmetric filter.

      See the example, 97.3 Radio Zet vs 97.4 PR 3. The second one is almost 50 dB weaker.
      https://www.youtube.com/watch?v=Vs0_Ty73f2A
      You can do it very quickly using keyboard shortcuts for fine tuning and bandwidth control.

  3. Remarkable review, congrats Konrad.

    Regarding stereo : what about SDRuno (and former Studio 1) software providing a noise reduction feature : “SNR (stereo noise reduction), featuring a proprietary noise reduction algorithm for stereo broadcast” ?
    Some of you may have tested this tool ?

    1. Sounds interesting.

      I’ve just installed SDRuno with ExtIO for HF+, but stereo WFM is as noisy as with SDR#. Apparently, this version does not include that feature, as I can’t find anything with “SNR” in the user interface.

      1. You’re right.

        The version that is available for non-RSP owners misses several features, and such is the case for this ‘SNR’ tool (now called “FM-SNR”). The corresponding button is located in the lower part of SDRuno Ex Control panel, between ‘mono’ and ‘PDBPF’ … (just checked watching the ExtIO version and the full one).

  4. Thank you for a very exhaustive review.

    Regarding poor performance of SDRSharp under wine – if you mean low frame rate of the waterfall and pandapter, then it might be caused by suboptimal implementation of gdiplus.dll library which comes bundled with wine. A better option is to use the native gdiplus.dll from Microsoft. It can be installed easily using winetricks:

    1. Install winetricks
    2. Install native version of gdiplus.dll with: winetricks gdiplus.dll
    3. Run SDRSharp with: WINEDLLOVERRIDES=”gdiplus=n” wine SDRSharp.exe

    In my case the performance boost was significant. I have a bit faster CPU, though.

    1. Tomasz, thank you for this tip! SDR# runs flawlessly on Wine & Mono with native gdiplus.
      The CPU load is also much lower than on VM, so I am able to use audio noise reduction, custom FFT views and record the desktop at once without any stuttering. Finally!

  5. I just want to say thanks for the great review. I enjoyed your level of attention to details.

    73
    DF2HF

  6. Thank you for the review Konrad! I have quite same feelings. XDR-GTK is excellent receiver. I own both GTK modified XDR and HF+ and live very close to high power transmitter here in Jyväskylä, Central-Finland (Taka-Keljo mast approx 2km from my QTH) and I can say XDR’s AGC is way too aggressive and in some situations my XDR is almost deaf for Sporadic E signals especially if antenna is pointed to mast near me. Maybe AGC drops weak signals too? Never have this kind off problems until I moved to this QTH. GTK’s AGC Threshold setting helps a little. Compared to HF+ there is not this kind of behavour at least not so much. In the latest version in SDR# there is option to complete disable AGC (not sure if it’s complete disabled but at least there is setting to turn it off)

  7. Помогите отремонтировать Airspy hf+. Пропала чувствительность после замены входных BAV99, на кв и укв. До замены диодов на укв работал, на кв слабый приём. После замены диодов ничего не принимает.

Leave a Reply

Your email address will not be published. Required fields are marked *