Category: RTL-SDR

Reverse Engineering a Radio Weather Station with an RTL-SDR

On his blog Josef Gajdysek has posted about his experience with using an RTL-SDR to reverse engineer the radio protocol used by his home weather station. Josef’s weather station is an ISM band device and transmits at 433 MHz. First he opened up GQRX and tuned to his weather station’s transmit frequency of 433.6 MHz and recorded some audio in AM mode. Josef initially assumed that the device would use on-off-keying (OOK) to encode the data. However, when he opened the sound file in Audacity and looked at it’s waveform he found that the weather station instead used Differential Pulse Position Modulation. In this modulation scheme the distance between pulses determines whether or not the binary bit is high or low.

Differential Pulse Position Modulation in Audacity
Differential Pulse Position Modulation in Audacity

To decode this Josef then wrote a python script to measure the distance between pulses and thus convert the pulses into a binary string. Then by decoding and analyzing the captured packets he was able to isolate the checksum, temperature, channel, and status flags. Knowing all this information finally allowed him to create a real time decoder that uses rtl_fm. The python script can be downloaded from his post.

The weather station transmitter.
The weather station transmitter.

BigWhoop now a finalist in the NASA Global People’s Choice Award

Previously we posted about BigWhoop which is a project entry into the NASA International Space Apps Challenge. The BigWhoop team aim to create a networked system where RTL-SDR’s are used around the world to continually monitor the global radio spectrum.

Now BigWhoop have won the Stuttgart chapter of Global NASA Space Apps Challenge and have been chosen as one of the 15 finalists in the competition. You can help the BigWhoop team by voting daily so that they can get into the top 5 finalists. Voting lasts until May 3.

Since our last post the BigWhoop team have also written an update on their project progress. They write:

Ultimately BigWhoop is intended to run on the Constellation computation grid with 60,000 computers. However, we started a pre-alpha test. So we asked for your help during the hackathon weekend to plug in your software defined radio devices and start a sensor node for us. Our BigWhoop software was already able to send this to our server at shackspace and we received data from nice people in Virginia, US and Bremen, Germany. With this help, we were able to show you a first live demo at the end of the hackathon. Since then, we received further data and are really overwhelmed by everyone’s support and want to say a big THANK YOU!

bigwhoop global spectrum monitoring spaceapps2015 stuttgart local winner airtraffic

OpenWebRX: A Multi-User RTL-SDR Receiver with Web Interface

From Reddit we’ve learned of a new web based SDR receiver software for the RTL-SDR called OpenWebRX. This python based software allows you to run a web server that allows multiple users to connect to an RTL-SDR and listen to it through a web interface. The web interface also allows the RTL-SDR frequency and mode settings to be controlled. The software appears to still be in beta, so it may have some bugs.

The author has also written his BSc. thesis on this software and it is available for reading here. The thesis describes his software design and implementation as well as some SDR theory and may be useful to anyone wishing to implement similar SDR software.

OpenWebRX Web Interface.
OpenWebRX Web Interface.

New ADS-B Android App for North America

Previously we posted about Android programmer Tosis Nikolaos’s last app which was called “Track your flight Europe”. The app allows you to view aircraft tracked via ADS-B received by an RTL-SDR on an offline map. 

Now Nikos has written into us once again to let us know about his new app called “Track your flight North America“. It is the same as his previous app, but this one has high resolution offline maps for North America. He also writes that his Europe app has also been updated to support high resolution offline maps. The app costs 5.09 Euros + VAT. To run it you will need an Android device and an RTL-SDR with OTG cable.

tyf

Track My Flight HD Maps
Track My Flight HD Maps

Setting up the Linrad waterfall with high sensitivity for weak signals

Leif, the programmer of Linrad has uploaded a video on YouTube showing how to set up it’s waterfall for very high sensitivity reception of extremely weak signals. Linrad is an SDR GUI receiver software with a tough learning curve, but very advanced features. In the tutorial Leif uses an RTL-SDR dongle to receive a weak beacon at 144.412 MHz. He shows how to adjust the Linrad settings to produce a waterfall and FFT spectrum that it optimized for visualizing and tuning to very weak signals such as distant beacons.

Tutorial on using Modesdeco2 for ADS-B with the RTL-SDR

Over on the SonicGoose.com blog, the author has recently created a tutorial showing how to use Modesdeco which is a multi platform command line ADS-B decoding software application. ADS-B stands for Automatic Dependent Surveillance Broadcast and is a signal broadcast by aircraft that can be used to track them like a radar. 

Modesdeco is a command line ADS-B decoder quite similar in purpose to other software like dump1090, RTL1090 and ADSB#, however it has more available features built into it. The blog author writes about Modesdeco:

Want to feed BaseStation and PlanePotter at the same time? No problem. Want to add another data stream for Virtual Radar Server? No problem. Want statistics about the types of data being received? No problem. Want to run it on a variety of platforms, including Windows, Mac OS X, Linux, or the RaspberryPi? No problem.

The author’s tutorial goes over setting up the software on Windows and turning on some features like it’s web statistics interface, interactive map and how to feed data to another virtual radar application like Basestation. In the future the author plans to write a second tutorial showing how to use another feature which allows a user to combine the ADS-B feeds from various computers running Modesdeco.

Screenshot of the Modesdeco statistics web interface.
Screenshot of the Modesdeco statistics web interface.

Building a 145 MHz Low Loss Helical Bandpass Filter

Over on YouTube user Mile Kokotov has uploaded a video showing his home made low loss helical bandpass filter for 145 MHz, but also tunable from 110 MHz to 160 MHz. Bandpass filters are useful for the RTL-SDR as often strong out of band signals can cause overload, causing poor reception. A bandpass filter blocks all signals outside of its pass band. A helical bandpass filter is simply a coiled wire enclosed in a conductive container that can be tuned with a variable capacitor made out of two plates.

In his video Mile shows the inner construction of his helical filter, explains the parts and shows what calculations he used for construction.

145 MHz Low Loss Bandpass Helical Filter by Mile Kokotov

Hooking up an Si5351A Voltage Controlled Oscillator to the Local Oscillator Input on an RTL-SDR

With most low cost RTL-SDRs the provided 28.8 MHz local oscillator is of low quality and will often have a sizeable frequency offset and temperature drift. To fix this the oscillator can be replaced with a higher quality one.

Over on his blog Milan has showed how he used a Si535A voltage controlled oscillator on a breakout board from etherkit.com to replace the RTL-SDR’s low quality oscillator. The Si535A is a clock generator circuit which is capable of generating almost any frequency up to 200 MHz with 0 ppm offset from a 25 MHz TCXO oscillator. To connect the Si535A break board to the RTL-SDR, Milan soldered an edge mounted SMA connector to the RTL-SDR and connected it to the RTL-SDR’s clock input with a 10nF capacitor.

Milan also writes how the Si535A has options for different drive currents and writes that by lowering the drive current from 8 mA to 2 mA the spurious signals found at multiples of 28.8 MHz in the RTL-SDR are reduced. He also writes the the Si535A also allows you to detune the frequency a bit which can help to tune around any spurious signals. This could be useful for example when using rtl_power as you could create a spurious free plot.

Using a Si5351A to replace the local oscillator on an RTL-SDR.
Using a Si5351A to replace the local oscillator on an RTL-SDR.