Tagged: linux

Running Windows & x86 SDR Decoding Apps on the Raspberry Pi 3: Unitrunker, WinSTD-C, WXtoIMG, DSDPlus and more

There is a great advantage to running SDR decoder apps on a single board PC like a Raspberry Pi 3. For example instead of committing a whole PC to become a dedicated decoder, a cheap Pi 3 can be used instead. However, unfortunately many decoder apps are written for the x86 CPU architecture and/or Windows, making them impossible to run on ARM and/or primarily Linux devices like the Raspberry Pi 3.

That is unless you use an emulator combination like Eltechs Exagear and Wine. Exagear is an emulator that emulates an x86 environment on a device like a Raspberry Pi 3 which uses an ARM CPU. Wine is a Windows compatibility layer that allows you to run x86 Windows apps on an x86 Linux installation. So by combining Exagear together with Wine it is possible to run Windows apps on ARM Linux devices.

Exagear is not free (although there is a free trial). It currently costs $22.95 USD for a Pi 3 licence, and $16.95 USD for a Pi 2 licence and $11.45 for a Pi 1/Zero licence. They also have versions for Odroid, Cubieboard, BananaPi, Jetson and many other ARMv7 and ARMv8 devices like the super cheap and powerful Orange Pi’s. There are free alternatives out there like QEMU, however when we tested QEMU it was far too slow on the Pi 3 to even run notepad responsively, let alone a decoder. Exagear on the other hand seems to run apps at near native speeds, without much lag at all. So in this respect the price seems to be worth it.

We decided to test the Exagear + Wine combination on a Pi 3 and were successful in running a number of apps including Unitrunker, WinSTD-C, WXtoImg, DSDPlus, PC-HFDL, MultiPSK, Orbitron and Sondemonitor.

Trunking setup with Unitrunker on a Raspberry Pi 3

With Unitrunker we were able to set up a full trunk tracking system using two RTL-SDR dongles, rtl_fm, rtl_udp and a custom script to control rtl_udp.

Unitrunker running on a Raspberry Pi 3
Unitrunker running on a Raspberry Pi 3

In the future we may put up a full double checked tutorial with images, but for now a roughly written tutorial is presented below. The tutorial is fairly involved and assumes decent Linux experience. The tutorial starts from a fresh install of Raspbian.

The basic idea of operation is based around the fact that the RTL-SDR cannot be used directly within Wine (or so it seems). So the control signal audio is routed from rtl_fm running on one dongle into Unitrunker on Wine using alsa loopback. Then we use the old Unitrunker remote.dll method to generate a sdrsharptrunking.log file which is a text file that contains the current frequency that the voice receiver should tune to. A simple shell script continuously reads this file and extracts the frequency, and then commands an instance of rtl_udp running with the second dongle to tune to that frequency.

Continue reading

Video Tutorial on Setting up the SDRplay RSP2 in Linux

Over on YouTube user Kevin Loughin has recently uploaded a video that shows a step by step guide on how to set up an SDRplay RSP2 in Linux. Setting up the RSP2 in Linux is not a simple task, but Kevin’s video walks us through the entire process step by step. At the end of the process you’ll be set up with the SoapySDR framework which is the glue software that sits between the hardware driver and SDR software. You’ll also have the CubicSDR software installed which is what you use for general browsing and listening. CubicSDR is similar to SDRuno, SDR#, HDSDR etc.

Over on his blog he’s also posted the steps in text form, and uploaded some of the scripts that he’s created to simplify the install process.

Version 2.6 of GQRX Released

Version 2.6 of the popular SDR program GQRX has just been released (changelog). GQRX is a general signal browsing program similar to programs like SDR#, HDSDR and SDR-Console. However GQRX is designed to run on Linux, MacOS and Raspberry Pi 2 & 3. Note that v2.6 is still a work in progress for MacOS. Apart from the new features and bug fixes, one of the major improvements appears to be reduced CPU usage, meaning that it should run better on older PCs. The changelog is pasted below:

New features

  • 1-2-5 scaling on FFT axis.
  • Audio waterfall.
  • Remember AGC settings between sessions.
  • Right-click on FFT resets frequency zoom.
  • Separate dB ranges for pandapter and waterfall.
  • Raw I/Q mode.
  • Portaudio support.
  • Command line option to set Qt style (fusion, windows, …)
  • Binary packages for Raspberry Pi 2 and 3 (see below)

Bugs fixed

  • Stuttering audio with Pulseaudio backend.
  • Use system font on FFT plot (too small font on high res displays).
  • Broken FUNcube Dongle Pro+ support on Mac OS X 10.11.4.
  • Correct display of negative offsets between -1 and 0 kHz.
  • Reset frequency digits below the one that is being changed.
  • LNB LO could not be set from I/O configuration dialog.
  • Update squelch level when switching between demodulators.
  • Set correct filter range when loading bookmark.
  • White area on waterfall.
  • RFSpace Cloud-IQ support on Mac OS X, RPI binaries and in PPA.

Miscellaneous improvements

  • Input decimator performance.
  • SDRPlay integration through SoapySDR.
  • Only probe for devices when the program is started.
  • Allow user to enter ALSA device name.
  • Set default audio FFT range to -70…0 dB.
  • Restore audio FFT dB scaling between sessions.

GQRX

A Good Quickstart Guide for RTL-SDR Linux Users

Recently we found this excellent quick start guide by Kenn Ranous which shows how to set up various RTL-SDR related software programs on (Debian) Linux. The guide shows how to install the drivers, how to install and set up GQRX, CubicSDR, dump1090, Virtual Radar Server, QSpectrum Analyzer and SDR Trunk.

If you are struggling with getting an RTL-SDR to work on a Linux system then this should be a very good starting point.

The guide can be found on Kenn’s blog at https://ranous.wordpress.com/rtl-sdr4linux.

rtlsdr_linux_qsg

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

Transmitting DVBT HDTV from a Raspberry Pi to an RTL2832U

Over on his blog, OZ9AEC has uploaded a post showing how he was able to create a live HDTV transmitter out of a Raspberry Pi, a Raspi Cam module and a UTC DVB-T Modulator adaptor. As he does not want to interfere with commercial DVB-T broadcasts, he sets the module to transmit at 1.28 GHz, aka the 23 cm licenced ham radio band.

On the RTL2832U dongle side, he modified the RTL2832U Linux DVB-T drivers (not the SDR drivers) to work on the 1.3 GHz band. The intention of this camera is for it to fly on a rocket mission. In the YouTube video below he has uploaded some sample footage with the RTL2832U dongle receiving the stream from 300 meters away.

Native RTL-SDR Support Coming to Linux

Linux will soon contain native support for software defined radio devices like the RTL2832U RTL-SDR. These new drivers written by Video4Linux developer Antii Palosaari should be included in the next Linux kernel version 3.15. Antii Palosaari was one of the first people to discover the SDR capabilities of the RTL2832U. In the image below Antii shows SDR# running in Linux with Mono with the Video4Linux gain control screen brought up.

Video4Linux Gain Controls and SDR#
Video4Linux Gain Controls and SDR#