Category: Digital Signals

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.

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

RTLAMR: An RTL-SDR Receiver for 900MHz ISM Smart Meters

Smart meters are meters that monitor electricity usage and wirelessly transmit consumption data to the electricity company. They are a part of the “smart grid”, and allow for better electricity control and usage reporting.

Douglas recently wrote in to us to let us know about his work on RTLAMR, an RTL-SDR based Automatic Meter Reader (AMR) decoder. Currently Douglas has tested the decoder on his local Itron C1SR smart meters, but notes that it should work on any meter using the common AMR protocol known as Electronic Receiver Transmitter (ERT).

Over on his website Douglas has also done a neat writeup discussing the ERT protocol and showing how he decoded it, including the steps of preamble detection, matched filtering, bit slicing and error correction.

We would like to note that we also recently posted about a similar project about decoding Elster R2S smart meters.

RTLAMR Smart Meter Decoder Flow Diagram
RTLAMR Smart Meter Decoder Flow Diagram

Monitoring APRS with the RTL-SDR

YouTube user Troy McQuinn has uploaded a video showing how he is able to decode amateur radio APRS signals. APRS is an acronym for Automatic Packet Reporting System and is used by ham radio users to send data like messages, announcements and also GPS coordinates. To decode APRS he uses SDR# and pipes the audio to QTMM AFSK 1200 Decoder.

Studying VOR Signals with the RTL-SDR

VHF Omni Directional Radio Range (VOR) signals are used in aviation as a short range radio navigational system. Amateur radio hobbyist F4GKR decided to study these VOR signals by recording them using his RTL-SDR, and then analyzing them in MATLAB. On his post he shows his method of analysis and discusses his results.

VOR Spectrum and Waterfall
VOR Spectrum and Waterfall

Sniffing and Decoding NRF24L01+ and Bluetooth LE Packets with the RTL-SDR

Omri Iluz wrote in to us to let us know about his recent project which involves sniffing and decoding wireless packets at 2.4 GHz from NRF24L01+ and Bluetooth Low Energy (BTLE) transceivers. The NRF24L01+ is a popular wireless transceiver which is used in many common devices such as keyboards, mice, remote controls, toys and appliances.

Since 2.4 GHz is out of any of the RTL-SDR’s receivable range, Omri used a cheap downconverter which he was able to buy from China using Aliexpress. The downconverter converts the 2.4 GHz signal into a lower frequency at around 400 MHz which is in the receivable range of the RTL-SDR.

He was then able to use his NRF24-BTLE-Decoder software that he developed to convert the received data from the NRF24L01+ transceiver into a decoded packet by simply piping the output of RTL_FM into his program.

Since the NRF24L01+ uses hardware similar to the Bluetooth Low Energy (BTLE) protocol, Omri was able to modify his code to be able to also decode BTLE packets.

2.4GHz NRF24 packet received on the RTL-SDR from a Logitech mouse using a downconverter
2.4GHz packet received on the RTL-SDR + downconverter from a Logitech mouse
decodednrf
Decoded NRF24 Packets