Tagged: weather satellite

Receiving GOES Weather Satellite Images with a Small Grid Antenna and an Airspy Mini

GOES is an L-band geosynchronous weather satellite service that can be received typically with a satellite dish. It produces very nice full disk images of the earth. In the past we’ve posted about Lucas Teske’s work in building a GOES receiving system from scratch (including the software decoder for Airspy and RTL-SDR receivers), devnullings post about receiving GOES and also this talk by @usa_satcom on decoding GOES and similar satellites.

Over on Twitter @usa_satcom has been tweeting about his experiments where he has been successfully receiving GOES L-Band weather satellite images with a small grid antenna and an Airspy Mini. In a Tweet he writes that the antenna is an $85 USD Hyperlink 1.9 GHz 22 dBi Grid Antenna made by L-com. A grid antenna may be more suitable for outdoor mounting for many people as they are typically lighter, smaller and more suitable for windy and snowy conditions. As the GOES satellite is in geosynchronous orbit, no tracking motor or tracking mount is required.

[tweet https://twitter.com/usa_satcom/status/820793963988668416 align=”center”] [tweet https://twitter.com/usa_satcom/status/820781116764266496 align=”center”] [tweet https://twitter.com/usa_satcom/status/820773345956200449 align=”center”]

Demuxing Frames and Generating Images from the GOES Weather Satellite

In his latest two posts Lucas Teske continues with his series about receiving and downloading weather satellite images from the GOES satellites. In past posts he’s show us how to receive the signal with a satellite dish and Airspy or RTL-SDR (part 1), how to demodulate the signal (part 2), and how to extract frames from the demodulated signal (part 3). Lucas has recently completed his series with parts 4 and 5 having just been uploaded.

In part 4 Lucas shows how to parse the frames and get the packets which will ultimately be used to generate the weather image files. His post explains how to de-randomize the frame data which is initially randomized to improve performance, how to add Reed Solomon error correction, how to demux the virtual channels and the packets and finally how to save the raw packet.

The packet structure
The packet structure

In part 5 Lucas shows us how to finally generate weather satellite images from the GOES satellites. He notes that there is a problem with the LritRice compression method used by NOAA, because the library is currently broken on Linux. So he made a workaround which involved making a Windows application that runs through Wine for decompressing the data. Once the files are decompressed he uses the xrit2pic program which can open the generated .lrit files and convert them into images.

In the future Lucas mentions that he will write a user guide to his LRIT decoder, and make the whole decoding process more user friendly for people who do not care so much about the actual decoding process. Below are some images that Lucas was able to receive with his system.

GOES Full Disk Image of the Earth
GOES Full Disk Image of the Earth
Weatherfax (WEFAX) Image
Weatherfax (WEFAX) Image

Building a Frame Decoder for the GOES Weather Satellite

Yesterday we posted about Lucas Teskes (@lucasteske) success in building a demodulator for the GOES weather satellite. Before that he also showed us how to build an antenna system to receive GOES with an Airspy or RTL-SDR dongle.

Today Lucas continues with part three of his series on GOES decoding. This time he shows how he has built a frame decoder to process the output of the demodulator, and also gives us a link to his code. The decoder is written in C code. Lucas’ post explains how to sync the frame by detecting the preamble, perform convolution encoding to generate a parity and help correct any errors, and decode the frame data.

In part four Lucas will show us how to parse the frame data and extract the packets which will eventually form an image file of the earth.

A decode frame viewed as an image. This shows the syncword pattern and frame counter.
A decode frame viewed as an image. This shows the syncword pattern and frame counter.

Creating a GOES Weather Satellite Demodulator

Last week we posted about Lucas Teske’s (@lucasteske) experience with setting up an antenna system that can receive the geostationary GOES weather satellites. He set up a dish antenna, feed, LNA and filter and was able to successfully receive the GOES signal with an RTL-SDR and Airspy.

Now Lucas has uploaded his second post where he discusses how to demodulate the GOES signal. The GOES satellites transmit a Low-Rate Information Transmission (LRIT) signal which contains full disk images of the earth as well as other weather data from the secondary Emergency Managers Weather Information Network (EMWIN) signal.

In order to demodulate the signal Lucas wrote a BPSK demodulator in GNU Radio. His post goes into good technical detail and shows exactly how the demodulator is constructed. Basically the the BPSK signal is first decimated down to 2.5e6, normalized with an AGC, then cleaned up with a Root Raised Cosine Filter. From there the signal goes through a Costas Loop PLL to receover the carrier wave, then a Clock Recovery MM block to recover the symbol clock. The data is then output to a TCP pipe for the decoder.

In the upcoming third part of his article Lucas will show us how to actually turn the demodulated data into an image of the earth.


Setting up a GOES Weather Satellite Antenna System

Many people with an RTL-SDR have had fun receiving NOAA and METEOR low earth orbit (LEO) weather satellite images. However, a step up in difficulty is to try and receive the geostationary orbit (GEO) weather satellites like GOES. These satellites are locked to a fixed position in the sky meaning there is no need to do tracking, however since they are much further away than LEO satellites, they require a 1m+ satellite dish or high gain directional antenna to have a chance at receiving the weak signal. The GOES satellites transmit very nice high resolution full disk images of the earth, as well as lots of other weather data. For more information see this previous post where we showed devnulling’s GOES reception results, and this post where we showed @usa_satcom’s presentation on GOES and other satellites.

Over on his blog and Twitter account (@lucasteske) Lucas Teske has been documenting his work in building a GOES receive system. The SDR he uses mostly is an Airspy, but recently he showed that our RTL-SDR Blog V3 dongle is also capable at receiving the GOES signal.

The nice thing about Lucas’ post is that he documents his entire journey, including the failures. For example after discovering that he couldn’t find a 1.2m offset satellite dish which was recommended by the experts on #hearsat (starchat), he went with an alternative 1.5m prime focus dish. Then after several failed attempts at using a helix antenna feed, he discovered that his problem was related to poor illumination of the dish, which meant that in effect only a small portion of the dish was actually being utilized by the helix. He then tried a “cantenna”, with a linear feed inside and that worked much better. Lucas also discovered that he was seeing huge amounts of noise from the GSM band at 1800 MHz. Adding a filter solved this problem. For the LNA he uses an LNA4ALL.

To position the antenna Lucas used the Satellite AR app on his phone. This app overlays the position of the satellite on the phone camera making it easy to point the satellite dish correctly. He also notes that to improve performance you should experiment with the linear feeds rotation, and the distance from the dish. His post of full of tips like this which is very useful for those trying to receive GOES for the first time.

In future posts Lucas hopes to show the demodulation and decoding process.

GOES received with the dish, LNA4ALL, filter and an Airspy.
GOES signals received with the dish, LNA4ALL, filter and an Airspy.

Outernet Weather Updates Now Coming Down

A few days ago we reported that the Outernet L-band satellite service had just upgraded their software to make it available for receiving APRS and weather updates. Back then it wasn’t clear what the weather updates would entail. Today weather updates starting being transmitted. They are using NOAA data and displaying it on a live weather app (which can also be viewed online here).

The app can be used to view weather data such as wind vectors, temperatures, relative humidity, total precipitable water, total cloud water, mean sea level pressure and ocean currents. Outernet writes that the global weather data will be updated via their satellite system once per day, and that each update also provides 24h, 48h and 72h predictions. 

We also see that grib files for mariners are now coming in as well as several Wikipedia articles and regular APRS broadcasts from the ISS.

It looks like the Outernet service is becoming more and more useful over time. If you are interested in receiving Outernet with an RTL-SDR see our tutorial post here.

The 20th Cyberspectrum Software Defined Radio Meetup

Every month SDR evangelist Balint Seeber hosts the Cyberspectrum Meetup in San Francisco, where many SDR fans come together to listen to various presentations. The 20th Cyberspectrum SDR meetup has now concluded, and the recorded video is available on YouTube.


The talks this time include a very interesting talk by Joe Steinmetz (@usa_satcom) about decoding L-Band weather satellites such as NASA GOES. Previously we made a post regarding GOES where Reddit user devnulling showed his GOES reception setup. To save time, on the video Joe’s talk starts at 00:10:45.

This presentation will cover most aspects of receiving, demodulating and decoding current L-Band Weather Satellite signals (NOAA, MetOp, Meteor, FengYun, GOES). Topics will include hardware, software, de-modulation/decoding techniques, challenges, flows as well as cool sample images and data.


 The second talk is titled “Disposable, Stealthy, Cheap SIGINT” is by Chris Kuethe, @kj6gve and delves into topics relating to low cost signal analysis. Chris’ talk starts at 1:45:00. The blurb reads:

This presentation covers some observations and considerations for using inexpensive and compact ARM boards for signals analysis.  Topics may include: power budget, air interface, attributability, performance tuning, lolcats and doges.


Receiving GOES LRIT Full Disk Images of the Earth and EMWIN Weather Data with an Airspy

Over on Reddit user devnulling has made a post showing how he was able to use his Airspy SDR to download full disk satellite images of the earth from the GOES satellite. In a separate imgur post he also shows that he was able to receive EMWIN weather data images from the same GOES satellite.

The Geostationary Operational Environmental Satellite (GOES) is a weather satellite placed in geosynchronous orbit (same position in the sky all the time) which is used for weather forecasting, severe storm tracking and meteorology research. It transmits full disk images of the earth on its Low Rate Information Transmission (LRIT) signal, and weather data images and text on its Emergency Managers Weather Information Network (EMWIN) signal. EMWIN is a service for emergency managers that provides weather forecasts, warnings, graphics and other information in real time.

In his post devnulling writes about receiving GOES:

GOES LRIT runs at 1691.0 MHz , EMWIN is at 1692.7 MHz and is broadcasted from GOES-13 and GOES-15. GOES-14 is currently in a backup position to take over in either fails.

FFT/Waterfall of LRIT + EMWIN – http://i.imgur.com/rgSIORv.jpg

For the hardware side, it is recommended to use roughly a 1.2m or larger dish, depending upon how far north you are, you may need a 1.8m dish (larger the better). Repurposed FTA or C-band dishes are easy to come by and work well.

I made a 5 turn helical feed with some 12ga copper wire and a piece of copper plate, and used this calculator to design it – https://jcoppens.com/ant/helix/calc.en.php

Picture of my dish/feed setup: http://i.imgur.com/Q1ZBFrs.jpg

I have a short run of coax into the LNA/Filter box. The first LNA is a TriQuint TQP3M9037 which has a very low noise figure (0.3 dB NF and 22 dB gain at 1.7 GHz).

That is ran into a Lorch 1675 MHz filter (150 MHz pass band), then a LNA4ALL and another Lorch before going over a 30ft run of RG-6 to the SDR.

Picture of the LNA/Filter box – http://i.imgur.com/yt7SvFL.jpg

I am using @usa_satcom (twitter.com/usa_satcom, usa-satcom.com)’s LRIT Decoder and that feeds into XRIT2PIC to produce the images and other data streams. By default the decoder only works with the Airspy, but with a custom GNU Radio UDP block, it can be fed with other SDRs like the BladeRF/USRP/SDR Play. A regular R820T(2) RTL probably won’t work because of the higher frequency (rtls tend to not work above 1.5 GHz) and 8 bit ADC. I’m going to try and use the Outernet e4k to see if I can pickup the EMWIN signal in the near future.

EMWIN is broadcasted on 1692.7 MHz, along with being encoded in the LRIT stream at 1691 MHz. The 1692.7 MHz signal is stronger and narrower, so it is easier to pickup. For decoding EMWIN I used @usa_satcom’s EMWIN decoder that piped data into WxEmwin/MessageClient/Weather Message Server from http://weathermessage.com.

LRIT will contain the full disk images from GOES-15, and relayed images from GOES-13 and Himawari-8. It will also included zoomed in pictures of the USA, and northern/southern hemispheres. The images will be visible light, water vapor and infrared. The full disk images are transmitted every 3 hours, with the other images more often. EMWIN will contain other weather data, text, charts, and reports.

Full disk GOES-15 – http://i.imgur.com/tWlmNMW.jpg

Charts / images from EMWIN – http://imgur.com/a/tsn1K

Text data – http://pastebin.com/raw/ULJmSSTP

Zoomed in west coast USA LRIT – http://i.imgur.com/rzfB0SV.jpg

Northern Hemisphere LRIT – http://i.imgur.com/5tKtPmn.jpg

Himawari-8 LRIT – http://i.imgur.com/sVzikys.jpg

Himawari-8 LRIT – http://i.imgur.com/LBvpTD1.jpg

It seems as though it may be possible to receive LRIT and EMWIN signals with an RTL-SDR since the signals are at 1690 MHz, which should be covered by cooled R820T2 and E4000 dongles. The only hardware requirements would be a 1m+ dish, 1690 MHz L-band feed, and an LNA + filter.

In 2017 these satellites are due to be replaced by new ones that will use a HRIT signal, which will be about 1 MHz. New software to decode this signal will be required then, but we assume the same hardware could still be used as the frequency is not due to change significantly.

Please note that the decoding software is only available by directly contacting usa-satcom, and devnulling writes that you must have the proper equipment and be able to show that you can receive the signal first before attempting to contact him.

GOES Full Disk Image
GOES Full Disk Image
One of several received EMWIN images
One of several received EMWIN images