Over on Twitter and his github.io page, Pieter Noordhuis (@pnoordhuis) has shared details about his low cost RTL-SDR based GOES satellite receiving setup. GOES 15/16/17 are geosynchronous weather satellites that beam back high resolution weather images and data. In particular they send beautiful high resolution 'full disk' images which show one side of the entire earth. As the satellites are in geosynchronous orbit, they are quite a bit further away from the earth. So compared to the more easily receivable low earth orbit satellites such as the NOAA APT and Meteor M2 LRPT satellites, a dish antenna, good LNA and possibly a filter is required to receive them. However fortunately, as they are in a geosynchronous orbit, the satellite is in the same position in the sky all the time, so no tracking hardware is required.
In the past we've seen people receive these images with higher end SDRs like the Airspy and SDRplay. However, Pieter has shown that it is possible to receive these images on a budget. He uses an RTL-SDR, a 1.9 GHz grid dish antenna from L-Com, a Raspberry Pi 2, the NooElec 'SAWBird' LNA, and an additional SPF5189Z based LNA. The SAWBird is a yet to be released product from NooElec. It is similar to their 1.5 GHz Inmarsat LNA, but with a different SAW filter designed for 1.7 GHz GOES satellites. The total cost of all required parts should be less than US $200 (excluding any shipping costs).
Pieter also notes that he uses the stock 1.9 GHz feed on the L-com antenna, and that it appears to work fine for the 1.7 GHz GOES satellite frequency. With this dish he is able to receive all three GOES satellites at his location with the lowest being at 25 degrees elevation. If the elevation is lower at your location he mentions that a larger dish may be required. It may be possible to extend the 1.9 GHz L-Band dish for better reception with panels from a second cheaper 2.4 GHz grid dish, and this is what @scott23192 did in his setup.
For software Pieter uses the open source goestools software that Pieter himself developed. The software is capable of running on the Raspberry Pi 2 and demodulating and decoding the signal, and then fully assembling the decoded signal into files and images.
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.
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.
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.
[EN subs] HRPT - optimierungen und sehr gute Bilder
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.
[EN subs] Kostenloser HRPT Decoder (GNU Radio) - Und wie man ihn nutzt
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.
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 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.
[EN subs] Empfang von HRPT mit dem ADALM-PLUTO SDR – NOAA18
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.