How to get TCP data (IQ at port: 5000 and Control at port: 5001) from Heimdal_Daq_Fw for other custom application?

Hi all engineer from KrankenSDR’s developers team and everybody! I’m having a problem about Kraken Server.
As what i understand is Kraken’s server running and post html file on IP_SERVER:8080 (LAN Network) contain information about DOA, SPECTRUM and Config page;
And user can get DOA data by the way request IP_SERVER:8081/doa_value.html. So I wanna write my own desktop application for monitoring DOA, SPECTRUM data for my
individual special needs, i have tried some way but i’m still dont know how to get SPECTRUM data from server without having to change the server’s code.
I would really appreciate any advice from you guys, thank you very much!

The KrakenSDR software is split into two parts:

Heimdall: This is the DAQ side which handles the raw IQ data and makes it coherent
DOA DSP: This is the DSP side which performs the MUSIC algorithm on the coherent data streams

If you want the DOA and Spectrum data you’ll need to modify the DOA DSP code, there is no need to touch the heimdall code unless you really want to compute the spectrum yourself from the raw data.

There’s no export API for the spectrum in the DOA code, you’ll need to add that yourself to the code. It shouldn’t be difficult to add a socket or web interface to output the data from the signal.welch function in https://github.com/krakenrf/krakensdr_doa/blob/main/_signal_processing/krakenSDR_signal_processor.py

From that output you can then plot your own spectrum.

If you really want the raw IQ data from heimdall, I would advise taking a look at our gr-krakensdr krakensdr_source code https://github.com/krakenrf/gr-krakensdr/blob/main/python/krakensdr/krakensdr_source.py to see how you can interface with the heimdall TCP stream in Python.

But you won’t have any DOA data then, and you’d have to implement you’re own MUSIC DOA algorithm in your application.

1 Like

Thank you so much! I’m really trying to get IQ data from the streaming that “GNU Radio Block” communicate with “Heimdall”. I tried that way first because i like the way to start Kraken’s server that’s just run *.sh file;
I wrote a QT application to readALl Data from 127.0.0.1:5000. And then i firuage out that the data rare so fast, and IQ is so hard to use (as you talk, i have to own MUSIC DOA algorithm)

According to your advice, i’ll modifine yours code at “krakenSDR_signal_processor.py”.
you saved me a lot of time trying, thank you very much again!!!

Hi Huynh, were you ever able to get the raw IQ data successfully? I’m trying to achieve the same thing and was wondering what classes you modified to make it work?