ÆgirSDR - a coherent SDR platform supporting KrakenSDR

Good news everyone!

It just so happened that some ukrainian blokes bought me a KrakenSDR for a GNSS related project a while ago. Now, I have modified my old code coherent-rtlsdr to support KrakenSDR. It is now called ÆgirSDR, it is free and open source and covered by the MIT license. Here is the link:

Ægir supports clients for GNU radio, Matlab and SoapySDR(untested currently). The underlying transport for IQ samples is zero message queue (ZMQ / TCP), as it was in my master’s thesis implementation. This means you can have your coherent server located anywhere on the network or simply on localhost, if you prefer that. The GNU Radio, Matlab and SoapySDR clients connect to AegirSDR via e.g. tcp://localhost:5555.

The code should be compileable and runnable on Debian/Ubuntu x64 or on Raspberry Pi platforms (last tested on RPi4).Once compiled, it can be run simply by

`./AegirSDR -K -f 100e6 -s 2048000

The -K is for Kraken, -f is for tuning frequency, -s is for samplerate. Be sure that ‘config.yml’ is in the same directory as the executable, because in that file we define the channels and their order. Also, this is still provided as is and under development.

Once run and initialization is complete, entering the command “status” to the window shows the lags and correlation magnitudes of the channels along with synchronization status. One of the channels is the reference, the ground truth of timing and phase, so in case of KrakenSDR only 4 channels are shown by “status”. Entering the command “request rd” disables the reference noise for signal acquisition. Command “request re” enables the noise and also enable synchronization and computation of phase coefficients for the channels. The command “request sync” triggers forced timing resynchronization for all channels (as does a tuning frequency&samplerate change). The support for HackRF is under development and does not synchronize yet.

Do not run under a VM, as it will not synchronize the channels due to timing inconsistencies.

BR everyone,
Mikko Laakso

1 Like