Category Archives: Utility_DX

Decoding ADS-B with free QIRX software

QIRX’ dashboard, decoding ADS-B: in the middle you see spectrum and spectrogram (“waterfall”) of the ADS-B signals. The window at the bottom lists alls received aircraft with additional data, whereas the top window places them onto a map.

In the last two blog entries, I took a look at the DAB capabilities of free software QIRX by Clem Schmidt, DF9GI, from Frankfurt. It directly works with RTL-SDR, Airspy and RSP2 SDRs. I tried this very smart software from my location near Hannover/North Germany now also with ADS-B, mostly with my RSP2.

ADS-B stands for “Automatic Dependant Surveillance – Broadcast” and is an automatic service where aircraft continuously transmits several vital data on around 1.090MHz. Most important part of these data is the 2D location of the aircraft which it gets by GPS plus height by a baromatric altimeter. From this position data, many other data are derived, e.g. climbing/sinking or speed. If matched to databases, you will also see type of aircraft, flight number and many other data.

“The internet” provides many services showing the results of ADS-B and other data, collected from receivers all over the world, among them Flightradar24, OpenSky, FlightAware and AirNavRadarbox. They each provide many additional data, somtimes available at different schemes. Most provide free access to much of their data, with some more specific data behind their paywall. OpenSky as a scientific and non-profit organization offers billions of datasets for free, see Scientific Datasets. QIRX uses an OpenSky data base with about 650’000 entries.

Backbone of all these services is a net of ADS-B receivers, connected via the internet and curated by each company.

QIRX shows some capabilities of such a receiving station, using a proper antenna and a simple SDR. It decodes the I/Q stream of it. ADS-B is transmitted via pulse-position modulation, or ppm. The system is explained in ICAO Annex 10 Volume IV [free download].

With QIRX, you must set the sampling rate of you SDR to 200000[Hz], as other sampling rates won’t work, see screenshot below.

To decode ADS-B, you must set the sample rate for your SDR to 2000000Hz.

After that, and having started QIRX in ADS-B mode, decoding is done automatically. Release your seatbelts, and simply relax by viewing the activities above your head. Coverage largely depends on the “view” of you antenna and a few other factors like te sensitivity of your SDR and the attenuation of your cable connecting your antenna with your SDR. Some web services, thanks to anticipatory obedience/security reasons/data protection etc., do mute some “special” flights . This is not the case, of course, with this setup. QIRX always provides stable decoding at even low SNRs – great!

Last, but not least, please find below a comparison of FlightRadar24 and QIRX setup with Flight Number TK1554/THY6KG, Hannover->Istanbul, starting from Hannover Airport. One difference between both screenshots is that at my location (Burgdorf), I got the Airbus only after it had climbed to an atlitude of 200m or so, whereas the FR24 receivers are placed at positions allowing for tracking the aircraft from even the runway.

Starting from Hannover to Istanbul: the airbus on track around Hannover. Top window shows the flight via FlightRadar24 web service, and even from the runway. Bottom window shows it received with QIRX from Burgdorf (red point in the northeast).

Also small aircraft is equipped with transponders, but not necessarily with ADS-B transponders, broadcasting the position, derived from their GPS. These small aircraft may haveonly Mode-S transponders on board, transmitting identification, height and squawk (transponder code) as assigned by their responsible ATC, or Air Traffic Control.

Doppler: Following Airplanes’ tracks

Carrier and Doppler trace (left), locations of transmitter, receiver and track of flight NH8406 – March 27, 2021, around 16:45 UTC [click onto the screenshot for richer detail]

Working on a project which will focus on Doppler spread of HF channels (see at the bottom) and other impairements, I also bumped into some more prominent Doppler catches, namely on the VHF aero band. I took the AM carrier of nearby Hannover VOLMET on 127.4 MHz and observed doppler traces about plus/minus 200Hz the carrier frequency. Following the acitvity in the airspace via Flightradar24 in parallel, it is easy to match traces and aircrafts. In this case, I nailed cargo flight NH8406 from Frankfurt to Narita/Tokyo. It is important to remember what is shown in left part of the screenshot: it is the signal of Hannover VOLMET, reflected by this moving Boeing 777-F. Thus, the reflected frequency shows a Doppler frequency shift – depending on the relative speed in respect to transmitter and receiver. A positive Doppler frequency signals that the aircraft is approaching my location. When it turns to the lower frequencies, I see the aircraft passing.

Things get more complex wen it comes to the Doppler shift at HF propagation. You will also see planes, but effects from high winds in the upper atmosphere, coming and fading of ionospheric layers and the influences of the geomagnetic field are prevailing. Due to the much lower frequencies, the effects are just about a tenth compared to thie above example on VHF.

See below a result from my observations on HF as a preview.

Carrier of TRT Emirler, Turkey, in the 19 meter band. Just after sunrise, the carrier splits into two, and you also see double lines due to magnetoionic effects. The window shos about 3Hz in the vertical, and about 40 minutes in the horizontal scale.

CIS Time Signals on VLF

Locations, callsigns and starting times of the received VLF time signal stations, 25 kHz

On January 10, 2020, I did a round-up of VLF time stations from the Commonwealth of Independant States (CIS). They are controlled by the Russian Navy and start their main transmission on 25.0kHz. Then they change to a couple of four other VLF channels. See here for some detailed information in Russian. The diagram below shows a panorama of all received station (Khabarovsk in the Far East missing, as they skip transmission on the 10., 20. and 30. each month) on all frequencies versus time and signal level.

Five locations, six transmissions, five frequencies – this diagram puts it all together.

The diagram features a time resolution of 1s and has a resolution bandwidth of about 0.12 Hz. It is part of a 24h session, made with Winradio’s Excalibur Sigma SDR, active dipole MD300DX (2x5m) and Simon Brown’s software SDRC V3. This software delivers also the values for level over time, which were visualized and combined with QtiPlot software.

Only seemingly, Vileyka and Krasnodar are transmitting on two channels at the same time (from 07:06 UTC/11:06 UTC). This is not the case, but their transmitters show a bit wider signal in their first part of the transmission. Thus, the much weaker (ca. -30dB) “signal” at the same time, but 100Hz up, is some kind of sideband, but not the carrier!

You will see some variation of the carrier power, especially following sign on, but also during the transmission. This can bee seen with tenfold time resolution (i.e. 100ms) and magnifying the dB-scale, see diagram at the bottom as just one example. Fading can be largely excluded for several reasons, artificial characteristic of changes and VLF propagation during short periods among them.

Under the microscope: This rise of 1.5dB of the carrier is part of the workflow of switching on/tuning the transmitter. There are many such details, and they may differ from transmitter, location and performance. Such details might be used for “fingerprinting”.

P.S. The map at the top was made with free software Tableau Public. The locations are geo-referenced, and a satellite map as background will you lead directly to the antennas. Please try this here.

FAX from Shanghai: Pacific Pressures

This FAX broadcast was new to me and received on December 16, 2019 at 08:20 UTC on 16557,1 kHz. It was transmitted via Shanghai Coastal Radio, presumably directed into the Pacific, of which it shows the 48h surface pressure.

It was demodulated from a 25 MHz wide HF recording over 24 hours. This recording was made with Winradio’s G65DDCe Sigma SDR, connected to an active vertical MegaDipol MD300DX (2 x 5 m), and decoded with Wavecom’s W-Code. The recording was scheduled with software SDRC V3 by Simon Brown, and directed via USB3.1 to a 20TB hard disk, WD Duo Book. The resulting one file was 8TB, format WAV RF64.

It was also played back from this hard disk, also via USB3.1. Doing so, it is most remarkable that this setup worked smoothly without any glitches which would promptly have been seen at such a time-critical mode like this FAX., 120/576. So, this reception is also a proof that one can work smoothly with such ‘big data’ even on a hard disk – and not only on expensive SSDs. A FAX transmission is that sensitive that you even see a very weak echo (best seen of the big vertical black stripe at the right which echoes from around 115° East). This originates from a mixed short/long path reception. The strong short path’ flight time is 28.7ms, whereas the weak long path needed 104.7ms. As one FAX line covers 500ms, you can easily measure the delay of roughly 80ms, almost exactly matching the difference of long and short path.

The screenshot has been left un-retouched.

3 x CW: Kagoshima Fishery Radio, JFX

Parallel DXing: JFX on 6421,5 kHz, 8690 kHz and 12704,5 kHz

Morse Code or CW has become rare among professionals (in the West). But there is a busy net of small Japanese Fishery Stations literally pounding the brass. One of them is Kagoshima Radio, JFX. They are not daily heard in Europe, but a combination of receiver Winradio Sigma, active antenna MD300DX (2×2.5 m, vertical) and SDRC V3 software did the trick even under this grim summer propagation. See screenshot above, from 24 hours’ recording of 25 MHz HF. All channels clearly readable – as far as the expressive handwriting (see detailed screenshot at the bottom) of their CW allows for … Yeah: CQ CQ DE JFX JFX QRU QSX 6 / 8 /12 MHz K

First part of the CQ call of JFX in good ol’ hand-made CW … from 12704.5 kHz

Monitoring: Visualizing with free Tableau Public Software

Part of a multi-channel monitoring of the HFGCS net in ALE on July 14, 2019: the vertikal axis shows the channel, the horizontal axis the time of monitoring.

2019 is the year of groundbreaking Software-defined radios, covering the whole HF range of 30 MHz width and recording it for many hours, e.g. from midnight to midnight. In combination with proper software, this allows for a fresh view onto monitoring.

For the screenshot on the top, I had monitored nine HFGCS channels from 3137 kHz to 23327 kHz in parallel (the 18003 kHz didn’t work, sorry) with Winradio’s SIGMA SDR, running with Simon Brown’s free software SDRC V3 and nine instances of MultiPSK decoder.

After automatic monitoring, I harvested all time-stamped logs stripped them from information not needed, and imported them to free Tableau Public software to visualize activity according to station, time and channel. This gives an overview on the monitoring session, propagation, time sequences of hopping from channel to channel etc. – you might zoom into the screenshot for a clearer look.

Thanks to Tableaus also stunning geospatial features, completely other views of the same log are available. The screenshot below shows the number of logs on all channels of a monitoring session of 12 hours.

Geospatial information of the stations, combined with the number of log entries on all channels.

You may zoom into this OSM[ap], and you may also have a zoomed satellite view (or this or that) which directly hits the feeder point of your antenna … if you know the exact location and this is a part of your log entry – see screenshot below.

Zooming the map above onto JDG at satellite view, directly leads you to the location of the station – here Diega Garcia US Military base.

The most versatile Tableau software also allows to relaize many other ideas to visualize monitoring; some of them already above horizon, others still below. To conclude this entry, I did a visualization of all HF stations/channels of AFAD, the Turkish Disaster and Emergency Management Authority, heard by me over the last 18 months. Each (?) of the 81 Turkish provinces maintains an AFAD base, and all (most?) of them are communicating on HF. As Tableau has many detailed geographical already aboard, a visualization of channels/province being heard is easy.

Analyzing part of a logbook: All Turkish provinces heard with ALE signals of AFAD are colored – the deeper the color, the more channels were received in the last 18 months.

Dream Team: Winradio’s SIGMA and Simon’s Software (1)

All main six GMDSS channels on HF at once: Winradio’s SIGMA with Simon Brown’s software SDRC V3

Some days ago, I wrote about my very first experiences with Winradio’s groundbreaking SIGMA SDR receiver, covering e.g. the whole HF band with 32 MHz width and 16 bit resolution – plus much, much more. SIGMA comes with a fine software, and provides an API.dll for connection to 3rd-party software. Thankfully, Simon Brown, G4ELI, adapted his unique SDRC V3 software to this (and other) Winradio in nearly no time.

This combination has become a real dream team: the best hardware and the best software avalaible. The screenshot at the top shows just one example of others which will follow: I made a 24 hour recording of 0 to 25 MHz (7.85TB) and placed six demodulators on the main GMDSS channels on HF between 2 and 16 MHz. You see each channel in a separate window at the top of the screenshot, showing spectrum and spectrogram with time stamps of the recording. Below those six channels you see spectrum and spectrogram of the whole recorded bandwidth, namely 25 MHz. Eventually, below this spectrogram you see 60 x 24 boxes, one for every minute of the 24 hours recording. Just click into the time you want, and the recording instantaneoulsy to it.

Demodulated audio is guided via VAC1 … VAC6 to six different instances of the free YAND GMDSS decoder – see screenshot at the bottom.

There are great many other applications of this revolutionary combination to which I will come back later.

Parallel reception & decoding of six GMDSS channels at once.

ALE [MIL-STD-188-141A]: Which one is the best Decoder?

This is an update from my post two days ago. I have expanded the number of test signals and added some hints.

Does your decoder read this track? Buried in noise and plagued by multipath fading, the recordings below will separate the wheat from the whaff.

Often I am asked – and sometimes even asking myself! – “Which one is the best decoder for ALE?” This means: Which one delivers the best decoding under demanding conditions?

To test this, I made a recording of twelve stations “on the air” plus one weak signal, buried in Additive White Gaussian Noise, AWGN. All signals are correctly tuned, no one invers. All were read by at leastby one of my decoders “in a row”.

To test your decoders, you should download this WAV file of 131 seconds length and play it. It can be either directly opened by some decoder, or feed it via virtual audio cable (VAC) into a decoder. I used Audacity for this.

I am as interested in the results as you are – so please drop me a line to dk8ok [at] I like to encourage you to try all ALE decoders you have at hand – the more, the better.

Already the first results were surprising. This concerned both, the decoding ability of the decoders and the repeatability of the test. So far, the following decoders had participated: go2monitor, Krypto500, MARS-ALE, MultiPSK, Sorcerer, and W-Code. Steve, N2CKH, had written some valuable hints to optimize his MARS-ALE software for SIGINT purposes – please see his comment.

This WAV file contains the calls of thirteen ALE stations. Download and save this file (point to the icon, press right mouse button …). Then feed it to your decoders. Copy the results and send them to me. Have fun!

Ghosts in the Air Glow: HAARP on March 26th, 2019

Just after the spring equinox, interdisciplinary artist Amanda Dawn Christie did another performance of her ionospheric transmission art project “Ghosts in the Air Glow” via the High Frequency Active Auroral Project HAARP near Gakona/Alaska. I took an HF recording of a range, covering all frequencies and times scheduled – see here. At my location, on March 26th, 2019, reception was possible only on 5.100 kHz (best), 6.900 kHz, 7.900 kHz and 8.000 kHz. Signal strength was too low to hear any modulation, but the characteristics of the signals did exactly match the schedule – see screenshots and captions below.

Receiver: Elad’s FDM-S2, Antenna: Active Dipole MD-300DX (2 x 2.5 m), Software: V3 from Simon Brown

5.100 kHz, 01:16 to 01:26 UTC, West beam, gave the best signal.
The signal on 6.900 kHz on the East beam from 01:16 to 01:26 UTC was considerably lower.
On 7.900 kHz, the signal was transmitted by an electronically rotated beam, one rotation per minute, from 01:03 to 01:09 UTC on the West beam. This is clearly seen on the the Signal window below the spectrogram.
On 7.900 kHz, the signal was transmitted by an electronically rotated beam, two rotations per minute, from 01:09:30 to 01:15:30 UTC on the West beam. This is clearly seen on the the Signal window below the spectrogram.
On 8.000 kHz, the signal was transmitted by an electronically rotated beam, one rotation per minute, from 01:03 to 01:09 UTC on the East beam. This is clearly seen on the the Signal window below the spectrogram.
On 8.000 kHz, the signal was transmitted by an electronically rotated beam, two rotations per minute, from 01:09:30 to 01:15:30 UTC on the East beam. This is clearly seen on the the Signal window below the spectrogram.

Visualizing HF Networks


A flight of G-VFIT from Atlanta to Heathrow, and its HFDL communications – visualized by GEPHI.

Gephi does it

Each communications has a structure. Visualization reveals this structure. This is also valid for HF communications with its networks with different stations, (even moving) locations, hierarchy …

Recently, I made my first steps with free visualization software GEPHI to get a deeper look into some aeronautical networks. The graph at the top shows the gephi’ed result of 125+ HFDL messages, transmitted by a flight of G-VFIT from Atlanta to Heathrow. I monitored six HFDL channels in parallel, one channel from New York, two from Shannon, and three from Reykjavik.

Each point represents a message, tagged by its time in UTC. The positions of the points are geo-referenced, as I used HFDL messages containing these information.

Wheras the longitude’s positions are to scale, their latitude’s positions had been spread for better reading.

This visualization shows that Reykjavik on 6.712 kHz did the main work. But it is surprising that the first contact just leaving the U.S. coast was made with Shannon, and not with nearby New York.

GEPHI also helps in visualizing the hiearchy of networks, see screenshot below:

In the Russian Aero Net on 4.712 kHz, Rostov plays a pivotal role.

Here the strength of the connecting lines and the position of the city’s names represents to hierarchy of this network, i.e. who is calling whom, and how often. There are several strongholds like Rostov, Yekaterinburg and Samara, but also some mere outposts like Novosibirsk and Syktyvkar.

This picture isn’t geo-, but social-referenced, to say so: you know that e.g. Chelyabinsk on the left is geographically situated east of Rostov. You may also geo-reference these data, turn it into a kml file and see it in Google Maps of Open Street Map. If the co-ordinates are correct, zooming will take you exactly to the feeding point of each of their Nadenenko dipole, see below …

The above visualized hierarchy has been changed here into a geo-referenced kml file, opened in Google Earth.

There are many more applications of such a great tool for visualization which will further enrich monitoring.

« Older Entries