Category: Applications

Testing the Outernet-In-A-Box Virtual Machine Decoder for Windows & Linux

Back in September we posted a tutorial that showed how to set up an Outernet receiver with a Raspberry Pi running their rxOS software and an RTL-SDR, LNA and patch antenna. Recently, Outernet have released a new decoder for Windows and Linux which is very easy to install and run. Outernet is an L-band satellite data service which can be received almost anywhere in the world with an RTL-SDR. They aim to be a “library in the sky”, constantly broadcasting public data like news, books, images/videos and other data files.

The new decoder is a Linux machine that runs in a self contained multiplatform Virtual Box virtual machine. This means that it is a standalone package, and it comes included with the OS, decoder, and all the files needed to make it run. Using a virtual machine eliminates any installation issues due to missing dependencies or libraries. Running the VM in Windows is as easy as double clicking on a .exe file to open it up. Note that you’ll need a relatively modern machine that supports hardware virtualization support (VT-x) (Core 2 or newer). The virtual machine itself is lightweight, and uses less than 50MB of RAM, and has very low CPU usage.

At the moment, the decoder writes files downloaded from the Outernet service to a directory stored in C:\Outernet\downloads. Unlike the Raspberry Pi decoder, there is no web interface for accessing the content, though this will probably be added in future builds. The files can be directly accessed in the Windows/Linux file managers.

To set up the VM on a Windows machine:

  1. Download the Windows .exe archive and open it. When prompted, extract the files to a convenient folder on your PC.
  2. Plug in your RTL-SDR and LNA, and set up your L-band antenna.
  3. In the extracted folder run the outernet.exe file once. This will open the decoder and the first time it is run it will automatically create a folder in C:\Outernet.
  4. If you are in the Europe/Africa and use the Alphasat satellite then you can ignore this step. If you are in another region, close the opened VM, then go to C:\Outernet\Satellites.Available, and then copy the file corresponding to the satellite used in your part of the world over to C:\Outernet\Satellites.Selected. Now reopen the outernet.exe VM.
  5. The decoder should now be showing a good SNR value >2 in the top right information, and the State: should show FRAME LK. The bottom right window should also scroll “Packed written to socket.”
  6. After a few minutes check the C:\Outernet\cache folder for pieces of files. Later check the C:\Outernet\downloads folder for completed files.

Further instructions can be found on their Windows Readme file. Note that as there is no web browser for the files, some will be downloaded as GZipped files, and will need to be unzipped to be viewed. For more information on the Outernet service as well as the hardware requirements see our previous tutorial.

We tested out the VM on a Windows laptop for a few hours and was able to receive several GZipped Wikipedia webpages as well as a photo, as shown in the screenshot below.

Files downloaded from Outernet (left). Outernet decoder running in VM (right).
Files downloaded from Outernet (left). Outernet decoder running in VM (right).

Comparing the RTL-SDR, FunCube PRO Plus and SDRplay on Moon Bounce/EME Reception

Moon Bounce or “Earth Moon Earth” (EME) is an amateur radio activity where people attempt to transmit a signal towards to the moon, and listen to the reflected signal. In some cases a separate transmitter is not needed, as an already powerful constant transmitter like the GRAVES radar in France can be used.

Over on his YouTube channel user cqpy2rn has uploaded a video showing his moon bounce reception of the GRAVES radar using an eleven element yagi antenna. He compares the reception with an RTL-SDR, FunCube PRO Plus and SDRplay. He writes:

+++ Nooelec model NESDR Smart (RTL-SDR) +++
GOODs: Price $20, frequency stability 0.5ppm tcxo, aluminum case, firm sma antenna connector, better dynamic range than regular-cheaper RTL dongles. Easy gain adjustment.
BADs: No pass filters, freq coverage from 24MHz to 1.7GHz, poor dynamic range (moderate de-sense with near strong signals)

+++ FunCube PRO PLUS – FCDPP +++
GOODs: freq coverage from 150KHz to 2GHz, pass saw filters, frequency stable 0.5ppm tcxo, easy gain adjustment, acceptable dynamic range.
BADs: Plastic case, fragile sma connector, just 192KHz wide spectrum view, price $160.

+++ SDRPlay +++
GOODs: Frequecy coverage from 10KHz to 2GHz, firm SMA connector, pass saw filters, up to 8MHz wide spectrum view, acceptable dynamic range.
BADs: Plastic case, legacy printer USB connector, frequency drift during warm up, difficult gain adjustment

CONCLUSION: In essence all these have the same “DNA”, they were made from digital TV tuner chips, comparisons produce very similar RX practical results, the RTL suffers due the lack of internal filtering which can be a little remediated adjusting the gain carefully through your SDR software or adding external filters. FCDPP and SDRPlay are vey similar, although the freq drift for SDRPlay is a bit annoying to me.

https://www.youtube.com/watch?v=FkPjGk9GXtA&feature=youtu.be

Working towards an FPGA DSP Implementation with LabVIEW for the RTL-SDR

Back in August we posted how Albert Lederer had created a RTL-SDR interface for the LabVIEW visual programming language which could be run on a host PC. LabVIEW is a visual programming language which is used commonly by engineers and scientists to quickly build applications for things like product testing, system monitoring, instrument control etc.

In his latest post/tutorial uploaded a few days ago he shows how to run the RTL-SDR RF acquisition on a myRIO, which is a development processing board that can run Linux and has an on board FPGA. LabVIEW can then be used to control the RTL-SDR from the host PC.

The whole point of running the RTL-SDR on the myRIO is to eventually make use of the on board FPGA. In future posts he hopes to show us how to use the on board FPGA to offload digital signal processing (DSP) tasks,  which would significantly speed up applications.

Data flow for offloading RTL-SDR DSP tasks onto the FPGA
Data flow for offloading RTL-SDR DSP tasks onto the FPGA

The Distributed Ground Station Network

Over on hackaday.io there is a project blog for the “Distributed Ground Station Network”. This is essentially an idea to build a large network of distributed RF receivers which automatically receive signals from sources like cube satellites and other beacons. The project mainly uses RTL-SDR dongles at the moment for their RF receivers. In some ways it appears to be similar to the SatNOGs project which won the hackaday prize two years ago but the DGSN appears to be more focused on “reverse GPS” which allows the detection and tracking of the location of small satellite signals through distributed receivers.

They write:

The Distributed Ground Station Network (DGSN) is a novel network concept of small ground-stations and connected via the internet for performing automatic scans for cubesats and other beacon signals. By correlating the received signal with the precise, GNSS synchronized reception times of at least 5 ground stations, it enables the positioning of the signal’s origin. Thus a global tracking of small satellites becomes possible in this “reverse GPS” mode. It allows mission operators to position and track their small satellites faster after piggy-back commissioning, when the final orbit is yet undefined and could differ from the specified orbit. Furthermore it allows permanent communication in “data-dump” mode. In this mode, DGSN ground-stations relay the received data to the servers and thus to the operator.
Let’s track everything, together!

Recently they have made several interesting update posts. In one post they show a video demonstrating automatic detection of a cubesat signal.

https://www.youtube.com/watch?v=ra7cs-cxfZE

In another post they show a timelapse video showing one day of radio contacts via the International Space Station.

https://www.youtube.com/watch?v=OgdeNoP_Jl0

Finally in their latest post they show how to use the GRAVES radar in France to detect the ISS and meteorites showers.

graves_dgn

Natpos: New Linux SDR Software for the RTL-SDR

Natpos is a new Linux based SDR program similar in operation and features to other programs like GQRX, HDSDR and SDR#. At the moment Natpos only works with RTL-SDR receivers as it runs via the rtl_tcp interface. The software demodulates the standard AM/FM/SSB signals and has a frequency scanner that automatically tunes to the strongest signal. There is a discussion over on Reddit regarding the software, and there the author writes about his favorite features as follows:

The thing I like most is that I can replay past transmissions by clicking in the waterfall history. Using other SDR software, when a new transmission pops up, I feel like I’m in a race to tune to it before it ends so that I can at least hear some of it, but in my software, I don’t even have to pay attention to what’s happening now, and so I seldom do. Usually I don’t notice transmissions on new frequencies until they’ve ended, but I still get to listen to them.

I also put some effort into trying to make sure AM and FM transmissions were equal in volume, as well as at the correct volume according to how well they were modulated, in that I aimed for 100% modulation leading to audio output that’s 6 dB below the ceiling. It seemed as if it was quite random in other software, as switching from AM to FM might cause a huge jump or drop in audio volume. I don’t like to play with my volume controls, so I did my best to make it so that I don’t have to.
I’m also not at all fond of the “click the numbers” method of changing the center frequency which seems to be so common. So in mine, I just type in the MHz on the number keypad and press enter.

I’m also much more fond of my waterfall coloring scheme than any other I’ve seen. It seems much smoother and more informative, at least to me anyway. I suppose that’s rather subjective.

…but it’s rather hard to compare it to other software given that I only got to use other software for two or three days. I rather soon knew I wanted to write my own, and I wanted to use the V4L2 API (that dvb_usb_rtl28xxu module you have to blacklist to use rtl-sdr is an SDR driver, not a video driver), but I had to upgrade to Linux Mint 18 to get access to it since it’s a new API, and after doing so, I haven’t been able to get any of the existing SDR software to both compile and work after it’s compiled. So I just focused on writing my own, since I was wanting to do so anyway. (No support for that V4L2 API though, as it turns out its buggy and offers no way to control the dongle’s gain, so it’s basically unusable.)

Natpos SDR Screenshot
Natpos SDR Screenshot

RFTap: A Bridge Between GNURadio and Wireshark

Recently a new Linux based tool called RFTap has been released. RFTap acts as a bridge between GNURadio flow graphs and Wireshark. GNU Radio is a visual based programming environment for digital signal processing applications, such as RF signal decoders. GNURadio supports many different SDR’s including the RTL-SDR. Wireshark is a network packet analyzer/dissector that aides with troubleshooting and analysis of network protocols. RFTap also supports other DSP languages like Pothos, liquidsdr, LuaRadio as well as other packet analyzers like TShark, tcpdump, Scapy.

The author has already released three RFTap tutorials/demos. The first shows how to decode Radio Data System (RDS) and use RFTap and Wireshark to dissect each packet. The second shows how to use RFTap and Wireshark to detect MAC spoofing on WiFi networks. For that tutorial you will need a more advanced SDR that can tune to the 5 GHz WiFi frequencies and receive the full WiFi bandwidth of 20 MHz. The third tutorial shows how to use RFTap to analyze Zigbee packets.

RFTap acts as the glue between GNURadio and Wireshark
RFTap acts as the glue between GNURadio and Wireshark

RTL-SDR Tutorial: Receiving and Decoding Data from the Outernet

Outernet is a relatively new satellite service which aims to be a “library in the sky”. Essentially their service is going to be constantly transmitting files and data like news and weather updates from geostationary satellites that cover almost the entire world. Geostationary means that the satellites are in a fixed position in the sky, and do not move over time. By simply pointing a small patch antenna at the sky (with LNA and RTL-SDR receiver), it is possible to download and decode this data from almost anywhere in the world. Their aim is to provide up to date information to users in locations with little to no internet (rural, third world and sea), or in countries with censored internet. It may also be of interest to disaster preppers who want an “off-grid” source of news and weather updates. It can kind of be thought as a kind of one-way download-only internet service.

Currently the L-band service is being tested, and while they are not yet sending actual Outernet files, they are already sending several daily test files like small videos, images and text documents as well as GRIB files for mariners. At a maximum you can expect to receive up to about 20 MB of data a day from their satellite. Previously they had C-band services but these required large satellite dishes. The C-band service is due to be discontinued at some point in the future.

In this guide we’ll show you how to set up an Outernet L-band receiver with an RTL-SDR dongle. If you enjoy this guide then you might also enjoy our Inmarsat STD-C EGC Decoding Tutorial which has similar hardware requirements.

Outernet Setup: Patch Antenna -> LNA -> RTL-SDR with Bias Tee -> Raspberry Pi

Downloaded Files

Book Download

Video Download

Image Download

Continue reading

Testing the Outernet-In-A-Box Virtual Machine Decoder for Windows & Linux

Back in September we posted a tutorial that showed how to set up an Outernet receiver with a Raspberry Pi running their rxOS software and an RTL-SDR, LNA and patch antenna. Recently, Outernet have released a new decoder for Windows and Linux which is very easy to install and run. Outernet is an L-band satellite data service which can be received almost anywhere in the world with an RTL-SDR. They aim to be a “library in the sky”, constantly broadcasting public data like news, books, images/videos and other data files.

The new decoder is a Linux machine that runs in a self contained multiplatform Virtual Box virtual machine. This means that it is a standalone package, and it comes included with the OS, decoder, and all the files needed to make it run. Using a virtual machine eliminates any installation issues due to missing dependencies or libraries. Running the VM in Windows is as easy as double clicking on a .exe file to open it up. Note that you’ll need a relatively modern machine that supports hardware virtualization support (VT-x) (Core 2 or newer). The virtual machine itself is lightweight, and uses less than 50MB of RAM, and has very low CPU usage.

At the moment, the decoder writes files downloaded from the Outernet service to a directory stored in C:\Outernet\downloads. Unlike the Raspberry Pi decoder, there is no web interface for accessing the content, though this will probably be added in future builds. The files can be directly accessed in the Windows/Linux file managers.

To set up the VM on a Windows machine:

  1. Download the Windows .exe archive and open it. When prompted, extract the files to a convenient folder on your PC.
  2. Plug in your RTL-SDR and LNA, and set up your L-band antenna.
  3. In the extracted folder run the outernet.exe file once. This will open the decoder and the first time it is run it will automatically create a folder in C:\Outernet.
  4. If you are in the Europe/Africa and use the Alphasat satellite then you can ignore this step. If you are in another region, close the opened VM, then go to C:\Outernet\Satellites.Available, and then copy the file corresponding to the satellite used in your part of the world over to C:\Outernet\Satellites.Selected. Now reopen the outernet.exe VM.
  5. The decoder should now be showing a good SNR value >2 in the top right information, and the State: should show FRAME LK. The bottom right window should also scroll “Packed written to socket.”
  6. After a few minutes check the C:\Outernet\cache folder for pieces of files. Later check the C:\Outernet\downloads folder for completed files.

Further instructions can be found on their Windows Readme file. Note that as there is no web browser for the files, some will be downloaded as GZipped files, and will need to be unzipped to be viewed. For more information on the Outernet service as well as the hardware requirements see our previous tutorial.

We tested out the VM on a Windows laptop for a few hours and was able to receive several GZipped Wikipedia webpages as well as a photo, as shown in the screenshot below.

Files downloaded from Outernet (left). Outernet decoder running in VM (right).
Files downloaded from Outernet (left). Outernet decoder running in VM (right).

Comparing the RTL-SDR, FunCube PRO Plus and SDRplay on Moon Bounce/EME Reception

Moon Bounce or “Earth Moon Earth” (EME) is an amateur radio activity where people attempt to transmit a signal towards to the moon, and listen to the reflected signal. In some cases a separate transmitter is not needed, as an already powerful constant transmitter like the GRAVES radar in France can be used.

Over on his YouTube channel user cqpy2rn has uploaded a video showing his moon bounce reception of the GRAVES radar using an eleven element yagi antenna. He compares the reception with an RTL-SDR, FunCube PRO Plus and SDRplay. He writes:

+++ Nooelec model NESDR Smart (RTL-SDR) +++
GOODs: Price $20, frequency stability 0.5ppm tcxo, aluminum case, firm sma antenna connector, better dynamic range than regular-cheaper RTL dongles. Easy gain adjustment.
BADs: No pass filters, freq coverage from 24MHz to 1.7GHz, poor dynamic range (moderate de-sense with near strong signals)

+++ FunCube PRO PLUS – FCDPP +++
GOODs: freq coverage from 150KHz to 2GHz, pass saw filters, frequency stable 0.5ppm tcxo, easy gain adjustment, acceptable dynamic range.
BADs: Plastic case, fragile sma connector, just 192KHz wide spectrum view, price $160.

+++ SDRPlay +++
GOODs: Frequecy coverage from 10KHz to 2GHz, firm SMA connector, pass saw filters, up to 8MHz wide spectrum view, acceptable dynamic range.
BADs: Plastic case, legacy printer USB connector, frequency drift during warm up, difficult gain adjustment

CONCLUSION: In essence all these have the same “DNA”, they were made from digital TV tuner chips, comparisons produce very similar RX practical results, the RTL suffers due the lack of internal filtering which can be a little remediated adjusting the gain carefully through your SDR software or adding external filters. FCDPP and SDRPlay are vey similar, although the freq drift for SDRPlay is a bit annoying to me.

https://www.youtube.com/watch?v=FkPjGk9GXtA&feature=youtu.be

Working towards an FPGA DSP Implementation with LabVIEW for the RTL-SDR

Back in August we posted how Albert Lederer had created a RTL-SDR interface for the LabVIEW visual programming language which could be run on a host PC. LabVIEW is a visual programming language which is used commonly by engineers and scientists to quickly build applications for things like product testing, system monitoring, instrument control etc.

In his latest post/tutorial uploaded a few days ago he shows how to run the RTL-SDR RF acquisition on a myRIO, which is a development processing board that can run Linux and has an on board FPGA. LabVIEW can then be used to control the RTL-SDR from the host PC.

The whole point of running the RTL-SDR on the myRIO is to eventually make use of the on board FPGA. In future posts he hopes to show us how to use the on board FPGA to offload digital signal processing (DSP) tasks,  which would significantly speed up applications.

Data flow for offloading RTL-SDR DSP tasks onto the FPGA
Data flow for offloading RTL-SDR DSP tasks onto the FPGA

The Distributed Ground Station Network

Over on hackaday.io there is a project blog for the “Distributed Ground Station Network”. This is essentially an idea to build a large network of distributed RF receivers which automatically receive signals from sources like cube satellites and other beacons. The project mainly uses RTL-SDR dongles at the moment for their RF receivers. In some ways it appears to be similar to the SatNOGs project which won the hackaday prize two years ago but the DGSN appears to be more focused on “reverse GPS” which allows the detection and tracking of the location of small satellite signals through distributed receivers.

They write:

The Distributed Ground Station Network (DGSN) is a novel network concept of small ground-stations and connected via the internet for performing automatic scans for cubesats and other beacon signals. By correlating the received signal with the precise, GNSS synchronized reception times of at least 5 ground stations, it enables the positioning of the signal’s origin. Thus a global tracking of small satellites becomes possible in this “reverse GPS” mode. It allows mission operators to position and track their small satellites faster after piggy-back commissioning, when the final orbit is yet undefined and could differ from the specified orbit. Furthermore it allows permanent communication in “data-dump” mode. In this mode, DGSN ground-stations relay the received data to the servers and thus to the operator.
Let’s track everything, together!

Recently they have made several interesting update posts. In one post they show a video demonstrating automatic detection of a cubesat signal.

https://www.youtube.com/watch?v=ra7cs-cxfZE

In another post they show a timelapse video showing one day of radio contacts via the International Space Station.

https://www.youtube.com/watch?v=OgdeNoP_Jl0

Finally in their latest post they show how to use the GRAVES radar in France to detect the ISS and meteorites showers.

graves_dgn

Natpos: New Linux SDR Software for the RTL-SDR

Natpos is a new Linux based SDR program similar in operation and features to other programs like GQRX, HDSDR and SDR#. At the moment Natpos only works with RTL-SDR receivers as it runs via the rtl_tcp interface. The software demodulates the standard AM/FM/SSB signals and has a frequency scanner that automatically tunes to the strongest signal. There is a discussion over on Reddit regarding the software, and there the author writes about his favorite features as follows:

The thing I like most is that I can replay past transmissions by clicking in the waterfall history. Using other SDR software, when a new transmission pops up, I feel like I’m in a race to tune to it before it ends so that I can at least hear some of it, but in my software, I don’t even have to pay attention to what’s happening now, and so I seldom do. Usually I don’t notice transmissions on new frequencies until they’ve ended, but I still get to listen to them.

I also put some effort into trying to make sure AM and FM transmissions were equal in volume, as well as at the correct volume according to how well they were modulated, in that I aimed for 100% modulation leading to audio output that’s 6 dB below the ceiling. It seemed as if it was quite random in other software, as switching from AM to FM might cause a huge jump or drop in audio volume. I don’t like to play with my volume controls, so I did my best to make it so that I don’t have to.
I’m also not at all fond of the “click the numbers” method of changing the center frequency which seems to be so common. So in mine, I just type in the MHz on the number keypad and press enter.

I’m also much more fond of my waterfall coloring scheme than any other I’ve seen. It seems much smoother and more informative, at least to me anyway. I suppose that’s rather subjective.

…but it’s rather hard to compare it to other software given that I only got to use other software for two or three days. I rather soon knew I wanted to write my own, and I wanted to use the V4L2 API (that dvb_usb_rtl28xxu module you have to blacklist to use rtl-sdr is an SDR driver, not a video driver), but I had to upgrade to Linux Mint 18 to get access to it since it’s a new API, and after doing so, I haven’t been able to get any of the existing SDR software to both compile and work after it’s compiled. So I just focused on writing my own, since I was wanting to do so anyway. (No support for that V4L2 API though, as it turns out its buggy and offers no way to control the dongle’s gain, so it’s basically unusable.)

Natpos SDR Screenshot
Natpos SDR Screenshot

RFTap: A Bridge Between GNURadio and Wireshark

Recently a new Linux based tool called RFTap has been released. RFTap acts as a bridge between GNURadio flow graphs and Wireshark. GNU Radio is a visual based programming environment for digital signal processing applications, such as RF signal decoders. GNURadio supports many different SDR’s including the RTL-SDR. Wireshark is a network packet analyzer/dissector that aides with troubleshooting and analysis of network protocols. RFTap also supports other DSP languages like Pothos, liquidsdr, LuaRadio as well as other packet analyzers like TShark, tcpdump, Scapy.

The author has already released three RFTap tutorials/demos. The first shows how to decode Radio Data System (RDS) and use RFTap and Wireshark to dissect each packet. The second shows how to use RFTap and Wireshark to detect MAC spoofing on WiFi networks. For that tutorial you will need a more advanced SDR that can tune to the 5 GHz WiFi frequencies and receive the full WiFi bandwidth of 20 MHz. The third tutorial shows how to use RFTap to analyze Zigbee packets.

RFTap acts as the glue between GNURadio and Wireshark
RFTap acts as the glue between GNURadio and Wireshark

RTL-SDR Tutorial: Receiving and Decoding Data from the Outernet

Outernet is a relatively new satellite service which aims to be a “library in the sky”. Essentially their service is going to be constantly transmitting files and data like news and weather updates from geostationary satellites that cover almost the entire world. Geostationary means that the satellites are in a fixed position in the sky, and do not move over time. By simply pointing a small patch antenna at the sky (with LNA and RTL-SDR receiver), it is possible to download and decode this data from almost anywhere in the world. Their aim is to provide up to date information to users in locations with little to no internet (rural, third world and sea), or in countries with censored internet. It may also be of interest to disaster preppers who want an “off-grid” source of news and weather updates. It can kind of be thought as a kind of one-way download-only internet service.

Currently the L-band service is being tested, and while they are not yet sending actual Outernet files, they are already sending several daily test files like small videos, images and text documents as well as GRIB files for mariners. At a maximum you can expect to receive up to about 20 MB of data a day from their satellite. Previously they had C-band services but these required large satellite dishes. The C-band service is due to be discontinued at some point in the future.

In this guide we’ll show you how to set up an Outernet L-band receiver with an RTL-SDR dongle. If you enjoy this guide then you might also enjoy our Inmarsat STD-C EGC Decoding Tutorial which has similar hardware requirements.

Outernet Setup: Patch Antenna -> LNA -> RTL-SDR with Bias Tee -> Raspberry Pi

Downloaded Files

Book Download

Video Download

Image Download

Continue reading

Talk: Decoding Data from Iridium Satellites

At this year’s hacker themed Eleventh Hope conference, Stefan “Sec” Zehl and Schneider gave a talk which discusses their latest work on decoding data from Iridium satellites using SDR’s. Iridium is a truly global satellite service which provides various services such as global paging, satellite phones, tracking and fleet management services, as well as services for emergency, aircraft, maritime and covert operations too. There are currently 72 operational satellites operating.

In their talk they discuss how Iridium security is moderate to relaxed, pointing out that Iridium claims that the majority of ‘security’ comes from the complexity of the system, rather than actual security implementations. They then go on to discuss how the Iridium system works, how to receive it with an RTL-SDR or HackRF/Rad1o, how the gr-iridium decoder implementation works, and how to use it to actually decode the data. Later in the presentation they show some interesting examples such as an intercepted Iridium satellite phone call to a C-37 aircraft.

https://www.youtube.com/watch?v=cvKaC4pNvck