Coherent IQ data on Nvidia Jetson Nano for custom processing

Hi Kraken team,

I’m trying to get Kraken SDR working on my NVIDIA Jetson Nano (running JetPack / Ubuntu 18.04). My goal is not to use Kraken’s internal processing, but rather to access the coherent IQ data so I can implement my own custom processing.

I’ve tried manually installing all the dependencies, but that did not work. As soon as I run the heimdal_daq start file, something goes wrong, and the IQ data never gets written to shared memory. I am now trying the installation script for an ARM machine.

Could you advise on:

  • The best way to get Kraken SDR running on a Jetson Nano to access the coherent IQ samples?

  • Any dependencies or setup steps specific to Jetson / ARM?

  • Whether it’s possible to bypass Kraken’s processing pipeline and just stream the IQ samples?

Thanks in advance for any guidance!

jetson@ubuntu:~/krakensdr/heimdall_daq_fw/Firmware$ sudo ./daq_start_sm.sh
Config file check bypassed [ WARNING ]
kernel.sched_rt_runtime_us = -1
Desig FIR filter with the following parameters:
Decimation ratio: 1
Bandwidth: 1.00
Tap size: 1
Window function: hann
FIR filter ready
Transfer funcfion is exported to : logs/Decimator_filter_transfer.html
Coefficients are exported to: data_control/fir_coeffs.txt
Starting DAQ Subsystem
Output data interface: IQ ethernet server
) (
( ) )
) ( (
)
**
.-'---------|
( |/////|
'-./////|
'**_’
‘-------’

Have a coffee watch radar

I am following all the instruction in the GitHub - krakenrf/heimdall_daq_fw: Coherent data acquisition signal processing chain for multichannel SDRs repo but also setting my interface type to eth:

[data_interface]
out_data_iface_type = eth

When I monitor port 5000/5001 I do not see any activity.

When starting hemdal_daq I check the logs and I only get the following:

tail -f _logs/rtl_daq.log
Found Rafael Micro R820T/2 tuner
Found Rafael Micro R820T/2 tuner
Found Rafael Micro R820T/2 tuner
Found Rafael Micro R820T/2 tuner
Found Rafael Micro R820T/2 tuner
Allocating 12 (non-zero-copy) user-space buffers
Allocating 12 (non-zero-copy) user-space buffers
Allocating 12 (non-zero-copy) user-space buffers
Allocating 12 (non-zero-copy) user-space buffers
Allocating 12 (non-zero-copy) user-space buffers

I attempted to run the synthetic start but got these errors:
sudo ./daq_synthetic_start.sh
Config file check [FAIL]
Traceback (most recent call last): File “ini_checker.py”, line 384, in error_list = check_ini(parameters, en_hw_check) File “ini_checker.py”, line 76, in check_ini device_count = count_receivers() File “ini_checker.py”, line 50, in count_receivers lsusb_cmd = subprocess.run([“lsusb”], capture_output=True, text=True) File “/usr/lib/python3.6/subprocess.py”, line 423, in run with Popen(*popenargs, **kwargs) as process: TypeError: init() got an unexpected keyword argument ‘capture_output’
jetson@ubuntu:~/krakensdr_doa/heimdall_daq_fw/Firmware$

I am running out of time to get this sdr working for my project and now need to make some other design considerations. I cannot use as Raspberry Pi (University does not allow) but I did see that you have other devices such as the Orange pi’s etc. Will these work exactly as mentioned? I can either flash the image to an SD card or run the automated script on the Orange Pi’s and from there get access to the coherent IQ samples?