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>
Over on YouTube a talk about decoding water and electricity usage meters with an RTL-SDR has been uploaded from the 2015 Camp++ conference in Hungary. The presenter, Stef writes:
Budapest public utilities started to roll out some new metering devices for water and heating (at least in my block). The plumbers who should install these could not tell me about the privacy protections considered, as I was a bit worried about the things leaking information over radio-waves, so I built a radio and reversed the messages.
The talk shows how the presenter was able to reverse engineer the FSK wireless protocol of his heating meter with help from some patent information that he found on the web. Using a GNU Radio flow graph that he created he was able to extract information such as total energy consumption and temperature readings.
Being a security themed conference, the presenter also discusses some of the security risks associated with wireless meters such as whether or not the meter can be used to detect if someone is currently at home.
Unitrunker is software that allows you to follow trunked voice conversations, and SDR-Console V2 is a general purpose receiver, similar to other software such as SDR#. The authors write:
This applications sole purpose is to allow Universal Trunker (aka Unitrunker) to control the tuning frequency of individual VFO’s in SDR Console v2. This is achieved by translating Unitrunker Receiver Control commands into a format accepted by SDR Console. Communication occurs over virtual com / serial ports.
Uni-SDR Link has been tested on Windows 7 & Windows 8 and requires .NET Framework version 4.0 or greater.
Just download & launch. No installation required.
The Uni-SDR-Link.chm file contains help for the application should be placed in the same directory as the Uni-SDR-Link.exe.
DSD+ stands for Digital Speech Decoder Plus and is a software program that can allow you to decode digital voice signals such as P25 and MotoTRBO/DMR. DSD+ is under continual development, and in their last public update they began offering early access to the latest DSD+ features in development through their fast lane subscription. The fast lane subscription costs $10 USD for one year and $25 for unlimited early access. Information about joining the fast lane service can be found in the readme file of the latest DSD+ 1.074 public release.
Over on YouTube user John Miller has been testing the latest early access version DSD+ 1.08t. This new version adds trunking support which allows you to follow conversations. Previously other software like Unitrunker was required to follow the trunking signal. On YouTube John has uploaded a video first showing trunking in action, and a second video showing how to set up DSD+ 1.08t for trunking.
After reading an article by the Washington Post about FBI surveillance aircraft spotted in the air after the West Balimore riots, John Wiseman decided to look for more information about these aircraft. Fortunately, John had on his hands a database of about 2 months of ADS-B data that was collected by his continuously running RTL-SDR + BeagleBone Black ADS-B decoder set up.
From reports on the internet John found out that FBI aircraft squawked with 4414 or 4415 codes, and used call signs like JENNA or JENA. With this information John decided to take a look through his ADS-B logs to see if if he could find anything similar. Out of 15,000 aircraft he had tracked, he found 9 aircraft in his logs that matched the criteria, and saw that they did exhibit suspicious behaviour such as circling over LA for hours at a time. Then by looking up their FAA records of the tail numbers of the suspicious aircraft, he was able to discover that these aircraft where licensed to companies with names like NG Research, OBR Leasing, Aerographics Inc. and PXW Services which are suspected Department of Justice front companies. John also writes:
If you Google the tail numbers of aircraft registered to those companies, you start to find forum and mailing list posts (often at sites that tilt toward paranoid/conspiracy/right wing, but not always) with people discussing these specific tail numbers and linking them to the FBI. Some of the supposed evidence includes details of radio communications that people have heard, e.g. talking about “being on station” or using callsigns that start with JENNA, JENA or ROSS, which are supposedly used by the FBI. Other posts claim that DOJ/FBI surveillance aircraft often squawk 4414 or 4415 on their transponders.
The planes use “persistent wide-area surveillance” to photograph large areas for hours at a time, Stanley said. The captured images allow authorities to go back in time, if necessary, to trace pedestrians and vehicles who come to their attention.
Other devices known as “dirtboxes,” “Stingrays” or “IMSI catchers” can capture cellphone data. Stanley said it’s still unclear what technologies have been used in the surveillance flights.
Possible FBI Surviellance Aircraft Path from flightradar24.com
Over on YouTube user Adam Alicajic has uploaded a video showing how coax cable loss affects the frame rate when receiving ADS-B. To do this test Adam uses a precision attenuator in between his ADS-B antenna and RTL-SDR dongle to simulate attenuation from coax cable loss. His results show that for every 1 dB of attenuation the frame rate drops by about 10%.
Coax cable loss for common type of cable can be estimated with calculators available at http://www.net-comber.com/cable-loss.html and http://www.arrg.us/pages/Loss-Calc.htm. RG-6 cable has a low loss at 1090 MHz of about 0.23 – 0.32 dB per meter, whereas RG58 has a loss of about 0.5 – 0.6 dB per meter and RG174 (stock antenna cable on most RTL-SDR units) has a greater loss of about 1.2 dB per meter.
Coax length loss contribution to the bad ADS-B reception
Over on Reddit and GitHub user cuppa-joe has released a Python based EAS SAME Alert message decoder called dsame which is compatible with the RTL-SDR. EAS is an acronym for Emergency Alert System and is a system that is most commonly used to alert the public to local weather emergencies such as tornadoes, flash floods and severe thunderstorms.
Local EAS weather alerts are encoded with the SAME (Specific Area Message Encoding) protocol. They are transmitted on the local weather radio frequency in the USA and Canada and some weather radio’s are capable of decoding the EAS SAME data. Cuppa-joe’s dsame EAS decoder outputs full EAS weather messages such as:
The National Weather Service in Pleasant Hill, Missouri has issued a Required Weekly Test valid until 12:30 PM for the following counties in Kansas: Leavenworth, Wyandotte, Johnson, Miami, and for the following counties in Missouri: Clay, Platte, Jackson, Cass. (KEAX/NWS)
To use the software you will still need to use a EAS demodulator such as multimon-ng which is available for Windows and Linux, and you will also need Python 2.7+ installed.
An example EAS SAME alert can be heard in the player below: