Receiving NOAA Satellite Images with RTL-SDR on Linux

15 June 2019

I have done quite a few round trips driving between Melbourne and Sydney since the start of this year. The enormous amount of time spent on the roads has made me looking into CB (Citizen Band), which is used by truck drivers for communication. It eventually led me to the interesting hobby that is Amateur Radio.

Part of the hobby involves using amateur radio equipments to communicate with the many satellites that pass over your head everyday. There's the International Space Station (ISS), in which the astronaunts occasionally make voice contacts to hams on Earth; and ISS SSTV, where the ARISS Russian Team sends down images to earth using SSTV every now and then. Then there is the NOAA weather satellites, which continously[1] send down weather imagery to Earth over radio.

In my setup, I have:

  • RTL-SDR V3 dongle, and the multipurpose dipole antenna that comes with the kit
  • My Linux laptop for processing, with:
  • Gqrx, to record the FM transmission
  • SoX, to resample recorded wav files to 11025Hz for WXtoImg.
  • WXtoImg, to decode recorded sound files back to an image

For detailed instructions to set this up end-to-end, you can follow:

Results

Here are a few more enhanced images from a morning pass (orbit 72489) of NOAA 18 over Sydney today:

Tips

General

  • Test your antenna. It took me a few failed attempts before I realise my antenna is actually broken. Luckily I have brought two and was able to test. If you have just bought/built your antenna, test that it works first.

Gqrx

  • Adjust the LNA (important) In my setup I need to max out LNA to 49dB in order to maximise signal strength.
  • Adjust receiving filter width. You need to adjust to filter in order to not filter out part of the transmission. Bandwidth required for NOAA APT transmission is around 40kHz, but typically I set filter width to roughly 60kHz so it covers the whole transsmision, accounting for doppler shift.

Map Overlays in WXtoImg

WXtoImg overlays map on your decoded image, by pinpointing the relevant satellite pass, according to the modified timestamp of your audio file and your recording location. For this, you need to:

  • Configure your location coordiantes correctly in WXtoImg (Options -> Ground Station Location).
  • After resampling your wav file with SoX, update the modified timestamp to that of the original file. On linux this can be done by touch -d "$(date -R -r original.wav)" resampled.wav
  • Ocasionally, map overlay would suddenly stop working. You might have to remove generated map files (default in ~/wxtoimg/map).

WXtoImg

  • Free upgrade keys. WXToImg has been be a commercial software, but recently the dev has abandoned the project and took down the original project site, before people started a restored version. At the time of writing, there are a few upgrade keys[2] posted on main page.
  1. Only NOAA 15, 18 and 19 actively send images down at the time of writing. ↩︎

  2. A copy of the keys posted

    2017 Standard Edition Upgrade Key
    Install in Help -> Enter Upgrade Key (use upper/lower case exactly as below):
    Full Name: WXtoImg Standard
    Email Address: your email address
    Upgrade Key: TYLQ-KGKT-7M73-U86U-EAQ2
    
    2017 Professional Edition Upgrade Key
    Full Name: WXtoImg Professional
    Email Address: your email address
    Upgrade Key: YKC7-6LXP-SL92-SZWT-D4HX 
    
    2018 Professional Edition Upgrade Key
    Given that the original dev seems to have wanted to make the full version available to everyone before disappearing, I'm putting a valid license key/info here - if someone wants this removed, feel free to get in touch and I'll take it down. 
    
    Full Name: Kevin Schuchmann
    Email Address: your email address 
    Upgrade Key: CGHZ-PP9G-EAJZ-AWKK-NDNX 
    
    ↩︎

?amateur radio
#noaartlsdrgqrxsoxwxtoimg