GR-HRPT: GNU Radio HRPT Decoder Blocks for NOAA, METEOR, MetOp and FengYun-3 Weather Satellites

Thank you to @Derek33197785 for writing in and highlighting @aang254's work on gr-hrpt, a GNU Radio 3.8 port of HRPT blocks from gr-noaa and other projects. These blocks are for decoding the HRPT signal from weather satellites like NOAA, METEOR, MetOP, and soon FengYun-3. @Derek33197785 writes to us:

[@aang254] made a custom HRPT decoder and ported HRPT blocks for NOAA, METEOR and MetOp to work with gnuradio 3.8 on Linux. Right now it is the only free and open source decoder for MetOp (that works), and he also thinks about implementing FengYun support. I tested the decoder and it works great.

He's also working on extracting the full data from HRPT, not just the AVHRR/MSU-GS imagery but also all the telemetry and other instrument data.

HRPT is a high resolution weather satellite image signal that is broadcast from the same NOAA satellites that provide the more commonly received low resolution APT images at 137 MHz. HRPT is also broadcast by the FengYun-3, Metop and Meteor satellites. However, HRPT transmits at 1.7 GHz, so a high gain dish antenna with motorized tracking mount (or hand guided tracking), LNA and a high bandwidth SDR like an Airspy is required to receive it.

A Metop HRPT Weather Satellite Image (resolution reduced). See @Derek33197785's twitter for the full resolution image.
A Metop HRPT Weather Satellite Image (resolution reduced). See @Derek33197785's twitter post for the full resolution image.

Decoding HIRS Instrument Images from NOAA Weather Satellites

Thank you to Björn Schnabel who has written in to notify us about a website he's created for a program written by Zbigniew Sztanga called NOAA-HIRS-decoder which might be of interest to some RTL-SDR users. Most of us are familiar with the the ability to use an RTL-SDR to receive the APT signal on the NOAA 15/18/19 weather satellites. The APT signal provides a live image of the Earth. If you haven't tried to receive APT yet, we have a tutorial here.

Apart from APT there is also the HIRS instrument data which is transmitted in the Direct Sounding Broadcast (DSB) telemetry signal that is spaced at a slight offset from the APT frequency. According to NOAA, the HIRS instrument is "a discrete stepping, line-scan instrument designed to measure scene radiance in 20 spectral bands to permit the calculation of the vertical temperature profile from the Earth's surface to about 40 km". The SDR# screenshot below shows what the HIRS signal looks like, and to the sides you can see NOAA APT signals.

The NOAA HIRS Signal
The NOAA HIRS Signal (Center Signal)

NOAA-HIRS-decoder makes use of the Project-Dessert-Tortoise NOAA satellite telemetry decoder that we posted about previously which can be used to decode data from most of the other scientific instruments on the NOAA satellites. The HIRS decoder by Zbigniew uses the raw text data produced by the Project-Dessert-Tortoise decoder and converts it into images. Full instructions on setting up the decoder on Windows is provided on the NOAA-HIRS-decoder website, just click the menu icon on the top right of the page, and go to "usage".

The received data contains 10 channels of long wave infrared, 9 channels of medium wave infrared, and one visible light measurement. The software will plot the 20 channels as images that are 56 pixels wide. This is not a high resolution picture, but it is nevertheless valuable data that can be used for scientific or weather prediction purposes.

All 20 NOAA HIRS Channels (Image enlarged from 56 pixels)
All 20 NOAA HIRS Channels (Image enlarged from 56 pixels)

TETRA-Kit: A New Open Source TETRA Decoder

Thank you to Larry for submitting information about his latest project called TETRA-Kit. TETRA-Kit is an extensible open source TETRA downlink decoder for Linux that makes use of GNU Radio as the first stage, so it should be compatible with any SDR supported by GNU Radio, including the RTL-SDR. Larry writes:

[TETRA-Kit] is inspired by a lot of existing stuff (see 'Previous work' in the project page) but started from scratch with those following ideas:

  • Stays as close as possible to TETRA specification layers defined in ETSI EN 300 392-2 v3.4.1 (2010-08)
  • Transmit downlink informations (including speech frames) in Json plain text format to be recorded or analyzed by an external program
  • Reassociate speech frames with a simple method based on associated caller id and usage marker (save messages transmitted simultaneously in separated files)
  • KISS

The decoder implements a soft synchronizer allowing missing frames (50 bursts) before loosing synchronization.

It consists in 3 parts:

  • A physical layer transforming PI/4 DQPSK rf signal to bits (RF frontend is NESDR at 2MBPS)
  • A decoder, which is the actual TETRA stack reading bits and transforming it to Json text
  • A recorder, which read Json stack output and reorder speech frames into separate files

The ETSI codec is also provided so unencrypted speech can be played.

Software is written in C++ and licensed under GPLv3 and use few external softwares with compatible licensing.

TETRA is a type of digital voice and trunked radio communications system that stands for “Terrestrial Trunked Radio”. It is used in many parts of the world, but not in the USA.

TETRA-Kit Screenshot
TETRA-Kit Screenshot

OpenEar Updated to Version 1.6

The RTL-SDR compatible multi-mode digital decoder OpenEar has recently been updated to version 1.6. The latest version currently supports the decoding of FM/AM, TETRA, DMR, Pocsag and ADS-B. New features include a zoomable waterfall and other GUI and functionality improvements. The changelog reads:

6/4/2020
version 1.6.0
- saving last settings
- waterfall
- zoom on spectrum and waterfall with mouse wheel
- better list placement (pocsag & ads-b)
- wav(I/Q) loading (only 1024000 Sample/sec)
- voice volume & mute button
- spectrum range and offset
- rtl gain and correction (ppm)
- top menu
- frequency list
- some DMR improvement on SYNC detection
- solved center frequency issue (DC problem)
- and other few UI improvements

OpenEar Version 1.6
OpenEar Version 1.6

Shiva DX Cluster For SWL/BCL with SDR-Console V3

Thank you to Walter Panella (IU2MEH) for submitting information about his Shiva DX Cluster software which is designed to be used with SDR-Console V3. A DX Cluster is a type of distributed network of software that is used to to advertise that long-distance amateur radio DX stations are transmitting. Walter writes:

Shiva DX Cluster connects to a ham radio dx cluster and repeat the dx spot to shiva clients while adding spots based on list files.

It doesn't send to ham radio dx cluster any spot nor it can receive any spot.

It is intended to use with SDR Console for SWL/BCL ( see screenshots folder ) so they are able to see broadcasting stations, for example, based on scheduling day and time.

Ham radio dx cluster spots are repeated to shiva clients immediately, broadcasting stations and other lists are sent to shiva clients every 10 minutes (default,configurable).

The software is available on Walter's GitHub.

Shiva DX Cluster running on SDR-Console V3
Shiva DX Cluster running on SDR-Console V3

Virtual Plane Spotting Livestream by Piping ADS-B Data into Flight Simulator

Over on YouTube we've recently discovered a live stream by channel Information Zulu that has created a virtual live 24hr view of LAX airport air traffic by piping ADS-B data into a flight simulator game. The stream also combines this with live air traffic audio and arrivals and departures information. Other videos on his channel show highlights like go arounds.

We're not sure what he's using to pipe ADS-B data into the simulator or exactly what simulator this is, but in the video description he notes that he uses a Pi 4, RTL-SDR blog V3 with ADS-B LNA, and an AirNav antenna to receive the ADS-B data. 

This reminds us of the Android ADSB Flight Tracker app which also has a 3D view, and the post about using ADS-B data to simulate what aircraft instruments would show on the real aircraft.

A 3D Printed Dual Screen Cyberdeck with Built in RTL-SDR

A Cyberdeck is a portable retro styled computer on the outside, but on the inside they typically consist of modern components like a Raspberry Pi. Having been inspired by the aesthetic of the Reviiser cyberdeck project, Reddit user u/dapperrogue set out to build his own version with a built in RTL-SDR.

In his Imgur post, dapperrogue documents the build process. The build consists of multiple 3D printed parts for the enclosure, as well as a really cool home made mechanical keyboard and dual LCD screens. Inside is a Raspberry Pi 4, with RTL-SDR Blog V3, as well as supporting components like a 12v to 5v step down converter, USB hub and four cooling fans. The RTL-SDR connects to a BNC port which is accessible from the outside.

CyberDeck with built in RTL-SDR
CyberDeck with built in RTL-SDR

Decoding Radio Telemetry Heard on News Helicopter Video Footage with GNU Radio

Twitter user @d0tslash was watching news helicopter footage of the BLM protests on the 28th of May when he heard something that sounded like an RF telemetry feed in the background audio on the helicopter's video feed. Having seen this previous success at decoding similar helicopter telemetry, he contacted his friend proto17 who proceeded to reverse engineer and figure out how to decode the telemetry, in the end discovering that it was providing location data for the helicopter.

Over on GitHub proto17 has documented the complete process that he took in reverse engineering the telemetry. He first explored the audio in Baudline discovering that there was a 1200 Hz wide FSK signal. Next he used GNU Radio to further analyze the signal, discovering it's baud rate, resampling the signal and then using a GFSK block to demodulate the signal into 1's and 0's.

Finally he used some clever terminal tricks and a Python script to discover the bit pattern and convert the bits into ASCII characters which reveals the helicopter coordinates. The coordinates decoded indicate that the helicopter was indeed circling the protest area.

We looked into the news helicopters in use during the protests and found that Denver news stations all share one helicopter with registration N6UX. Plugging that into adsbexchange.com and looking at the helicopter ADS-B history on the 28th gives a good match to proto17's decoded data. 

News helicopter telemetry audio vs ADS-B history
News helicopter telemetry audio vs ADS-B history