The day began like a typical sunrise over the city. I wrapped the Airspy HF+‑plus inside a cozy bag and carried it to the pier, just as the shoreline gleamed with the first scant reflections of light. I remembered a week ago I read about Navtex—the low‑frequency maritime safety broadcast that ships rely on to navigate the sea ahead. Somewhere between a Stack Overflow snippet and a YouTube tutorial, I had learned the how to play Navtex signals on Linux, but the details had slipped into vague memory.
Back home, I opened my terminal window, brought the Airspy hardware into focus with the lightweight driver airspyhf, and launched the latest Linux distribution. The kernel was fresh, and my Ubuntu machine had the correct usbcore packages installed. I used airspyhf_info to confirm that the device was communicating correctly – the serial number matched the one on my paperwork, and signal quality was solid. I opened Wireshark to confirm that raw sweeps were coming in from the 135.5 MHz band that Navtex broadcasts occupy. At that moment, the world felt both familiar and thrillingly new.
For decoding Navtex, the community recommends mmdvmhosts running in conjunction with a robust SDR backend. I opened pyrtlsdr – the Python wrapper for my SDR – and began creating a small script to pull samples and hand them off to an atsnoop filter. The code watched over my home radio shelves for the NAN and NKN code signals, automatically decoding them into plain text. At half the steps I’d expected, all the pieces fit together because the Airspy’s HDSDR‑style tuning wrapped exactly around the coverage area of Navtex. The script launched and then paused on messages as ships screamed out warnings and weather updates across the long-range airwaves.
When the resonance of a battery‑powered ship’s emergency chirp floated from the pier, I waited. Five seconds later, the script had detected the 0x2322 sync patterns typical of Navtex. I could see in the terminal the parsed “Shore Based Winter Environmental Information” text, padded in XML‑style delimiting so that even an intrepid coder could scrape it. The experience felt like hearing the voice of the ocean itself, translated and delivered to my screen. Every .NET string quote was a lighthouse on the network.
After the initial setup, I made an automated background job that ran watch-navtex.sh nightly. It ran ffmpeg to convert the raw SPS into spectrograms and logged them into a memento of the night's signals. My Linux system fed the new data through a local Apache servlet; this API let me display a real‑time view of Navtex on my fast‑wired tablet whenever I wanted to glance at the next meetup’s forecast. Even a single line of code that started the Airspy “sardi‑rf” scan made the whole system feel alive. There was a sense of abiding stewardship—just like the ships themselves, I was here to ensure messages reached those who risked their lives out there.
One of the trickiest parts of the process had to do with interference. A faint, traveling radio station sometimes overlapped with the Alistair Herald's HRN transmissions. Using gnuradio, I designed a simple notch filter to subtract unwanted frequencies leaving just the Maritime Safety Broadcast structure. This fine division resulted in cleaner text and a higher Signal-to-Noise Ratio, all without adding extra software. Combining Airspy plans and Linux's flexibility turned the ham-radio dream into a reliable monitoring system, ensuring that every Navtex message received over the airwaves was translated into audible words arriving at my sink‑level setup.
Under the sea of static, the onboard strings of Navtex steady and trustworthy, I had finally mastered the moment: that of receiving an emergency message from a ship miles offshore, all through a humble Airspy HF+ and my Linux machine, while the world vibrated the quiet language of the ocean.
It was a cool, overcast dawn when Alex, a hobbyist radio engineer, decided to turn his spare desktop into a mini weather station. The bright screen displayed the Airspy HF+ 50 MHz‑10 MHz receiver, a small yet powerful digital radio that had just arrived in his mailbox. Despite the low price, it was clear that this little device could listen to the faint hiss of the atmosphere and capture the digital whispers of fish‑grid atmospheric phenomena.
Alex started by installing the Airspy drivers from the official airspy.com repository. The commands he typed were familiar, guided by the quick‑start instructions on the vendor’s website:
sudo apt update sudo apt install airspy-baseband sudo apt install airspy-fpga
Next he installed the software stack needed for fax decoding. In the days after the Airspy’s release, the wfall project and the newer grca-wefax modules on the GStreamer platform had become the most reliable way to handle WEFAX on Linux. Alex chose the grca-wefax pipeline because it integrates smooth with the GQRX front‑end, allowing real‑time monitoring and capture.
With the computer humming in the background, Alex pulled up GQRX. It offered a comfortable dial with a HF+ 27.5 MHz preset. The weather fax bursts were transmitted in the 27–30 MHz band, so he set the tuner precisely to 27.5 MHz. The spectrum still looked like a flat field of noise, but underneath that noise lay a faint 4 Hz tick that traveled across the monitor – the tell‑tale rhythm of a weather fax station’s carrier.
In a low‑lighting room, Alex selected the /usr/share/grca-wefax script that started a GStreamer pipeline: gst-launch-1.0 airspyautodetect ... wefax sink=numpy. As the first burst unfurled, the console output showed a cascade of decoded .tiff frames: a granular, starburst scene that gradually resolved into a map of cloud shadows and pressure systems. The forest of geometry shaped a picture that only a modern Leica sensor could have produced.
Once the burst finished, the script saved a TIFF file that Alex stared at for a moment. The brightness was perfect, the latent profiler already exaggerated. Using ImageMagick, Alex ran a quick conversion to JPEG for easy sharing:
convert wefax.tiff -resize 800x600 wefax.jpg
When he opened the JPEG, the familiar icons of the troposphere unfolded: a near‑spherical red core that indicated a pressure trough, swirled grey clouds, a faint N‑in‑K vortex, and a series of pale “earth radar” symbols. All of this encoded in a burst that lasted less than two minutes. The feeling Alex got was akin to being inside the storm, on a cockpit floor judging the weather with nothing but an HF receiver and a Linux terminal.
To make his new weather station work daily, Alex wrote a tiny cron job that launched a custom script every three hours. The script listened on 27.5 MHz, stored each burst, and logged the swell of data into a simple SQLite database. He added a watchdog that checked whether the wefax binary was running; if it stalled, the script restarted it automatically. Over time, his monitor filled with a staircase of captured images – a chronicle of the atmosphere’s ever‑changing face.
It wasn’t just a hobby. Alex began uploading his daily WEFAX images to a public GitHub repository, alongside a small Jupyter Notebook that referenced each Kraken‑style map to an over‑gliding tropical cyclone. The weather‑fax images, enriched by the Airspy’s sharp reception, were shared with meteorologists across the world. The combination of a compact SDR and an open‑source Linux workflow turned a quiet desk into a global point of atmospheric information, all beginning with that first moment of tuning, listening, and capturing a burst of air.
When the ocean beckoned, I knew I had to answer in the clearest voice available. The Airspy HF+, with its superb low‑noise amplifier and expansive bandwidth, promised to be my window to the waves. My goal was simple yet ambitious: capture the faint 518 kHz pulses that carry life‑saving information to every ship on the horizon.
The journey began by connecting the Airspy HF+ to a USB3 port on my MacBook Pro. I fetched the official Airspy driver from the manufacturer’s website and drizzled my operating system with the necessary privileges to trust the device. In the Finder’s System Preferences → Security &
Setting Up the Airspy HF+ on macOS
In early 2024, the Airspy HF+ settled into a comfortable rhythm with macOS after the release of Airspy’s updated macOS drivers. First, attach the receiver to an available USB‑3.0 port and power it with the included charger. The device is instantly recognized by the operating system, but to make it talk smoothly to our software, we give the Airspy driver a quick “grace period” by opening the AirspyCTL utility and letting the firmware settle.
Since AirspyHF+ no longer supports the legacy Windows‑only SDR# (SDRSharp) natively, the community turned to CubicSDR for a lightweight, cross‑platform front‑end. Download the latest macOS build from the CubicSDR website, install it, and open the application. When CubicSDR launches, the Airspy HF+ appears in the device list; select it and confirm the sample rate of 200 kS/s—this is the sweet spot for the 2800 kHz band where weather fax resides.
Next, we need a decoder that can interpret SITOR‑B FAX. The WINDWAVEEFax suite, updated in February 2024, now runs on macOS as a portable .app bundle. Unzip the bundle, drag the app to Applications, and open it. Inside WINDWAVEEFax, go to Preferences, set the audio input source to CubicSDR’s output by choosing a loopback device created by the BlackHole virtual audio driver. This trick routes the raw I/Q stream from CubicSDR straight into the decoder without any intermediate files.
With the hardware and software lined up, we tune to the classic 2800 kHz frequency, the spot that carries most WEFAX signals around the globe. Click on the ‘Tune’ button in CubicSDR, type 2800.0 kHz, and watch the display lock onto the gentle hiss that signals a good signal. Then, in the CubicSDR filter window, tighten the bandpass to 25 kHz, keeping the desired bandwidth for the fax data while squashing out unwanted chatter. On the WINDWAVEEFax side, the decoder auto‑detects the SITOR‑B stream once the carrier power rises above a threshold of -12 dBm, which we confirm by monitoring the IQ‑signal level in the CubicSDR status bar.
When the arrival of the next diary of assorted storms is imminent, the WEFAX signal begins to LED the airwaves with a slow, rhythmic pulse. The decoder now steps in: it demodulates the 6 kHz FFT of the received signal, isolates the SITOR‑B frame structure, and reconstructs the 240‑bit data packets that represent the fax image. The output flood‑fills the WINDWAVEEFax window with a raster of weather information—pressure, wind, and temperature fields, all painted graphically. At the same time, the text is extracted and ping‑ponged to a local log file listed in the Windows, enabling a quick search for specific stations or gridpoints.
Once the fax is decoded, we save the image as a .png file by clicking Save As… in the decoder’s toolbar. The file name automatically appends the UTC timestamp and the calling station’s callsign, like 20240610_1220_ZX15_PH. If you prefer a raw binary copy of the SITOR data, the decoder offers a “Dump Raw” option; store that in the ~/Downloads/WEFAX_raw/ folder, and you can re‑play the data later with any SITOR‑B compatible tool such as SoapySDR‑Plot
Thus, with a blend of updated drivers, cross‑platform software, and a touch of ingenuity, macOS users can once again enjoy the nuanced art of weather fax—receiving those crisp, condition‑illustrated faxes without the old OS friction. The future looks bright, and the sky, however stormy, stays within reach of an Airspy HF+ and a few well‑chosen apps.
I turned on my toolbox of waves and asked the Airspy HF+ to find the distant chatter of Earth's weather satellites. The HF+ is a gem among software‑defined radios, covering 25 MHz to 30 MHz with excellent sensitivity, the perfect band for the NOAA 18, NOAA 19, and FY‑2 weather satellites. The radio sits next to my computer, quiet as a sleeper, while I load GQRX and set the frequency to 137.1 MHz, the well‑known downlink for the NOAA satellites.
Before the satellite rises, I check the Satellite Pass Only schedule on Heavens‑Above. For N2KH, my local NOAA raid, the next pass is at 10:23 UT, a 20‑minute window when the satellite will beam flood of data toward my station. I tune the Airspy HF+ to the 137.1 MHz channel, adjust the gain to avoid clipping, and set the bandwidth to 200 kHz. A small dipole antenna, half a wavelength long, stands ready against the east wind.
When the satellite appears in the sky, the first thing I notice is the subtle clock‑like beat of the GPS Doppler shift, a sign that the transmitter is on the move. I observe a constant tone at 458 kHz higher than the carrier; this is the Doppler‑shifted subcarrier used for the telemetry beacon. As the beacon climbs in frequency, the channel shifts a second or so, a phenomenon known by many as "pass‑through." During the brightest part of the pass, the signal pulsed at 10 Hz, a clear indicator that the weather satellite is actively sending data. I capture this burst with the built‑in recording feature of the SDR and later save the file as NOAA18_20240610.wav.
The beacon packets contain a wealth of information. The identifier code NOA A18 confirms the satellite, followed by the crystalline GMT time stamp. On the second slot of the telemetry, a burst of scanned images appears as a 384 Bx512 px picture, which I export via the weather display plugin in GQRX. My monitor lights up with a vertical cross‑hair, a hallmark of a correctly centered downlink. The passing beam is so strong when the satellite is in a near‑vertical orientation; that moment peaks at an S‑NR of 22 dB, enough to resolve meaningful NDVI data.
From the first capture to the last, I refine my listening procedure. I learned that tightening the analog filter in the Airspy HF+ allows fewer side‑bands and cleans the spectrum from surrounding chatter. The third step in my routine is to implement the QSS™ (Quick Static Spectral) check on the SDR#. A quick sweep of the 136‑138 MHz band shows any static reflections that could degrade reception. With the filter in place and the antenna steered correctly, the satellite’s voice was crystal clear for the entire pass.
When the season changed, I focused on the FY‑2 family, shipping from the northern hemisphere with a circular polarization visible at 137.1 MHz as well. Unlike NOAA, FY‑2 carries an extra time stamp, which I recorded for later comparison. In 2024, the HF+’s firmware update released better OFDM decoding support, something that allowed the decoding of the 2‑beam satellite’s dual color channels. I wrote a simple script to dump the raw bursts into a CSV file for post‑processing.
After a week of practicing, the Airspy HF+ had become my window to the atmospheric machine overhead. Each pass was more than a signal; it was a conversation between space and ground, filled with photons of weather data, active radar tracks, and silent GPS time signals. By listening with precision and treating each decoding as a discovery, I found myself part of a small but proud crew of software‑defined enthusiasts keeping our front row seat to the swirling clouds of Earth.
It began on a rainy spring afternoon, when the Airspy HF+ lay in the corner of my workshop, its expandables plugged in and waiting. I had spent years coaxing subtle signals from the ocean of radio waves – but this time I was chasing a stream that hovered just above the clouds: the weather reports from the world’s VOLMET stations.
VOLMET, short for Volcanic Meteorological, broadcasts a daily weather snapshot on both AMSU and FM bands. The most common broadcast for pilots and enthusiasts alike is on VHF frequencies 138.5 MHz or 139.5 MHz. With the HF+ in my hand I configured the device to its dedicated IF of 5 MHz and selected the IF: 5 MHz 12 MHz mode — a sweet spot that leaves the VOLMET signal clear from the surrounding noise.
I launched CubeSDR and slithered the software‑defined tuner across the VHF sky. When the spectrum graph swelled on the automated FM carrier amplitude, I knew I was near 138.5MHz. The Airspy’s 12 MHz sample rate captured a 300 kHz bandwidth, which was more than enough for the 25 kHz VHF broadcast. I locked the Frequency Offset to 0 Hz and set the Quadrature Frequency Phase to align the FM signal to the center.
Once the video sharpened the carrier’s sine wave, the next step was to remove the pure tone and listen to what lay beneath. SDR# with the NS-in-Mic plugin let me demodulate the FM while feeding the audio to a simple AFSK decoder written in Python. The decoder is tuned to the 1200‑bit‑per‑second protocol used by VOLMET. When the first sentence popped on my terminal it read:
HNDYVLV UM 44 18 15 16 368 023 2 19 00
That was the heart of the weather report, folded into a string of syllables and tallies. I wrote a tiny script to map the positional codes back to the standard decor. The output translated into the following:
“Storm moving into the northeast quadrant, heavy rainfall, clouds reaching 6,000 feet.”
My little script could pull a full VOLMET transmission every 30 minutes and dump the strings into a running log. To make that data useful for atmospheric models, I attached a geolocation converter that read the station’s FCC call sign and matched it to latitude, longitude, and elevation. Then, using the weather archive on FlightAware, I cross‑referenced the timestamps and validated the decoded conditions we could see in real‑time.
Months later, the sky had become a canvas. Whenever the sun broke the horizon, I opened my Airspy to catch the blink of VOLMET’s transmission over the Pacific, through remote islands, and across the continent. The data drifted across my disk like a liquid tide. In quiet moments, I would watch the waveform slide across the screen and imagine the wind, rain, and cloud cover just above—signals that could no longer stay invisible.
First, the Airspy HF+ isn’t just for the deep‑hole frequencies of HF amateurs; it is a bridge to the thin, high‑frequency world of VHF weather broadcasts. It treats the Doppler shift and carrier phase with the same fidelity it offers for amateur satellites. Second, the decoding chain is surprisingly simple once you set up the demodulator. A yes‑no filter in the spectrum, a gentle FM receiver, and a lightweight Python script will turn a static on the chart into meaningful meteorological insight.
And so, beneath the flicker of my display and the slow pulse of the Volmet signals, I found a story of rain and cloud, speed and altitude, all coming straight from the sky. The Airspy HF+ allowed me not just to listen, but to live the data—turning invisible predictions into visible determinations, one FM burst at a time.
It started on a rainy Tuesday when I found myself itching to hear the chatter of the skies again. The cluster of antennas in my garage, once a clutter of curiosity, now threatened to hold secrets from the world above. With the Airspy HF+ humming like a eager heartbeat, I turned to the newest firmware release from 2025, promising broader VHF coverage and sharper demodulation for aviation DX.
I positioned the HF+ on a sturdy tripod, angled toward the cliff face that faced the coastline. The subtle shift of the antenna resonated with the patient tension of a concert’s pre‑play silence. I plugged the SDR into my laptop, launched the SDR# 2.0 studio, and allowed the software to recognize the device. A quick network scan showed the firmware update was fresh, with enhanced DSP filters that now aimed at VHF aviation channels as low as 118 MHz.
My first target was the 118.30 MHz frequency, a known dwell for local IFR traffic. The tuner’s waterfall view painted a dense tapestry of sleight‑of‑hand talking and static. I nudged the frequency home, and the clear, tinny voice of a control tower began to seep in, the deep vowels of the ATC officer as if speaking to the patient columns of clouds. In that instant, my wrapper of static dissolved, revealing a vibrant, live ocean of voice.
The 125.60 MHz channel is a favorite for worldwide ADS‑B transmissions, containing not only voice but also location data, altitude, and a wealth of telemetry. With the HF+’s new heightened VHF band, I set the slicer to a narrow bandwidth of 12 kHz, enough to capture the low‑bandwidth voice and the faint digital beeps that belong to aircraft. When the signal steadied, I realized I could now pick up the whispers of an aircraft’s “N12345 en route to LAX” broadcasting amid the distorted murmurs of miles away. It was like witnessing a ballet of numbers and sounds, told in a language I had thought I’d lost.
Midnight found the SDR’s spectral window jittering as a storm rolled over the bay. Instead of the usual chatter, a solitary voice cut through. The operator had set a shortlink to a squadron training exercise. The tone was thin and urgent, but I sensed the surrounding excitment in the way the SD transformer’s harp sounded. The HF+ couldn’t produce the VHF shell typically seen in commercial flights, but the history of this frequency was rich and I felt part of that lineage.
Each transmission I caught required a moment to parse, to align the SDR’s display with the new tone and to reduce the noise floor with a smart filter. The latest 2025 firmware had an adaptive noise‑blocker, using real‑time AI to sift out extended chorus. I spent hours impressionistic in tactics: aligning the waterfall display as the sky seemed to shift with respect to my antenna, tweaking the intermediate frequency, and perfecting the demod settings for AM, FM, and WFM modulations.
By dawn, my logbook contained more than words. The glow of my screen painted the future in blues and whites, reminding me that somewhere, an aircraft was crossing the horizon, and a small device, through painstaking labor and disciplined patience, unveiled its travel. The Airspy HF+ with its 2025 firmware, had become my portal to a living, breathing radio landscape. I conclude the day with gratitude – for the soft hum of the SDR, the clear sound of the tower voice late at night, and the wonder that keeps pilots’ spirits alive right on the edge of sound. And I know that any time I wish to hear the hum of the world, all I must do is tune the right frequency and let the signal speak.
In March 2024 a curious hobbyist named Alex discovered that the Airspy HF+ could be coaxed into listening to the distant chatter of aircraft on INMARSAT satellites. It was not a straightforward “plug‑and‑play” moment; Alex’s discovery unraveled over weeks of tinkering, a bit of fortune, and a hospital‑wide supply chain hiccup that forced the community to look further.
Alex began by studying the INMARSAT spectrum. The system operates in the L‑band, roughly between 1590 MHz and 1705 MHz. The Airspy HF+ by design covers 5 kHz to 30 MHz, thus the raw device could not directly hear the satellites. No clever firmware tweak could bridge hundreds of megahertz. The solution would require a frequency downconverter that pulls the L‑band signal down into the HF+ band.
Alex sourced a low‑frequency mixer from a surplus electronics store in late April. By tuning the mixer with a local oscillator at 1680 MHz and feeding the satellite feed into the RF port, the IF output stayed comfortably below 30 MHz. Together with a properly sized dipole or patch antenna oriented toward the orbital plane of INMARSAT‑3, the signal roared through the Airspy HF+ with an amplitude that startled the device’s ADC.
The author ran GQRX on a Raspberry Pi and pointed it to the Airspy HF+ source. With a spectral view that expanded from the street‑level telephony band up to the satellite’s downlink, Alex could identify the narrow 25‑kHz channels that carry cockpit voice and flight data. Every voice message came in FM guise, while the data link used a GMSK burst that required a custom {demod} filter. To pull the messages out of the raw I/Q stream, Alex turned to SoapySDR and a small Python wrapper that streamed into OpenBTS’s KISS interface.
With the hardware in place and the software pipeline humming, the first real aircraft transcript unfolded on Alex’s notebook. An airline’s in‑flight systems glass seemed to whisper through the ether: a 12‑digit aircraft identifier, altitude, speed, and navigation commands, all garbled into 38‑bit bursts. By Henry’s midday the console had filled with a series of 38‑bit messages, each one encoded in a way that reminded Alex of code‑division multiplexing. Decoding them required the newly release VBS‑decoder‑V2, which now supports the latest INMARSAT data format.
Alex discovered that even the best SDR can only perform the work that the signal grants. The mixer's stability, atmospheric conditions on the satellite
On a crisp autumn evening, you sit with your Airspy HF+ by the window, the instrument panel of the little dongle reflecting in the laptop screen. The quest that draws you here is simple yet profound: to tap into the quiet chatter of aircraft flying overhead, to hear the terse language of ACARS, the rhythmic buzz of VDL, and all the digital glimmers that define modern aviation.
First, you plug the Airspy into a USB port that can push more than 5 W into the DDR3 RAM and double‑rate the USB‑3.0 interface. This ensures the dongle never lags behind the high‑speed safety signals bouncing around the airwaves. Before you touch the world of aviation frequencies, you load the latest Airspy firmware—the update that removed that tiny 12 kHz notch in the L‑band and added an improved PLL that stabilises the 27 MHz crystal reference. The new firmware also exposes a hidden timer that can automatically cycle through a list of pre‑defined aviation slots, a feature very welcomed by those of us who simply want to listen without constantly tweaking a dial.
You open the CubicSDR interface, which now speaks frequency ranges from 1.8 MHz for HF to 300 MHz for VDL on the same ring of a single RF front‑end. A cool trick here is to use the “Auto‑split” feature that highlights the most powerful voices on the spectrum. Once the 131.5–135.8 MHz band lights up, you suspect the protocols of interest are humming just below the visible horizon.
The first taste of an aircraft’s electronic voice comes when your RF knob nudges toward 131.525 MHz, the home of ACARS. You set the sample rate to 2 MS/s, enough to capture the 1200 Hz BPSK whispers while still keeping the bandwidth manageable. At 1200 Hz, the acRFDeem Tool automatically aligns a symbol clock and a pilot tone to pull the data cleanly into a TCP output that gives you the raw ACARS stream to decode in real time. The conversion from the embedded RDS blocks to BSB forms the heart of the decoding process, each packet printed neatly with time stamps that match the aircraft’s logbook.
VDL‑2 extends further into the spectrum, at 132.9345 MHz for the VDL‑2 horizontal links. You start by setting the center frequency to 132.9345 MHz and adjust the bandwidth to 32 kHz. Here the trick is to use a digital down‑converter that keeps the signal inside a tight band while preserving the exact timing. With the CubicSDR filter configured, you hear the gentle thrum of a 4800‑bps data stream. To turn that stream into intelligible messages, you launch the Airborne Data Decoding Suite, which decodes the Airport Awareness Message (AAM) packets and logs the aircraft ID, position, and status in a neatly formatted CSV.
It was a late‑evening, the kind of twilight that turns a rooftop into a quiet observatory. The Airspy HF+ sat on the bench, its tiny metal lid still warm from the day's work, humming softly as it waited for a signal.
When I first opened the SDR# program on my laptop, the world of amateur radio felt like an open sea. The HF+ is a marvel of modern engineering: with a 300 kHz–30 MHz tuning range one can listen to everything from short‑wave broadcasts to the faint crackle of a distant ship. What really drew me in, however, was the promise of HFDL, the digital link that keeps aircraft in constant contact with ground services.
There was an art to positioning the HF+ above a clear antenna. I mounted it on a small dipole stretched over the balcony, angled at 45° so that the satellite’s signal could strike the feed without distortion. Next I opened up GQRX and tuned the core to the 435.42 MHz band, where the HFDL services dive every other second in a stern, repetitive rhythm.
A quick snippet of the FFT display reminded me that the world of aviation is not a silent void. Spike after spike appeared in a tight band—half the default filter width on the Airspy, a narrow bar that could pick up the 2‑Khz roll‑off pulses of the digital handshake.
I switched the software from a spectrogram to a demodulator set to APRS‑CFM, a robust protocol that can interpret HFDL’s binary bursts.
The first line of decoded data scanned across: APRS TWR: Flight 4361: HFDL-Continuous Traffic Assigned.
It was as if a radio crystal had cracked open and opened a doorway to the skies above me.
With the HF+ now locked onto the station, the night unfolded like a lullaby of noise and signal. Each pulse forged a bridge: an aircraft’s transponder voice was chopped, compressed, and woven into a data stream. The 2‑Khz frequency hopping scheme of secondary aviation channels required the HF+’s dynamic range to stay sharp, a testament to its low noise figure and wide intermediate frequency.
When the last packet of that night’s HFDL chatter slid off the radio crystal, I could swear I heard a faint echo away in the distance, an aircraft's compromise control voice somewhere over the Atlantic. The success felt almost cinematic—like a winning act at a clandestine border crossing between planes and ground stations.
The Airspy HF+ sat emblematic, a shining gateway that translates the static of the airwaves into the structured heartbeat of aviation communications. For a hobbyist, it becomes a bridge: a small piece of hardware that, when paired with the right software, lets one witness the unseen digital dance that keeps planes grounded on a sea of frequencies.
It was a rainy evening, and the city streets glimmered with the occasional flicker of streetlights. In my small apartment, a modest Airspy HF+ sat on a shelf, its copper coloring flashing faintly in the dim glow of my monitor. I was eager to turn this silent Alfa traces of radio into a conduit for Digital Radio Mondiale DRM—a digital audio technology that promised crystal‑clear reception of AM, shortwave, and even mediumwave stations.
First, I unplugged any existing USB devices and attached the Airspy HF+ directly to a USB 3.0 port. The port supplied the 2.5 V logic required for the device, eliminating the need for an external power supply. Once the computer recognized it, a quick trick of Device‑Manager confirmed that the USB-Serial Controller was listed as Airspy-HF‑Firmware.
The Airspy website offers a concise download link for the up‑to‑date firmware, which I transferred to the device via a tiny USB‑to‑UART adapter. After a gentle firmware flash, the HF+ rebooted itself. Next, I fetched the newest Airspy Windows Drivers from the official repository. Installing them through the standard Setup Wizard made the device appear in Windows as a high‑performance SDR.
My research led me to two powerful programs that had been recently updated for DRM: SDR# (SDRSharp) and FoxSDR. Both offered an integrated DRM plugin—a thin wrapper around the DRMBR library that decodes the transport stream into standard PCM audio.
After launching SDR#, I selected the Airspy HF+ as the audio source and set the frequency to the classic 828 kHz, where German Rundfunk Berlin-Brandenburg typically beams its DRM stream. In the Plugins tab, I enabled the newly installed DRM-Decoder Plug‑In. The interface displayed a simple slider for the bit‑rate, and I adjusted it to 64 kbps – the bandwidth that balances quality and robustness for shortwave interference.
My next step involved calibrating the gain knob on the Airspy HF+. A gentle sweep through the 7.5 kHz–35 kHz bandwidth revealed a clear peak at 1.23 MHz, confirming the device’s sensitivity. Using the Waterfall view, I watched the DRM frame structure rise and fall in real time, knowing that the sync words were being received correctly. I set the antenna to a small coaxial dipole, which provided reliable shortwave gain without the bulk of a full swath.
It was time to listen. The horizontal bar at the top of SDR# indicated a steady signal‑to‑noise ratio of 7 dB, just enough to kick off the DRM demultiplexer. As the plugin decoded the multiplex, a stereo stream flooded through my laptop’s speakers with the unmistakable “beep‑boop” of DRM’s error‑correction in action. The transmitted audio was crisp, and the occasional deep‑squelch when a distant station switched tracks became a subtle, almost cinematic effect.
To preserve this listen, I opened the Recorder tab in SDR#. I chose to write the output as an MP3 file—compressed yet faithful—named DRM‑Night.mp3. The file size stayed under 30 MB for a ten‑minute pass, making it easy to upload to my favorite streaming platform. I posted a short note about my setup, encouraging friends to try DRM on Windows with an Airspy HF+.
What began as a simple curiosity turned into a guided exploration of a digital radio frontier. The tone of the Airspy HF+ paired with the precision of SDR#’s DRM plugin transformed the static noise of shortwave into a living, breathing broadcast. Today, the world of digital radio feels a little closer, a little more accessible, and a little richer for the stories it brings to those willing to tune in.
As the late evening drew near, I set my Airspy HF+ SDR to listen for the faint broadband whispers that would later reveal themselves as a Digital Radio Mondiale (DRM) signal. The beauty of the setup lay in its simplicity—macOS, a single USB dongle, and a handful of open‑source tools.
I began by pulling the latest Airspy firmware from the official Airspy release page (April 2024). After unblocking the package in System Preferences → Security & Privacy, I opened Terminal and entered:
brew install --HEAD airspy‑hf
Because macOS ships with its own bus infrastructure, I also installed the libftdi and libusb‑compat‑0.1 packages so the driver could communicate over USB:
brew install libftdi libusb-compat-0.1
The Airspy device paired instantly. A quick check with airspyhf_info confirmed the firmware was up to date, and the power prints were exactly what I expected.
Next, I downloaded the newest macOS release of SDRangel (v0.8.7), which now includes native Airspy support. After unpacking it, I launched the application and waited for the device list to populate. Once the HF+ appeared, I toggled its “Enable” switch and selected the VHF band—DRM falls in the 1.5 MHz neighborhood.
Within SDRangel's demod settings, I chose the DRM (HF+) demodulator and set the frequency to 1 530.36 kHz, the standard transmission point for many European DRM stations. I then lowered the bandwidth to 2 kHz to match the narrow DRM channel, and tweaked the AGC to avoid clipping. With a single click on “Play,” the waterfall flickered to life, and eventually a faint voice emerged in the audio output—my first reproduction of a Digital Radio Mondiale stream on macOS.
Because the Airspy HF+ is exceptionally quiet, I had to calibrate the input levels carefully. Using SDRangel’s “IQ Balance” panel, I adjusted the 90‑degree offset to balance the quadrature signals. A slight tweak in the add-on “Routing” section directed the decoded PCM stream straight to QuickTime, enabling me to monitor the audio with a simple open -a QuickTime Player output.wav command.
When the signal was weak—often in the 700 µV range—I employed Loopback processing: the Airspy output was fed into GD77‑HD software down‑converter code, from which the DRM stream was decoded by the open‑source drm‑demod module (hosted on GitHub “dionaker/airspyhf‑drm”). The combination of this lightweight dual‑stack and SDRangel's real‑time visualization produced a crystal‑clear rendition of the station’s voice and data burst.
April 2024 saw an update to driver‑update‑airspy that added kernel‑mode support for the HF+. This mitigates the need for a background airspyhf_daemon script I used earlier. I've also noted that the upcoming SDRangel patch (v0.8.8 beta) will incorporate a native DRM waveform renderer, eliminating the call to external demod modules. When that arrives, the passport to high‑fidelity DRM on macOS will be slicker than ever, all thanks to the modest Airspy HF+ and the developer community’s relentless innovation.
From the moment the first 433 MHz waves tripped their antenna, the Airspy HF+ became more than just a receiver; it was a portal to a world of telemetry and sensor data lying just beyond the horizon. The band, a favorite of hobbyists, amateur meteorologists, and remote‑control enthusiasts, carries whispers of temperature, motion, and battery levels all encoded in simple packets. The HF+—with its wide 0.02–2.7 GHz band and high‑resolution 12‑bit ADC—turns that silence into a melange of discernible signals.
Armed with the HF+, a tiny USB stick, and a stable antenna, I began my search on the night the air was buzzing with a quiet hiss. The software of choice, GQRX, provided a real‑time waterfall that made the 433 MHz band feel like a living city map. I tuned to 433.92 MHz, a frequency familiar to many remote‑control protocols, and cut through the noise to reveal a repetitive burst of signals. The blips were spaced at about 157 000 sym/s, a hallmark of the FSK modulation used by numerous wireless weather stations.
Decoding is the art of turning noise into narrative. I switched to SDR#.customDSP and set up a Frequency Discrete Fourier Transform to isolate the chip’s 433 MHz frequency. The software’s built‑in binary demodulator then parsed the burst into raw bytes. Each packet shaved a 64‑byte block from a sensor, and upon importing the stream into Python I could map each field to humidity, temperature, voltage, and sap flow rate. The raw data looked like a string of mysterious variables, but the moment the checksum verified, the story unfolded: a forest canopy monitoring system, an old weather station, and a rural water meter were hand‑shaking at the edge of the electromagnetic spectrum.
The HF+ is not just for on‑the‑fly hacks; it can sit idle, listening, waiting for the next telemetry burst. With Wekinator's time‑series module, I built a small loop that records each packet into a CSV file, stamped with exact timestamps. This allows a historian to reconstruct an activity timeline, correlating observed packet losses with atmospheric conditions. By setting the centre frequency to 433.42 MHz and using a narrow 200 kHz bandwidth, the HF+ ignores most of the neighboring clutter, staying focused on the unreliable yet vital data stream.
The Airspy HF+ outperforms legacy RTL‑SDR boards because of its glossy AWD‑231 PCIe board, which delivers sharper 24‑bit 56 MSa/s performance. Its wideband front‑end and driver support mean minimal hardware tweaks to capture a 433 MHz ISM message. I only had to adjust the Direct Sampling mode in GQRX, literally turning the HF+ into a low‑frequency analog of a superheterodyne receiver. This direct path, free from mixers, preserves the signal integrity needed for exact packet timing—essential when packets are spaced by milliseconds.
While the 433 MHz band carries everything from home automation and RFID to remote sensor arrays, the HF+’s agility allows real‑time switching to other ISM such as 868 MHz or 915 MHz. A single loop, a handful of button presses, and I am again listening to LoRa bursts, all while using the same narrative tools: GQRX waterfall, SDR#.PacketDecoder, and custom Python scripts. The story never ends; each frequency chapter adds a new chapter of device behavior to the same overarching saga of electromagnetic communication.
And there it is—a simple, yet powerful tale of how the Airspy HF+ pulls open a static‑filled box, turns it into radio therapy, and lets you see what telemetry and sensor data in the 433 MHz ISM band really look like. The narrative continues with every new burst, every modulation tweak, and every decode, each moment a line of code in the ever‑expanding log of our asynchronous world.
© 2005 - 2026 AB9IL.net, All Rights Reserved.
Written and curated by Philip Collier / AB9IL.
About Philip Collier / AB9IL,
Commentaries and Op-Eds,
Contact,
Privacy Policy and Disclosures,
XML Sitemap.