Tagged: weather satellite

Automatically Receiving, Decoding and Tweeting NOAA Weather Satellite Images with a Raspberry Pi and RTL-SDR

Over on Reddit we've seen an interesting post by "mrthenarwhal" who describes to us his NOAA weather satellite receiving system that automatically uploads decoded images to a Twitter account. The set up consists of a Raspberry Pi with RTL-SDR dongle, a 137 MHz tuned QFH antenna and some scripts.

The software is based on the set up from this excellent tutorial, which creates scripts and a crontab entry that automatically activates whenever a NOAA weather satellite passes overhead. Once running, the script activates the RTL-SDR and APT decoder which creates the weather satellite image. He then uses some of his owns scripts in Twython which automatically posts the images to a Twitter account. His Twython scripts as well as a readme file that shows how to use them can be found in his Google Drive.

mrthenarwhal AKA @BarronWeather's twitter feed with automatically uploaded NOAA weather satellite images.
mrthenarwhal AKA @BarronWeather's twitter feed with automatically uploaded NOAA weather satellite images.

Decoding Meteor-M Images on a Raspberry Pi with an RTL-SDR

Thanks to Andrey for writing in and showing us his Java based Meteor-M decoder for the RTL-SDR which he uses on a Raspberry Pi. The decoder is based on the meteor-m2-lrpt GNU Radio script and the meteor_decoder which he ported over to Java. Essentially what he's done is port over to Java a bunch of GNU Radio blocks as well as the meteor decoder. The ported Java blocks could also be useful for other projects that want to be cross platform or run without the need for GNU Radio to be installed.

In his blog post (blog post is in Russian, use Google Translate for English) Andrey explains his motivation for writing the software which was that the Windows work flow with SDR# and LRPTofflineDecoder is quite convoluted and cannot be run headless on a Raspberry Pi. He then goes on to explain the decoding algorithm, and some code optimizations that he used in Java to speed up the decoding. Andrey notes that his Java version is almost 2x slower compared to the GNU Radio version, but still fast enough for real time demodulation.

Meteor-M2 is a Russian weather satellite that operates in the 137 MHz weather satellite band. With an RTL-SDR and satellite antenna these images can be received. Running on a Raspberry Pi allows you to set up a permanent weather satellite station that will consistently download images as the satellite passes over.

Decoded Images with Andry's Meteor-M software on Raspberry Pi.
Images received with Andry's Meteor-M software running on a Raspberry Pi.

Improving HRPT Reception + A Free HRPT Decoder

Back in December Tysonpower showed us  how he was able to receive HRPT weather satellite images with a 80cm and 1.2m satellite dish, LNA and Airspy Mini. 

If you didn't already know, HRPT signals are a little different to the more commonly received NOAA APT or Meteor M2 LRPT images which most readers may be more familiar with. HRPT images are more difficult to receive as they are broadcast in the L-band at about 1.7 GHz and so receiving them requires a dish antenna (or high gain Yagi antenna), L-band dish feed, LNA and a high bandwidth SDR such as an Airspy Mini. The result is a high resolution and uncompressed image with several more color channels compared to APT and LRPT images.

In the last video Tysonpower was successful with receiving HRPT images with his setup. But recently over on his YouTube channel and on his blog Tysonpower has shown how he has improved his HRPT reception by first optimizing the feed and adding in a copper matching line which helps improve the impedance matching of the feed. He also added an L-Band filter tuned to the HRPT signal which he notes made the biggest improvement, and he also moved all the components into a watertight box for permanent outdoor mounting. With these changes he's now able to consistently pull in some very nice imagery. All the images are still received by hand tracking the satellite dish as the satellite passes over, but he notes that he plans to experiment with motorized trackers in the future.

Note that the video shown below is narrated in German, but English subtitles are provided if you turn on YouTube captions.

A sample HRPT image received by Tysonpower.
A sample HRPT image received by Tysonpower.

In addition to the above Tysonpower also writes that he has created a free HRPT decoder for the HRPT signals originating from NOAA satellites. He writes regarding HRPT decoders:

I found it quite complicated to find a decoder for HRPT when i started and there is still no one that you can just Download.

The only free Decoder is the gr-noaa example in gnu radio that has a depricated wx GUI and uses a input from a specific SDR. I used that gr-noaa example and created a decoder that uses the modern QT GUI and has a clean interface. You just put in a wav IQ file from SDR# for example and it will decode the Data into the file you entered. It is not the best one out there in form of signal processing, but a good start i would say.

The decoder can be downloaded from tynet.eu/hrpt-decoder. Below is a second YouTube video where Tysonpower explains how to use the decoder.

A Video Tutorial about Receiving HRPT Weather Satellite Images

Over on YouTube 'Tysonpower' has recently uploaded a very informative video and blog post showing how he is able to receive HRPT weather satellite images. Note that the video is in German, but English subtitles are provided.

Most readers of this blog are probably familiar with the more commonly received APT images that are broadcast by the NOAA satellites at 137 MHz, or perhaps the LRPT images also broadcast at 137 MHz by the Russian Meteor M2 satellite. HRPT signals are a little different and more difficult to receive as they are broadcast in the L-band at about 1.7 GHz. Receiving them requires a dish antenna (or high gain Yagi antenna), L-band dish feed, LNA and a high bandwidth SDR such as an Airspy Mini. The result is a high resolution and uncompressed image with several more color channels compared to APT and LRPT images.

In his video Tysonpower shows how he receives the signal with his 3D printed L-band feed, a 80cm offset dish antenna (or 1.2m dish antenna), two SPF5189Z based LNAs and an Airspy Mini. As L-band signals are fairly directional Tysonpower points the dish antenna manually at the satellite as it passes over. He notes that a mechanised rotator would work a lot better though. For software he uses the commercial software available directly from USA-Satcom.com.

An Example HRPT Image Received by Tysonpower.
An Example HRPT Image Received by Tysonpower.

A Solar Powered Raspberry Pi + RTL-SDR NOAA Weather Satellite Receiver

Over on YouTube user Fuzz has uploaded a video showing his solar powered NOAA weather satellite receiver.

The system is based on a Raspberry Pi connected to an RTL-SDR.com dongle. The front-end input of the RTL-SDR dongle consists of an LNA and FM reject filter, and this is all connected up to a QFH antenna in his front yard. The electronics are completely solar powered, with the solar system consisting of solar panel, solar controller and four 12v batteries used for energy storage. A 12V to 5V step down converter is used to power the Raspberry Pi, with the 12V LNA being powered directly by the batteries. The system is able to be accessed remotely via the Raspberry Pi’s WiFi connection.

Over on his Facebook page Fuzz has uploaded some additional photos, and some of the images he’s receiving.

Fuzz's solar powered NOAA weather satellite receiver.
Fuzz’s solar powered NOAA weather satellite receiver.

(Almost) Receiving HRPT with the ADALM-PLUTO and a WiFi Grid Antenna

Over on YouTube user Tysonpower has uploaded a video showing how he was (almost) able to receive the HRPT signal from NOAA18 with an ADALM-PLUTO, LNA4ALL and a WiFi grid antenna.

Most readers will be familiar with the low resolution 137 MHz APT weather satellite images transmitted by the NOAA weather satellites. But NOAA 15, 18, 19 and well as Metop-A and Feng Yun satellites also transmit an HRPT (High Resolution Picture Transmission) signal up in the 1.7 GHz region. These HRPT images are much nicer to look at with a high 1.1 km resolution. If you follow @usa_satcom on Twitter you can see some HRPT images that he uploads every now and then.

However HRPT is quite difficult to receive and decode because the bandwidth is about 3 MHz so something with more bandwidth than an RTL-SDR is required. The signal also needs a ~1 meter or larger dish antenna as it is very weak, and you also need a motorized pointing system to track the satellite with the dish as it passes over.

Despite the difficulty in his video Tysonpower showed that he was able to at least receive a weak signal using a non-optimal 2.4 GHz WiFi grid dish antenna, LNA4ALL and his ADALM-PLUTO. The signal is far too weak to actually decode, but it’s still pretty surprising to receive it at all. In the future Tysonpower hopes to be able to improve his system and actually get some image decodes going. Note that the video is in German, but there are English subtitles available.

dopplerscript: Getting Doppler Updates from GPredict into GNU Radio

Thanks to Dave for submitting news of his recent release of his Python script called dopplerscript. This is a tool that can help people automate the reception and decoding of the Meteor M2 weather satellite in Linux with GNU Radio by providing a tool for automatic Doppler correction. He writes:

gr-gpredict-doppler is an out-of-tree gnuradio block for getting doppler updates from gpredict into a flowgraph. I’ve written a small python script (based on pyephem) that replaces gpredict for generating  the doppler updates. This script allows one to automate scripting the  reception of Meteor M2 satellite transmissions while compensating for the doppler shift.

dopplerscript is a command-line tool to input satellite doppler shifts into a gnuradio flowgraph. The doppler.py script replaces gpredict as the source for doppler frequency updates in gr-gpredict-doppler, making it easy to script satellite reception.

As low earth orbit satellites fly very quickly overhead, the signal will be affected by the doppler effect, thus shifting the frequency as it moves towards and away from you. Tools like this can be used to predict and compensate for this effect and thus providing better signal processing. Meteor M2 is a Russian weather satellite in low earth orbit which transmits digital LRPT weather satellite images that can be received with an RTL-SDR or other SDR.

An Example LRPT Image Received with an RTL-SDR from the Meteor-2 M2.
An Example LRPT Image Received with an RTL-SDR from Meteor M2.

Using a TV Dipole Antenna for NOAA Satellite Reception

Over on YouTube icholakov has uploaded a video showing how effective a simple old TV bunny ears antenna can be at receiving NOAA satellite images. The old TV antenna is telescoping so it can be adjusted to be resonant for many frequencies, and for NOAA satellites about 20 inches makes it resonant. Using the antenna as a V-Dipole and placing it in a North to South direction optimizes the radiation pattern towards the sky, allowing for good reception of the NOAA satellite. Using it this way also helps to null out strong vertically polarized stations. More information on the V-Dipole can be found on our previous post where we posted about Adam 9A4QV’s idea to use the V-Dipole for satellite reception.

Also related to this post is a sneak preview on our new product: We’ve also caught onto the idea that TV antenna dipoles are extremely versatile, and are in the final stages of releasing a simple telescopic dipole product similar to the TV antenna used in this video. It will be released as an antenna set that comes with some portable mounting solutions like a suction cup and bendy tripod, and 3M of RG174 coax so that the antenna can be used anywhere. Target price is $10 -15 USD incl. shipping from China. This will probably also replace the stock telescopic whip antenna currently used in our dongle sets since the telescopic dipole is simply much more versatile.