dumphfdl: A Multichannel HFDL Decoder for SDR

Thank you to Tomasz Lemiech for writing in and sharing with us the release of his new software "dumphfdl". Tomasz is the author of dumpvdl2 and also maintains RTLSDR-Airband. Regarding dumphfdl Tomasz writes:

dumphfdl is a multichannel HFDL decoder for Linux. HFDL (High Frequency Data Link) is a protocol used for radio communications between aircraft and a network of ground stations using high frequency (HF) radio waves. Thanks to the ability of short waves to propagate over long distances, HFDL is particularly useful in remote areas (eg. over oceans or polar regions) where other ground-based communications services are out of range. While many aircraft carriers prefer satellite communications these days, HFDL is still operational and in use.

Available HFDL decoding applications typically run on Windows and take an audio signal on input. The signal has to be delivered to the decoder via a physical cable from an external shortwave receiver or via a virtual cable from an SDR. This makes these apps inherently single-channel. This shortcoming does not apply to dumphfdl which interfaces directly with the SDR, so no pipes or virtual audio cables are needed. The program can decode multiple HFDL channels simultaneously, up to available CPU power and SDR bandwidth (there is no fixed channel count limit).

dumphfdl uses SoapySDR library (https://github.com/pothosware/SoapySDR) to communicate with the radio. Any HF-capable receiver for which a SoapySDR driver exists, should work. I have tested it briefly with an RTL-SDR v3 dongle in direct sampling mode. While I had a bit of a success with it, HFDL signals are often quite weak, so a real HF radio (like SDRPlay RSP1A or Airspy HF+) gives much better results (more decoded messages).

The program may log decoded messages to a file or send them over the network for external processing and storage.

HFDL messages often contain diagnostic data accompanied with aircraft position information. The program may extract this data from decoded messages and provide a positional data feed for external plane tracking apps (eg. Virtual Radar Server). An example screenshot from VRS is attached - taken after about 2 hours of decoding eight HFDL channels spread across three HFDL subbands: 6.6, 8.9, and 10.0 MHz with two dumphfdl instances on two radios - RSP1A and Airspy HF+. Definitely a nice way to expand the coverage of a home ADS-B radar :-)

Refer to the README.md file in the project repository for more details. The program is still under development, so new features and further improvements might be expected in subsequent releases.

dumphfdl - decoded aircraft positions plotted on a map
Notify of

Inline Feedbacks
View all comments

hello. Jaka komenda dla rtl sdr blog 4 .nie mogę się połączyć.


Runs on Raspberry PI 4 or linux Mint Cinnamon ?

Tomasz Lemiech

dumphfdl 1.2.0 released.


– Noise floor and signal level estimates are now computed and printed in
message headers.
– Added –freq-as-squawk option which uses squawk field in the Basestation feed
to convey HFDL channel frequency on which the position information has been
– The program can now decode data from I/Q samples piped onto standard input.
This allows interoperation with I/Q data sources like GNURadio or KiwiSDR.
– Added `–read-buffer-size` option for setting input buffer size when decoding
from an I/Q file or from standard input.
– Slightly better sensitivity.




Fantastic Tomasz.
An a novice on Pi still struggling a bit with the ‘extras’ but the basic program was easy to get going…
How about a JSON output
Multiple feeds to different IP addresses
A rotation system to switch frequencies based on time of day?
Thanks a lot, no more of the virtual audio cables.

Tomasz Lemiech

Version 1.1.0 is out.

– Improved sensitivity (less CRC errors)
– Reduced CPU usage
– The program now builds and runs on MacOS




Theres already loads of decoders avaliable, try making decoders for something we cant decode yet


Yeah, but this is the first (as far as I know) *open source* HFDL demodulator/decoder. That is very, very significant.

Michael Jackson

Great work and currently decoding using an AirspyHF+ but I was wondering what the soapysdr connection string would be for my rtl-sdr v3 dongle in direct sampling mode. I have reasonably good reception with my dongle on HF so I would be keen to test it out. Thank you, Michael, New Zealand.

Tomasz Lemiech

–soapysdr driver=rtlsdr –device-settings direct_samp=2

Mr Ed

What sort of antenna is required for the transmission please?

Tomasz Lemiech

Preferably a wideband antenna dedicated for short wave reception, like an active magnetic loop or a mini whip. Wire antennas for HF may also work, however they might require an external tuner to cover the entire band.

The VRS screenshot in this post was taken from a setup that uses a Wellbrook loop.


Plain and short. Awesome work!