DAQ issues on Raspberry Pi 5

I was able to get the system up and running on a Pi4 but when I try on the Pi5, there seems to be an issue getting data from the Heimdall subsystem. I am able to start and access the web gui but can’t seem to get data flowing. Based on the logs, I think it may be a shared memory issue, but I’m at a loss for what to do next.

delay_sync.log
INFO:main:IQ adjustment vector: abs:[1. 1. 1. 1. 1.]
INFO:main:IQ adjustment vector: phase:[0. 0. 0. 0. 0.]
WARNING:shmemIface:Shared memory not exist
WARNING:shmemIface:Shared memory not exist
WARNING:shmemIface:Shared memory not exist
WARNING:shmemIface:Shared memory not exist
Traceback (most recent call last):
File “/home/krakenrf/krakensdr_doa/heimdall_daq_fw/Firmware/_daq_core/delay_sync.py”, line 820, in
delay_synchronizer_inst0.start()
File “/home/krakenrf/krakensdr_doa/heimdall_daq_fw/Firmware/_daq_core/delay_sync.py”, line 461, in start
active_buffer_index_iq = self.out_shmem_iface_iq.wait_buff_free()
File “/home/krakenrf/krakensdr_doa/heimdall_daq_fw/Firmware/_daq_core/shmemIface.py”, line 120, in wait_buff_free
signal = unpack(‘B’, buffer )[0]
struct.error: unpack requires a buffer of 1 bytes
/home/krakenrf/miniforge3/envs/kraken/lib/python3.9/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 6 leaked shared_memor
y objects to clean up at shutdown
warnings.warn('resource_tracker: There appear to be %d ’
/home/krakenrf/miniforge3/envs/kraken/lib/python3.9/multiprocessing/resource_tracker.py:229: UserWarning: resource_tracker: ‘/delay_sync_iq_B’: [Errno 2] No such fi
le or directory: ‘/delay_sync_iq_B’
warnings.warn(‘resource_tracker: %r: %s’ % (name, e))
/home/krakenrf/miniforge3/envs/kraken/lib/python3.9/multiprocessing/resource_tracker.py:229: UserWarning: resource_tracker: ‘/delay_sync_iq_A’: [Errno 2] No such fi
le or directory: ‘/delay_sync_iq_A’
warnings.warn(‘resource_tracker: %r: %s’ % (name, e))

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

hwc.log
Traceback (most recent call last):
File “/home/krakenrf/krakensdr_doa/heimdall_daq_fw/Firmware/_daq_core/hw_controller.py”, line 702, in
HWC_inst0.start()
File “/home/krakenrf/krakensdr_doa/heimdall_daq_fw/Firmware/_daq_core/hw_controller.py”, line 415, in start
active_buff_index = self.in_shmem_iface.wait_buff_free()
File “/home/krakenrf/krakensdr_doa/heimdall_daq_fw/Firmware/_daq_core/shmemIface.py”, line 188, in wait_buff_free
signal = unpack(‘B’, os.read(self.fw_ctr_fifo, 1))[0]
struct.error: unpack requires a buffer of 1 bytes

Are you using the Pi 5 image?

No, I was attempting the scripted install using the Pi5 image that came with the Pi5. No errors are thrown during the install.

The Pi 5 image comes with the Kraken software pre-installed. Is there any reason that you need to run the install script again?

EDIT: Or do you mean your Pi 5 came with an SD Card with some OS preinstalled, and you tried installing to that? What OS came preinstalled? Any reason to not try our Pi 5 ready to use image?

I’m using the sd card and OS that came with my Pi5. I was a little nervous to wipe it out with the Kraken image.

SD Cards are pretty cheap, you only need a 16gb card for the KrakenSDR image, but 32gb is probably found easier these days. You can swap the SD cards out whenever you want to change the function of your Pi 5.

I picked up a new SD card and loaded the Kraken Pi5 image. The default DOA software does start and run with no issues but I have a custom DOA version that I want to drop in and run. This doesn’t seem to work because no data is coming across the shared memory interface. I am trying to debug but just getting the Heimdall code running first. When I try to start it with the “sudo ./daq_start_sm.sh” command but I get an error that there is no module named scipy. I activate the kraken conda environment before running the command so I’m not sure what’s going on.

Have a look at the kraken_doa_start.sh script in the main krakensdr_doa directory. This shows you how to start conda when running the scripts.

You’re getting the scipy missing command because the shell you are running the code in hasn’t activated the kraken conda environment.