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.

Listening to D-STAR Digital Voice with DSD 1.7

D-STAR or (Digital Smart Technologies for Amateur Radio) is a Frequency Division Multiple Access (FDMA) Gaussian Minimum Shift Keying (GMSK) digital voice and data protocol used in amateur radio.

Up until recently it was possible to decode D-STAR headers using either DSD 1.6 or dstar.exe and an RTL-SDR, but it was not possible to decode voice. Now amateur radio hobbyist PU2VLW has brought to our attention that the latest DSD development version 1.7 is capable of decoding D-STAR audio (his post is in Portuguese so we suggest using Google translate). He shows a video of some example D-STAR decoding which we show at the end of this post.

DSD 1.7 can currently be downloaded as source from it’s GitHub respository. Instructions for installing DSD 1.7 on Linux can be found on the post by PU2VLW and the GitHub readme. PU2VLW built DSD 1.7 in Ubuntu 10.04, noting that newer versions of Ubuntu have removed OSS (Open Sound System) support which DSD requires. He then runs SDR# on a Windows PC, tuned to a D-STAR signal, and uses an audio out cable to connect the Windows PC’s audio out to the Ubuntu PC running DSD 1.7.

Update: See this post for installing DSD 1.7 on Windows.

Decodificando Dados e Voz da tecnologia D-STAR sem utilizar DV Dongle

EDIT: There is now a version of DSD+ that can decode D-STAR. https://www.rtl-sdr.com/dsd-version-1-5-released/

New CTCSS Detector Plugin for SDR#

CTCSS is an acronym for Continuous Tone-Coded Squelch System and is a system that is used in shared two way radio systems. It is common for a single radio channel to be shared over a number of user groups for frequency use efficiency. CTCSS uses a special tone to identify each group of users, and this tone is used to prevent a group hearing radio chatter from another group sharing the channel.

Over on the SDR# Yahoo Groups forum, a CTCSS detector plugin for SDR# has been posted. The plugin can detect CTCSS tones and provide a squelch for the desired tone. The latest version of the plugin can be downloaded from this link.

CTCSS SDR# Plugin
CTCSS SDR# Plugin

Active ADS-B Antenna now for Sale

Last year in November we ran a post about an active PCB based ADS-B antenna which was used with the RTL-SDR.

The antenna was created by F5ANN, and he used his active antenna together with an RTL-SDR dongle, the RTL1090 ADS-B decoding software and PlanePlotter, and was able to receive 194 simultaneous aircraft signals with a message rate of 556 messages a second at distances of up to 250 nm.

This antenna can now be bought from the 1090mhz.com webstore, and is available with or without LNA. The LNA will help if you need long runs of coaxial cable between the antenna and RTL-SDR.

Active PCB Antenna
Active PCB Antenna