Skip to content

Add multi-channel KrakenSDR Suite V2 support - #45

Open
mickeyslaven wants to merge 1 commit into
30hours:mainfrom
mickeyslaven:kraken-five-channel-reference
Open

Add multi-channel KrakenSDR Suite V2 support#45
mickeyslaven wants to merge 1 commit into
30hours:mainfrom
mickeyslaven:kraken-five-channel-reference

Conversation

@mickeyslaven

@mickeyslaven mickeyslaven commented Aug 6, 2026

Copy link
Copy Markdown

What changed

This updates BLAH2's KrakenSDR backend to consume the standard TCP stream from KrakenSDR Suite V2.

The existing Kraken implementation opens individual tuners through librtlsdr and exposes a two-channel reference/surveillance pair. Suite V2 already handles Kraken device access, synchronization, and calibration, so BLAH2 now reads calibrated coherent IQ from the Suite instead.

Compared with standard BLAH2, this PR adds:

  • a small Suite V2 frame parser that validates metadata and accepts calibrated antenna frames;
  • configurable Kraken streams containing two through eight coherent channels;
  • conventional dedicated-reference operation for users who still want one reference and one or more surveillance channels;
  • optional array_eigenbeam reference synthesis from a configurable set of coherent channels;
  • independent clutter and ambiguity processing for each selected surveillance channel;
  • RMS fusion of the channel maps into BLAH2's normal delay-Doppler output;
  • configurable surveillance worker and FFT thread counts for small computers and faster workstations;
  • bounded draining of every coherent input channel each CPI;
  • a Kraken-specific container build that uses Suite V2 without installing the unrelated SDRplay, UHD, or HackRF dependencies;
  • reproducible container dependencies by following the UHD PPA's current packages, pinning the vcpkg checkout to the manifests' baseline, and using Ubuntu's Armadillo/BLAS packages; and
  • parser, synthesized-reference, and map-fusion tests.

Compatibility

The default BLAH2 build still includes the existing RSPduo, USRP, HackRF, and Kraken backends. The Kraken-specific Dockerfile builds the same BLAH2 processor with only the Kraken capture dependencies.

The map, detection, and track schemas are unchanged. A multi-channel Kraken therefore remains one ordinary 3lips node; its antenna channels are not presented as separate receivers.

This PR does not add direction finding, ADS-B processing, frequency hopping, or localization logic.

Configuration

Kraken channel count and channel roles are now explicit. surveillance_channels selects the channels that produce independent maps. In array_eigenbeam mode, reference_synthesis.channels selects the coherent channels used to estimate the common reference. Both lists have documented defaults.

Frequency and gain remain configured in Suite V2. BLAH2 verifies the streamed center frequency and channel count against its configuration.

Validation

  • Built both the default multi-backend image and the updated docker/Dockerfile-kraken image from a clean tree.
  • Passed all four CTest targets in both images, including the multi-channel Kraken test suite.
  • Tested dedicated-reference and synthesized-reference configurations.
  • Tested five-channel live processing with an unmodified Suite V2 stream at 2.4 MS/s.
  • Observed steady processing times of approximately 317-350 ms for a 0.5-second CPI on the test host.

@mickeyslaven
mickeyslaven marked this pull request as draft August 9, 2026 15:12
@mickeyslaven mickeyslaven changed the title Add five-channel KrakenSDR reference synthesis Add multi-channel KrakenSDR Suite V2 support Aug 9, 2026
@mickeyslaven
mickeyslaven force-pushed the kraken-five-channel-reference branch from 388e2ae to 05df12b Compare August 9, 2026 15:38
@mickeyslaven
mickeyslaven marked this pull request as ready for review August 9, 2026 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant