Pete’s tutorial starts from a fresh install of Ubuntu and uses GQRX, GNU Radio Companion, WxtoIMG and the MeteorM2 decoding tools. He shows how to set up the audio piping within Linux, how to run the MeteorM2 LRPT Offline decoder Windows tool in Wine, a Linux Windows emulator and how to use WxtoIMG together with GQRX.
The NOAA and Meteor M2 weather satellites transmit images that they have taken of the earth. With an RTL-SDR and appropriate antenna you can receive these images. On this blog we have Windows tutorials on receiving NOAA and Meteor M2 satellites.
The Windows LRPTOfflineDecoder tool running in Linux with Wine.
Over on YouTube user pe1etr has uploaded a tutorial video showing how to set up RDS Spy and SDR# for monitoring RDS. RDS stands for Radio Data System and is a sub carrier added to some FM broadcast signals which carries information such as the station name, the song/programme playing and other data. Although SDR# decodes RDS stations already, a more powerful RDS decoder and monitoring tool is RDS Spy. To get RDS Spy to work with SDR# you need to use a special plugin called MPX Output, which allows SDR# to output audio that includes the RDS subcarrier, which can then be piped via a virtual audio cable to RDS Spy.
Pe1etr’s video shows how to install the MPX Output plugin, how to set it up with virtual audio cable and how to use it with RDS Spy.
Tutorial: Using RDS Spy with the SDR# mpx output plug-in
Over at the MIT Haystack Observatory in Westford Massachusetts, researchers O.B Alam and A.E.E Rogers have been working on creating a low cost ground based Ozone spectrometer out of RTL-SDR dongles (pdf warning). An Ozone spectrometer is used by scientists to measure the concentration, velocity and temperature of the ozone gasses in the mesosphere (50 – 85 km above the ground) and lower thermosphere (85 km+) at the Ozone line frequency of 11072.4545 MHz.
The spectrometer the researchers built consists of a satellite TV parabolic reflector dish with 46.72cm diameter, 9750 MHz LNBF, two Bias Tees, two 740 MHz high pass filters, two 8dB attenuators, a calibration pulse generator, an Intel NUC mini PC and three R820T RTL-SDR dongles.
RTL-SDR based Ozone Spectrometer block diagram from the MIT Haystack Observatory.Photo of some of the components of the ozone spectrometer.
Now it is possible to use an RTL-SDR to receive the FIS-B weather information that is transmitted on the 978 MHz UAT frequency which is available only in the USA. UAT stands for Universal Access Transmitter and is similar to ADS-B transmitted at 1090 MHz, however UAT has some extra features for pilots compared to ADS-B. In addition to location information UAT provides a Traffic Information Service (TIS-B) which allows pilots to see what ground control sees on their traditional RADAR system. It also provides a Flight Information Service-Broadcast (FIS-B) which includes weather and other information. UAT is commonly used on small aircraft due to it’s lower cost and additional features.
To receive UAT FIS-B weather information the pilot used dump978 on a Raspberry Pi 2. Dump978 is a UAT decoder, similar in operation to dump1090. He has also created a program called “Stratux“, which together with a WiFi adapter allows the decoded FIS-B data to be transmitted from the Raspberry Pi by WiFi to an iPad running ForeFlight. Running the software is as simple as piping the 978 MHz signal from rtl_fm into dump978, and then piping the decoded output of dump978 into stratux. Foreflight can then connect to the WiFi signal and work like it is connected to an expensive Stratus receiver.
In the video example below you can see some weather radar animations from FIS-B data received from the RTL-SDR shown on the ForeFlight screen at around 4:29 and onwards.
RTL-SDR, Rasperry Pi, WiFi dongle and portable battery pack for receiving UAT.FIS-B UAT Weather Report received on Foreflight from a Raspberry Pi and RTL-SDR running dump978.
Recently amateur radio hobbyist WB20SZ wrote in to us to let us know about his work with creating an easy to build receive only APRS internet gateway (IGate) with a Raspberry Pi and RTL-SDR dongle. The process involves using WB20SZ’s “Dire Wolf” software which is a free Linux based APRS encoder/decoder. He writes that it can be used to observe APRS traffic, as a digipeater, APRStt gateway or Internet Gateway (IGate). Setting up the APRS IGate is a simple matter of piping the received APRS audio from rtl_fm into the direwolf software. Instructions for installing direwolf can be found here.
APRS stands for Automatic Packet Reporting System and is a packet radio protocol used by radio amateurs to broadcast real time data such as messages, announcements, weather station reports and sometimes the location of vehicles. If an APRS station has a GPS attached to it, the broadcasts will also contain the GPS coordinates. Internet Gateways or IGates are repeaters that are used to receive messages from a local radio and pass them on via the internet to a transmit capable IGate repeater anywhere in the world. To run an IGate you should be a radio amateur with a callsign. A global aggregation of APRS broadcasts received by IGates can be seen at aprs.fi.
Although this isn’t directly SDR related, this story may still be of interest to some readers. The Outernet project have just put on sale their first receiver which is called the Lighthouse. The standard Lighthouse consists of custom hardware, but there is also a DIY option in the store which consists of a HDStar DVB-S2 receiver board and a Raspberry Pi with custom software. You also need a satellite dish antenna and LNB which can be bought from their store, or found locally.
The Outernet project aims to be a “library in the sky” satellite based service that will provide free one-way access to daily downloads of data such as books, news, videos and other information. Its goal is to provide people who may not have easy physical or uncensored access to the internet an easy way to access daily information.
The currently available Outernet services cover almost the entire globe and use Ku-band (12 – 18 GHz) and C-band (4 – 8 GHz) geostationary satellite links, which is what the Lighthouse is capable of receiving when used with an appropriate dish antenna (the Ku-band service requires a 90cm dish, while the C-band service requires a much larger dish). The Lighthouse receives data from the satellites and then allows users to view the downloaded data by connecting to it via a WiFi enabled device such as a PC or smartphone. They currently broadcast 1 GB of data per day to most of the world, and 100 GB per day to sub-saharan African countries.
In the future Outernet is hoping to release their “Lantern” receiver, of which one prototype is based on a modified RTL-SDR design. The Lantern will receive their upcoming L-band (1-2 GHz) transmissions which will only require a small patch antenna and LNA’s to receive. A standard RTL-SDR with appropriate antenna and LNA’s should also be capable of receiving this service when it is released.
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 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.
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>
A new piece of software called ham2mon by programmer Louis Brown (KD4HSO) has been released. This is a GNU Radio Linux based program that can be used with an RTL-SDR or other SDR that is compatible with GrOsmoSDR to demodulate and record narrow band FM audio from N channels (as many channels as your CPU can handle) within the current bandwidth. Although it is command line based, it comes with a simple Curses command line based GUI.
He writes that in future versions he hopes to incorporate gr-dsd to be able to demodulate and record P25 digital audio as well.
The ham2mon Curses GUI.
Louis has also uploaded a video to YouTube showing the software in action.