Previous page(Changes) <------- Back to index -------> Next page (Installation)


External dependencies

This manual is about what the yellow layer at the bottom in the image below does. The remaining layers are the hardware and software components that Echoes needs to do its job, components that are shortly described below.


The Zadig tool is needed only once, under Windows, to install the patched WinUSB library. If you already used HDSDR or SDR# on the same machine, they are probably already present. This library is needed by user applications to access USB devices, normally managed by the operating system only. Under Linux, the equivalent libusb library can be installed like any other package of your distro and probably already is.

For RTL-SDR dongles users only: Beware that the proprietary DVB-T drivers supplied with the dongles cannot work if you use the dongle as SDR. This applies both to Windows and Linux.

The SDR driver is a software component (driver or library) needed to make a SDR application work with a given SDR device. Until Echoes 0.33, only the open source librtlsdr was supported, so Echoes could work with RTL-SDR devices only.

If you've purchased an SDR device, you've probably already installed that driver along with any other software to do something cool with that SDR. It is important to know if your SDR works before trying it with Echoes, as it is still experimental software.

The next two layers, the Support library and SoapySDR are the two faces of the same Soapy medal, they work together. The driver "sees" one side, the support library, while Echoes "sees" the other side, the SoapySDR library.

The support library is a wrapper, its purpose is to couple the SDR driver to SoapySDR library by presenting it a common interface to access its internals. Any SDR device, for which a support library have been written, can work with SoapySDR and consequently with Echoes (remember the limitations mentioned in Introduction).

SoapySDR provides functions to operate on SDR setup and get samples. Echoes GUI uses these functions to talk with the SDR and forward the received samples (time domain) to the FFT to produce spectra (frequency domain).

libLiquid is an open source multi-purpose DSP library that - besides FFT - includes other DSP functions, like the rational resampler and FFT windowing functions. Under Windows, this library is already included in Echoes installer.

Under Linux it can be found as a package that must be installed separately.

Beware: its version must be 1.3.2 or newer and released in July 2020 or later.

Finally, GNUplot is a well known program for data plotting. It is not mandatory to install it to run Echoes, unless you want to run the program in console mode when screenshots are not possible, and generate reports. In this case, gnuplot is required to plot the numerical dump files (.dat) generated by Echoes to produce image files to be included in the report.


Let's see now in more detail what is inside the yellow layer seen above. The figure below resumes its functionalities in a block scheme.


Echoes can process IQ samples coming both from a local SDR device or from remote Echoes server sessions through UDP network messages. Any Echoes instance connected to an USB dongle and having set as server IP address on Preferences tab, becomes implicitly a dongle server. So the samples received from its SDR device will also be forwarded on the net to any client Echoes instance addressing this server.

A client Echoes instance can receive these samples by specifying in preferences the same port number (default 12345) and the IP address of the server.

Once set the device and other desired parameters in main window (more detail in Basics), by pressing the Start button the selected device starts to produce IQ samples in time domain that are enqueued and sent to the radio acquisition thread.
This thread performs resampling (green block) and FFT (cyan block) and produces a frequency domain spectra (later referred shortly as scan).

Each scan is then queued and forwarded to the output thread (pale green block) that draws a new row on the waterfall, detects events according to the given parameters and generates screenshots, plots and statistic data tables.

These data files are post-processed (pink block) and archived under a determinate directory structure. Post-processing is started on each new day at midnight UTC.

If required, once the given amount of daily data have been collected, a full HTML report (gray block) can be generated. The Reporting tab allows some report content's customization.

The settings changed in the windows are saved in a default configuration file (yellow/white block) that is silently reloaded each time the program is restarted. These settings can be saved with different names and retrieved later as needed.

Previous page(Changes) <------- Back to index -------> Next page (Installation)