Acarsdec 2.0: A Multi-Channel Realtime Linux ACARS Decoder which supports RTL-SDR

Acarsdec is a recently released open source, multi-channel realtime ACARS decoder for Linux. It supports direct input from an RTL-SDR dongle, and with the RTL-SDR can listen to four ACARS channels simultaneously. It’s official feature list includes

– up to four channels decoded simultaneously
– multithreaded
– error detection AND correction
– input from sound file , also sound card or software defined radio (SDR) via a rtl dongle

Acarsdec Terminal Output
Acarsdec Terminal Output

Fork of SDR# with Added Features

Recently an RTL-SDR.com reader wrote in to let us know about a fork of SDR# written by “Gubo682” which has some added features. Note you will need to be a member of the SDR# Yahoo group to access the download page linked above. The added features and changes to SDR# are

Frequency Manager
– Names show up in spectrum
– Scan button for simple scanning through current group
– Selected group remembered after restart
– Adding new entry: group defaults to current group
– Simple DMR support (see Tips)
– SHIFT click (or SHIFT ENTER) will select according relais input frequency for 2m/70cm

Spectrum Display
– When dragging spectrum left/right, holding SHIFT will keep frequency constant

Waterfall Display
– With the new HF [Radio Freqeuency]/AF [Audio Frequency] button waterfall can be switched to AF. Cursor will be annotated with AF frequency.
– Splitter position (hopefully) restored properly after restart

Recording
– AF recording pauses if squelch closed

DX Cluster Plugin
– Displays DX cluster stations in the spectrum
– Displays currently on-air SW radio stations in spectrum (data from http://www.eibispace.de/)

In addition there is also now a notch filter with adjustable bandwidth which can be applied by right clicking in the new AF (Audio Frequency) mode of the waterfall.

To use with the RTL-SDR, you will need to download the SDRSharp_gubo68_4d.zip file, run install.bat and then manually un-comment the line in the SDRSharp.exe.config text file and then copy over rtlsdr.dll and libusb-1.0.dll from an SDR# installation that was installed using the Quickstart guide method.

You can follow the development of this modified SDR# on the SDRSharp Yahoo group, and specifically in this Yahoo Groups thread.

Modified "Gubo682" SDR# showing DX Cluster Frequency Names, Audio Spectrum and Notch Filter.
Modified “Gubo682” SDR# showing DX Cluster Frequency Names, Audio Spectrum and Notch Filter.

Analyzing TD-LTE with the RTL-SDR

TD-LTE is a mobile phone standard acronym for Time Division Long Term Evolution. It is one of two variants of LTE technology, with the other being FD-LTE (Frequency Division LTE).

Over in China where TD-LTE is commonly used, Jiao Xianjun discovered that the current LTE-Cell-Scanner Linux program did not support TD-LTE, so he made a fork which does support TD-LTE. LTE-Cell-Scanner is a program which can decode LTE cell tower data which contains information like the cell ID, transmit frequency and transmit strength. With his modified LTE-Cell-Scanner, some MATLAB scripts he wrote and an RTL-SDR, Jiao was able to decode the cell information from 10 TD-LTE signals and 2 FD-LTE signals. He has uploaded a video showing this too.

TD-LTE, LTE FDD, scanning/demodulation results in Beijing, China

Receiving D-STAR Voice with DSD 1.7 on Windows

Recently we posted about PU2VLW’s project where he was able to decode and listen to D-STAR voice using an RTL-SDR and SDR# running on Windows connected via physical audio cable to a second Linux machine running DSD 1.7.

Now a RTL-SDR.com reader by the name of “Skywatcher” has written in to tell us how he was able to compile DSD 1.7 on a Windows PC using Cygwin. This allows him to decode D-STAR audio on a single Windows PC. Skywatcher kindly sent us the steps he used to compile DSD 1.7 on Windows.

1. Download the zip archive for dsd-1.7.0 from here: https://github.com/szechyjs/dsd and then unzip the archive, so that you get the folder dsd-master, which includes all the source files.

2. Download the zip archive for mbelib-1.2.5 from here: https://github.com/szechyjs/mbelib and then unzip the archive, so that you get the folder mbelib-master, which includes all the source files.

3. Download and install the Cygwin environment. It is important to use the 32 bit version. It will not work with the 64 bit version. In the installation process, you also have to make sure that you choose gcc (the compiler) for installation.

4. Within the Cygwin command window, use gcc, to compile every .c file within the folders mbelib-master and dsd-master (subfolders can be ignored), so that you will get an .o file (object file) for each source file.

5. Copy all the resulting .o files from mbelib-master to dsd-master and use gcc again to link all the object files, so that you will get the final executable dsd.exe. This final step also has to include the sndfile library from Cygwin being mentioned in the call of gcc, otherwise it will not work.

6. In order to start dsd.exe, it is necessary to copy cygwin1.dll to the same folder, where your built dsd.exe is. It is very important that the version number of the dll is being lower than 1.7.26, otherwise dsd.exe will crash. If this is not the case for your dll, you have to find an alternative version from the internet. Additionally, it may be necessary to copy more dlls, needed by the sndfile library, next to your dsd.exe. This may depend on your environment variables of your system.

7. For decoding D-Star, you should call DSD like following: dsd -i /dev/dsp -o /dev/dsp -fd

8. For best results, make sure that all your SDR# and VAC sample rates are set to 48kHz and that you have disabled “Filter Audio” in SDR#. Also, the audio volume of SDR# should not be set to high.

With DSD 1.7 running on Windows, Skywatcher was able to get these results shown in the video links below.

https://www.youtube.com/watch?v=5qpwnTDvI-Q

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

EDIT: Reader Kotelnikov007 from the comments section has been kind enough to upload a pre-compiled windows version. https://mega.co.nz/#!Ft9WFbgQ!sOhsUeMC83Xi5Wxjr4eEPoc0WuM0cJOM2bq9DnE4dWE

EDIT 2 (30/12/2016): The above link seems dead. Reader Adrian wrote in to submit his compilation which is available at https://mega.nz/#!jJZRALrb!NylT4jmZIBwCyZqU05EaX8wqObxuaqeTzCD8hHP5gO8.

Adrian also writes

– The list of the required DLLs to make it work are these:
https://twitter.com/CodingFree/status/813788401610739712
– It is needed to load sndfile library (already prebuilt in Cygwin).
– It needs MBE, but also the ITPP libraries.

Using the RTL-SDR as a Panadapter

PW2VLW’s shows on his blog how to adapt an Icom IC-706 hardware radio to be able to use an RTL-SDR as a cheap panadapter (Note site is in Portuguese, so use Google Translate). A panadapter is device that allows you to visually see the RF spectrum and waterfall being received by the ham radio.

He shows instructions on how to perform the required modification to get the IF output of the ICOM, and also shows how to interface the PC with the ICOM so that it may be controlled directly via HDSDR.

Panadapter
Panadapter

Radio Signal Identification “Encyclopedia” Paperback

Yesterday a reader wrote in to let us know about two comprehensive paperback books about radio signal identification that he’d found online. This reader thought the books would be relevant to RTL-SDR users wanting to know more about the vast number of signals available to them. The books are titled

Technical Handbook for Radio Monitoring VHF/UHF (PDF Excerpt) &
Technical Handbook for Radio Monitoring HF (PDF Excerpt)

Where each book is split into describing signals from VHF/UHF and HF respectively. More information on these books, and versions written in German can be found on the official book website. The author also has a book titled Signal Analysis for Radio Monitoring, which discusses techniques for analyzing unknown waveforms.

From the excerpts the book looks incredibly useful, so if our Radio Signal Identification Guide is not enough for you, we suggest trying a copy of these books.

Spotlight on Linrad

Recently a reader wrote in to correct some mistakes regarding the Linrad software on our big list of RTL-SDR supported software post. Along with those corrections this reader also wanted us to know how much of a superior receiver he believes Linrad and the special Linrad RTL2832U E4000 drivers are.

If you are unaware, Linrad is an RTL-SDR supported SDR receiver program (similar to SDR#/HDSDR/SDR-RADIO) with very advanced features, but also a relatively steep learning curve.

The reader who wrote in wants to remain anonymous, but we will say that as far as we can tell he is not affiliated with the development of Linrad, and is simply a Linrad user and fan.

The first point the reader would like to make is about the Linrad RTL-SDR drivers special linearity mode.

[The Linrad drivers] main advantage for RTL E4000 based dongles isn’t the weak signal mode. It’s actually the linearity mode that provides significant dynamic range improvements over the existing osmocom drivers (http://www.sm5bsz.com/linuxdsp/hware/rtlsdr/rtlsdr.htm).

The author of Linrad, Leif, is very knowledgeable in both RF and SDR technology. It is extremely rare to be skilled in both. Leif submitted his modified RTL drivers to the osmocom team, but as best as I could tell, it became quite apparent the osmocom team does not have a firm grasp of the concept of dynamic range, and receiver performance metrics. Leif’s code was rejected for cosmetic reasons. It is a large shame, but highlights the extremely poor understanding the SDR community has of basic receiver performance metrics.

Your readers should take a look at this video.

http://www.youtube.com/watch?v=cVU5X1d2XYU

Shortly after the 4 minute mark, a strong signal is introduced into all four dongles. This signal is swept across so at times it is not present in the frequency span the dongles are listening to. Two of the dongles are E4000 based RTL SDRs, and naturally the Linrad one is using properly optimized settings. Notice how the properly optimized Linrad drivers show a nice calm spectrum, free form spurs, harmonics, images and other offending signals when the signal generator is introducing a signal several MHz away from the listening frequency span.

Notice how the osmocom dongles are essentially trashed, where nothing but the strongest of strong of signals could be heard, and even then it’s likely to have distortion. This is what happens in the real world. For most people, when they connect their RTL to an outdoor antenna, their receive performance is not limited by the noise figure of the dongle, but rather by its dynamic range. Leif is the _only_ SDR program author that fully understands this.

Note that if you just want to try the modified Linrad E4000 drivers on SDR#, there is this modification that can help.

As well as the driver issue the reader also highlights some advanced features of the Linrad SDR program itself which are not present in most other similar software defined radio programs.

1) Proper I/Q calibration. Other programs at most only allow you to calibrate a SDR for a single part of the spectrum. This is not proper, because at a few kHz away, the I/Q balance will shift and the calibration will no longer be accurate. Linrad allows you to calibrate for many frequency intervals across the SDR’s bandwidth, resulting in a flat frequency response and true I/Q phase and amplitude balance calibration.

2) Due to frequency response calibration using a pulse generator (http://www.sm5bsz.com/linuxdsp/flat/sqrpulser.htm), Linrad has a phenomenal “smart” noise blanker to remove (blank) pulse noises. Signal with no blanker http://sm5bsz.com/linuxdsp/blanker/leon2001/leo-nob.mp3. Here is the same recording, but with the “magic” of a fully calibrated Linrad blanker. http://sm5bsz.com/linuxdsp/blanker/leon2001/linleo.mp3. No other SDR software’s blanker can produce results like this.

3) Linrad can multicast its output to multiple computers or directly to a single computer over the network. You can also run multiple instances of it on the same computer.

4) Linrad’s waterfall is effortlessly optimized to display signals ~10dB (or more) weaker than what you can hear. No other SDR program allows this “out of the box”. Some will achieve similar performance by adjusting various settings, but will require more averaging (slower water fall speed) to achieve a similar waterfall “visual” SNR as Linrad.

5) Linrad allows varying of various sample and time settings adjustments to make extremely precise measurements such as frequency stability (http://www.sm5bsz.com/lir/sdrcmp/jan14/stab432.htm and http://www.sm5bsz.com/lir/sdrcmp/fqstab/fqstab.htm) noise figure (http://www.sm5bsz.com/lir/nf/nf2.htm) and phase noise (http://www.sm5bsz.com/osc/osc-design.htm)

6) Linrad supports two RF channel input for diversity reception.

7) Linrad’s AGC is superior to that of other SDR programs and analog receivers, often vastly superior (http://www.sm5bsz.com/lir/agctest/agctest.htm)

8) Proper and adaptable AFC to place a narrow filter around a signal that drifts (http://www.sm5bsz.com/linuxdsp/afc/meteor.htm)

Finally, as a conclusion the reader writes

In short, if you want to listen to FM broadcast signals from 88-108 MHz, take your pick of SDR programs, it doesn’t matter when picking up a 50+ kW transmitter a few dozen kilometers away.  If you want top performance, learn about DSP, RF, performance metrics, and so forth, there is only one suitable program: Linrad. Nothing else comes close.