Tagged: wxtoimg

Moving on from WXtoIMG for NOAA APT Weather Satellite Decoding

Thank you to Jacopo (@lego11/IU1QPT) and Robin (@OK2AWO) for writing in and sharing with us his thoughts about how the SDR community as a whole should move on from the use of WXtoIMG, and instead switch to SatDump, which now has full feature parity with WXtoIMG and additional features too. SatDump is available on Windows, MacOS, Linux, and even on Android. An up-to-date guide for receiving APT with SatDump written by @lego11 can be found on his website here.

Historically, WXtoIMG has been the software of choice for the popular hobby of decoding NOAA APT weather satellite images with RTL-SDR and other SDRs. However, the software has unfortunately been abandoned by its authors for several years, and can now only be found on third-party websites which increases the possibility of downloading a virus. Also, a hack involving a proxy, or directly updating via a powershell script is now required to allow WXtoIMG to update its TLE/ Kepler files due to the celestrak.com to celestrak.org domain name change.

Lego11 also notes a whole host of other issues regarding vulnerabilities and bugs with WXtoIMG:

  • The software is ancient and uses obsolete libraries, such as Visual C++ 2002 with .NET. These libraries are the main concern when it comes to WXtoIMG, as I don't find it particularly likely for someone to find an entry point through the software itself. However, a much more likely scenario is a virus abusing the loaded library in memory when WXtoIMG is running and using it to gain an entry point. There are at least 20 vulnerabilities affecting MSVCR70.dll, and all are well known (such as CVE-2007-0025) which makes it even more concerning. CVE-2008-4255 in particular allows for remote code execution on the user's computer, which is very serious. There are certainly many more vulnerabilities that have been exploited regarding MSVCR70, but due to the obsolescence of this software component they are usually not tracked in a CVE.

    In either case, just as nobody would use Windows XP as a daily driver in 2024, nobody should use WXtoIMG as a matter of caution, even if the above mentioned vulnerabilities were not present.

    As for the bugs, there are many. Here's a list of the most important ones:
     
  • Cannot update TLE without external software, complicating the experience for newcomers and adding extra failure points
     
  • Map overlay doesn't work properly most of the times, especially if the user starts to receive the satellite before it is at least at 1° elevation
     
  • WXtoIMG will crash if Microsoft Defender starts a memory scan during a pass. This will lose the recording
     
  • WXtoIMG uses an outdated Win32 API to access audio. This doesn't always work on Windows 11 and Microsoft has stated that it will be removed soon.
     
  • WXtoIMG uses ALSA on Linux. The vast majority of Linux distributions don't support ALSA directly anymore, and WXtoIMG cannot work through an audio server (e.g. Pulseaudio) like all Linux applications are supposed to. Therefore, live recording doesn't work on Linux at all.
     
  • WXtoIMG doesn't run on MacOS anymore, as the system will refuse execution due to security problems and missing libraries.
     
  • WXtoIMG cannot support wav files from e.g. SDR# or SDR++ without using a third party tool such as NOAA-APT.
     
  • If a user moves or copies a recorded WAV file (see above), the map overlay will no longer work.
     
  • WXtoIMG is especially sensitive to concurrent CPU usage, which will result in "tears" on the image (as is evident on the images in the guy's tutorial). It cannot handle multitasking well on systems more modern than Windows XP due to changes in how the CPU scheduler works in more modern kernels.
     
  • WXtoIMG will lock up and then crash if the user starts it without first having updated TLEs due to missing NOAA-17. This is very serious, as it happens to newcomers all the time. It is one of the top support request emails/messages I receive. It is not possible to fix this crash easily.
     
  • WXtoIMG doesn't have updated coefficients for calibration, therefore NOAA-15 will look excessively cold compared to other satellites.
SatDump Receiving APT Weather Satellite Images
SatDump Receiving APT Weather Satellite Images (from @lego11's tutorial)

WXCorrector: Updating Keplers for Linux users of WXtoIMG

Thank you to Hamdy Abou El Anein for submitting news about the release of his software called "WXCorrector".  

WXCorrector is a dedicated solution designed specifically for Linux users who face challenges with the handling of Kepler elements in Wxtoimg. This tool addresses a critical issue where incorrect or outdated Keplerian elements can cause disruptions in tracking software, leading to inaccurate predictions and potential data loss.

It work on Linux, it needs sudo rights and Python3 installed.

https://github.com/hamdyaea/wxcorrector-for-linux

WXtoIMG is a commonly used piece of software for decoding images from NOAA APT weather satellites. However,  WXtoIMG is now considered abandonware as the original website has gone, and the main author has not updated the program in many years. The latest versions from 2017 can be downloaded from Archive.org. An alternative download site is https://www.wraase.de/wxtoimg, where they also provide a way to update Keplers for Windows machines.

Due to it's abandonment, certain features like Kepler updates from the internet appear to have broken over time with changes to the way Kepler files are served. Up to date Kepler files are required for the software to know exactly where satellites are in the sky for tracking and scheduling.

A modern alternative to WXtoIMG is SatDump, which now supports NOAA APT satellites.

WXtoIMG

YouTube Tutorial on Receiving Weather Images from NOAA Satellites

Over on YouTube the "Ham Radio Crash Course" channel has uploaded a new video showing how to receive APT images from NOAA weather satellites. There are many tutorials (such as ours here) and videos on this topic already, but more cannot hurt, and this one makes specific reference to how to download the WXtoIMG software now that the official website has been abandoned.

In the tutorial he uses an SDRplay with SDRuno as the receiver software, VBCable as the audio piping software, and WXtoIMG as the decoding software.

How To Receive Images Directly From NOAA Satellites

Creating Wide Area Composite Images with WXtoIMG + Weather Satellite Failure Updates

With so many independent people receiving weather satellite images from the NOAA satellites daily, an interesting collaborative task is to stitch these images together to create a wide area composite image. Fortunately the WXtoIMG software already has stitching as a feature.

Over on his website "usradioguy" has created a tutorial explaining how to use WXtoIMG to stitch together multiple NOAA weather satellite images that have been uploaded to individuals websites. As well as the tutorial he has created a table of people's websites that contain recent and the required "pristine" processed images that can be used for stitching.

NOAA Weather Satellite Composite by Jeff Kelly (New Jersey, US), Mike Kimzey (Philadelphia, US), David Kunz (San Francisco, US), Cornelius Danielsen (Norway), Alan Hinton (UK), Michael Sørensen (Denmark), and Hans-Juergen Luethje (Germany).
NOAA Weather Satellite Composite created with images from Jeff Kelly (New Jersey, US), Mike Kimzey (Philadelphia, US), David Kunz (San Francisco, US), Cornelius Danielsen (Norway), Alan Hinton (UK), Michael Sørensen (Denmark), and Hans-Juergen Luethje (Germany).

Weather Satellite Failure Updates

We also wanted to provide a brief update on some weather satellites that we RTL-SDR users often receive.

NOAA 15: About two weeks ago NOAA 15 failed and was producing glitched images. However after a few days it came right again, only to have failed again at the end of last month. It appears that the camera scanning motor is getting stuck due to being low on lubricant as the satellite is now well past it's intended life cycle at 11 years old. If you're interested, some info on how the camera on these satellites works can be found here. There is currently no plan for a fix, the only hope is to wait and see if the motor unsticks.

Meteor M2-1: Meteor M2-1 has also recently suffered problems yet again with it's orientation control, and we're regularly seeing off-axis or distorted images that show the curvature of the earth. Over the weekend it was turned off, and should be reset this week. This problem seems to occur and be fixed often, so hopefully it will be back online soon.

Meteor M2-2: The recently launched Meteor M2-2 is functional, but it is still in the testing phase, so is sometimes being turned off. Do not be alarmed if no signal is received sometimes.

GOES-17: GOES-17 is reported to be experiencing problems with it's infrared camera due to a blocked heatpipe, however it appears that they are able to work around this issue and obtain 97% uptime.

A Distorted Meteor M2-1 Image from R4UAB Blog.
A Distorted Meteor M2-1 Image from R4UAB Blog.

YouTube Tutorial: Software Set up for a Portable Raspberry Pi and RTL-SDR Based NOAA Weather Satellite Receiver

Last year in December we posted about Matt's element14 sponsored video which showed us how to create a portable briefcase contained NOAA satellite received based on a Raspberry Pi and RTL-SDR dongle. The build consisted of a heavy duty briefcase, modified ATX PSU and stripped down LCD monitor panel. This build resulted in a rugged and portable receiver. The full series of videos demonstrating the briefcase, ATX PSU conversion, LCD teardown, and NOAA satellite receiver demo can be found on his YouTube Playlist.

In his latest video Matt goes over the software installation procedure for creating an automated NOAA weather satellite receiver on the Raspberry Pi. He uses gpredict for predicting the satellite passes, and the Raspberry Pi version of WXtoImg for decoding the images. The rest of the video shows how to set up the software for your particular location, and how to set up decoding automation.

How To Set Up a Raspberry Pi as a NOAA Satellite Receiver with RTL-SDR

New Alternative WxToImg Website with Most Files

Last month we posted that the website for the popular NOAA APT weather satellite decoding software known as WxtoImg went down. Since then we've been in contact with the developer of the software, and he did indicate that he may restore the site at some time in the future, but is currently busy with other projects so doesn't have much time to devote to his old software at the moment.

In the meantime (or perhaps permanently) a WXtoImg fan has created a clone of the original website which he's called "WXtoImg Restored". The site contains most of the downloads as well as a professional edition update key, which was released for free by the original author before. If you don't trust the third party site, some downloads are also still available from the internet archival project's copies of the original WXtoImg website.

There are still some files missing on WXtoImg Restored, and these are outlined on the new website's homepage, so if you have them please contribute them to the site email.

Notice: WXtoImg Website Down

Just a note that the website for the popular NOAA APT weather satellite decoding software WxtoImg is currently down, and may possibly never be revived. This software is commonly used with RTL-SDR dongles to download weather satellite images from the NOAA 15, 18 and 19 polar orbiting satellites.

It seems that the author of the software has not been maintaining the site and software for a while, although there was a brief update on the site back in 2017 when the professional version keys were released for free. But the keys reportedly no longer work. WXtoImg is closed source, so the code is not available either.

Some of the downloads are still available via archive.org, however it only seems to be the Windows and some of the Linux versions that were archived. Over on two Reddit threads [1] [2], some users are also collecting the last free versions and making them available for download again. If anyone has access to the last beta versions for ARM devices please upload them somewhere too.

Also if anyone happens to have the contact details of the author, or someone who knows the author please let us know as we'd like to ask for permission to mirror the files.

An Alternative NOAA Weather Satellite Tutorial using RTL_FM and WxToImg

The RTL-SDR software defined radio is often used to receive signals from NOAA APT weather satellites. Once decoded these signals produce a freshly captured image of the earth over your current location. We have a simple tutorial on setting this up here.

However, recently Marco Johansson wrote into RTL-SDR.com to explain an alternative method to the one described in our tutorial. His method uses rtl_fm as the receiver instead of the GUI based software SDR# and uses several other pieces of software to automate the whole process. Marco believes that his method may be useful for some people and his tutorial is presented below. Also, if you are interested Marco has a WxtoImg generated webpage which shows all his recently received images here wxsat.haastaja.net.

A composite weather satellite image received from the NOAA-18 satellite by Marco
A composited weather satellite image made up of several images received from NOAA satellites by Marco Johansson

Note that the following tutorial is written by Marco Johansson.

Marco’s NOAA APT Decoding Tutorial

As a Windows user I had some serious problems using an RTL-Dongle as a receiver for WxtoImg. Signal drops, CPU load, and no receiver control. I had to use 5 different pieces of software to get automatic reception to work and every day one of the programs had some weird problems causing the whole system to stop working. I read several forum posts about similar problems. A huge bit of help came from WxtoImg’s own forum where a user told how he was able to use rtl_fm as a receiver. His system was Linux based, so I was not able to use his scripts, but it gave me enough information to find a Windows based solution.

I stumbled on to a software program that solves my problem totally. It is originally made to control Windows MCE (Media Center), but since it’s release it has been enhanced to work as a universal remote control for the Windows system.

Steps:

1) Install WxtoImg normally
2) Install VB Cable Virtual Audio Cable software to be able to pipe audio from receiver to WxtoImg (http://vb-audio.pagesperso-orange.fr/Cable)
3) Install virtual COM port BRIDGE(!) for COM-communication between programs (I tested with: http://freevirtualserialports.com)
4) Install rtl_fm for windows (http://sdr.osmocom.org/trac/attachment/wiki/rtl-sdr/RelWithDebInfo.zip)
5) Install SoX for Windows (http://sourceforge.net/projects/sox/files/sox)
6) Install MCE Control to act as a command-shell between WxtoImg and MCE Controll (http://mcec.codeplex.com)

In WxtoImg I selected “Baykal” receiver, port COM1 and 2400baud. The protocol for remote control is very easy to understand and after every command WxtoImg sends CR/LF to receiver, which is mandatory to get commands to work.

Control commands are handled with MCE controller. It listens to COM2 (bridged with COM1) and when it hears a valid command string (A Magic ‘word’) it activates a task. Tasks are .bat files, one for every satellite and a “kill” to stop receiver after the satellite pass.

When satellite is coming (one minute before it is over head) WxtoImg sends a command “MUA” that triggers “kill.bat”. Then WxtoImg sends a command “RF0xxxxxxx” where xxxxxxx is the frequency of the satellite, “1371000” for NOAA19 – this triggers “rec-noaa19.bat”. When the pass is over, Wxtoimg sends again “MUA” to kill the receiver program.

Now I can control recordings directly from WxtoImg without any other software (Orbitron, SDR#, DDE client etc).

.bat files and other configurations are provided below for others to use. I ended up to have separate .bat to start the tasks as in that way I can set the system start and stop recording in the background without a command prompt popping around my desktop every 90 mins 🙂

My system is Windows 8.1, I have not tested this in 7, 8 or 10 but I believe it should work without any modification. The HW ID of the RTL-Dongle I use for wx_rtl_fm.exe is “3” (‘-d 3’ in script). If you have only one RTL-Dongle, then this should be set to “0”. I use the bandwidth of 55 kHz that seems to be enough for good APT reception including doppler error as in this method the doppler error is not corrected in the receiver at all (no AFC).

NOTE! I have copied the original ‘rtl_fm.exe’ to ‘wx_rtl_fm.exe’ to be able to start other rtl_fm.exe instances without the risk that WxtoImg kills my other receiver accidentaly. And of course, remember that these are from my system and the correct path used in scripts will be different for you 🙂 Also, the original ‘sox.exe’ is copied to ‘play.exe’ as instructed in the SoX’s manual for Windows user. And because I’m lazy, I copied rtl_fm and SoX binaries to same directory so that I do not have to put so long path strings into my .bat scripts 🙂

Final words:

.bat’s used in this are very dirty hacks and there are lot’s of improvement available for sure – but it works! Also, the remote protocol for Baykal receiver actually sends two more commands, one is used for telling the modulation of the transmission (RM NFM) and second to do something I do not know (MUF).

The whole communication in my system goes like this:

1) “MUA” => Kill all wx_rtl_fm.exe processes currently running (if any). This happens one minute before satellite pass starts.

2) “RF0xxxxxxx” => Start wx_rtl_fm & SoX, xxxxxxx=frequency of the satellite and is used to select correct .bat for different satellites (see MCE Control XML-file for details). This happes when satellite pass starts.

3) “RM NFM” => Not used in my system. Could trigger something fun if needed :). This happens right after ‘RF0xxxxxxx’ command.

4) “MUF” => Not used in my system. Could trigger something fun if needed :). This happens right after ‘RM NFM’ command.

5) “MUA” => Kill all wx_rtl_fm.exe processes currently running. This happes right after satellite pass.

SoX is a very powerfull tool for audio manipulation. There are options that could greatly improve the audio quality of the received signal – denoice, better dynamics etc. I am not that keen to try everything SoX could do as the results are already very good in my system, but if there are someone who knows better ways to handle SoX then please do not hesitate to comment!

Used .bat Files

“Kill the receiver”:

kill.bat is triggered by MCE control and calls kill-wx_rtl_fm.bat to do the actual killing.

kill.bat

cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox
start /min kill-wx_rtl_fm.bat ^& exit

This triggers;

kill-wx_rtl_fm.bat

taskkill /IM wx_rtl_fm.exe /F

“Start recording”:

Recording is started after MCE Control gets the correct ‘word’ from WxtoImg. For every satellite there are separate ‘words’ and separate .bat files.

rec-noaa15.bat

cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox
start /min noaa15.bat ^& exit

This triggers;

noaa15.bat

cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox
play -r 55k -t raw -e s -b 16 -c 1 "|wx_rtl_fm -d 3 -M fm -f 137.62M -s 55k -l 0" -t waveaudio

rec-noaa18.bat

cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox
start /min noaa18.bat ^& exit

This triggers;

noaa18.bat

cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox
play -r 55k -t raw -e s -b 16 -c 1 "|wx_rtl_fm -d 3 -M fm -f 137.9125M -s 55k -l 0" -t waveaudio

rec-noaa19.bat

cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox
start /min noaa19.bat ^& exit

This triggers;

noaa19.bat

cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox
play -r 55k -t raw -e s -b 16 -c 1 "|wx_rtl_fm -d 3 -M fm -f 137.1M -s 55k -l 0" -t waveaudio

And finally, the MCE Control magic ‘words’. By default, MCE Control understands over 200 separate commands originally meant to remote control Windows MCE (Media Center). Fortunately, one can create their own commands and get MCE Control to do much more – control Wx-system!

MCE Control uses an XML configuration file for these extra commands. The file is located in the same directory where the main executable is located. My system uses following XML file to be able to control ‘wx_rtl_fm.exe’:

<?xml version="1.0" encoding="utf-8"?>
<MCEController xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Commands xmlns="http://www.kindel.com/products/mcecontroller">
<!-- Place command definitions here -->
<!--
==================================================================
StartProcess Commands
File: The full path to the executable you want to start.
==================================================================
-->
<StartProcess Cmd="RF01376200" File="C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox\rec-noaa15.bat"/>
<StartProcess Cmd="RF01379125" File="C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox\rec-noaa18.bat"/>
<StartProcess Cmd="RF01371000" File="C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox\rec-noaa19.bat"/>
<StartProcess Cmd="MUA" File="C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox\kill.bat"/>
</Commands>
</MCEController>