ExaGear is an x86 emulator for ARM computing devices. In the past we posted about ExaGear as together with WINE, it was an affordable solution that allowed Windows SDR apps to run on ARM devices like the Raspberry Pi 3. With ExaGear and WINE we were able to get Windows only SDR programs like Unitrunker, WinSTD C, DSD+, MultiPSK, PC-HFDL, Orbitron and Sondemonitor to run smoothly. In another previous post, DE8MSH was also able to use ExaGear to get Speclab running on his Raspberry Pi 3.
Unfortunately it appears that ExaGear is to be discontinued from February 28 onwards although they note that all previously purchased licences will continue to work. No reason has been given other than noting that it is their business decision. For now the downloads and ability to purchase licences is still active until February 28, so if ExaGear was a product you were interested in, you have just over a week to obtain it.
Thanks to DE8MSH for writing in about his project that involves using a Raspberry Pi 3 and cheap 7€ USB sound card connected to an old Grahn GS1 VLF antenna to detect the SAQ VLF station. Standard PC or USB sound cards can be used as a narrowband VLF capable SDR simply by connecting an antenna to the sound inputs. SAQ (aka Grimeton Radio Station) is a heritage VLF transmitter in Sweden that transmits CW at 17.2 kHz, normally only on Alexanderson Day and Christmas Day, but can sometimes unofficially transmit without announcement due to maintenance, training or local events.
In terms of software running on the Pi 3 DE8MSH uses Spectrum Laboratory (speclab) to monitor the sound card waterfall, and has written a Python script that uploads the processed images from speclab to a Twitter account every 20 minutes. This way he hopes to be able to detect any unannounced SAQ transmissions from his station in Sweden.
Spectrum Laboratory is actually a Windows and x86 only program, however as shown in one of our previous posts, it is possible to use a special compatibility emulator called Exagear which allows you to run x86 programs on ARM hardware. Together with Wine you can then run x86 Windows programs on single board computers like the Raspberry Pi 3 which run Linux on ARM hardware.
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.
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.