Rtl_daq Failed to open RTL-SDR device: Resource temporarily unavailable

I find myself in the context of a recently acquired KrakenSDR (via Crowd Supply), and I’m attempting to setup the DOA solution.

The purpose of this thread is to describe a situation where running ‘heimdall_daq_fw/Firmware/daq_start_sm.sh’ shows that ‘_daq_core/rtl_daq.out’ returns very soon and reports that it has failed to open device, resource is unavailable.

More Information Below, thanks.

The setup is as follows:

  • 1 KrakenSDR connected to five antennas, “POWER” connected to a 4A-capable USB-C source and “DATA” connected to the USB(most probably 3, maybe 2) port of a Raspberry Pi 4B.
  • The Raspberry Pi4B is powered via the USB-C port to a 300mA-capable power source
  • The Raspberry Pi 4B has an SD Card with the minimal Raspberry 64-bit image (uname -r outputs “6.1.0-rpi8-rpi-v8”) and 8GB RAM.

The installation has been done by running ‘krakensdr_aarch64_install_doa.sh’ twice.
The first time I probably missed some errors, the second time somehow the conda environment was left very well installed/configured, but the following actions were taken.

  1. Manually install what in GitHub - krakenrf/krakensdr_doa are called the prerequisites - I was just checking if they were there and I found they were not.
    sudo apt -y install nodejs jq rustc cargo
    cargo install miniserve
    In particular rustc from apt was at version 1.63 and some dependency required >=1.65 so it was installed from the official installer script which used version 1.76.0.

  2. When “making” _daq_core some file (I believe it was rtl_daq.c) was importing “rtl-sdr_export.h” unsuccessfully, therefore I opened the Makefile and
    2.1) Uncommented the optimization flags for Pi 4, the line is as follows
    CFLAGS=-Wall -std=gnu99 -mcpu=cortex-a72 -mtune=cortex-a72 -Ofast -funsafe-math-optimizations -I/home/myusername/krakensdr_doa/heimdall_daq_fw/Firmware/_daq_core -funroll-loops
    2.2) Please note in the line above that I have added in the includes the _daq_core path so that the headers are found. That’s all!

  3. After running ‘kraken_doa_start.sh’
    The server on port 8081 seems to be working O.K.
    The server on port 8080 is not listening, but I understand there is probably some blocking event that has not been completed yet. This is why I focused on the Firmware section:

  4. Manually running ‘sudo env “PATH=$PATH” ./Firmware/daq_start_sm.sh’ after having activated the conda environment obviously allows us to focus on only producing firmware-related logs.
    The relevant unit that seems to be failing is called ‘rtl_daq.out’ and it produces the following log:

13:13:54 FATAL rtl_daq.c:566: Failed to open RTL-SDR device: Resource temporarily unavailable

More Info:

  • Balena etching the raspi4 image provided on the Mega repository yielded a system that was never registering to my KrakenAndroid/KrakenAndroid mobile hotspot :frowning:
  • My memory is not the best on this, but I’m pretty confident that ‘daq_synthetic_start.sh’ works O.K. and ‘unit_test.sh’ reports its own problems. Should I update on this point?
  • also please note that ‘lsusb’ does not display a new line after connecting KrakenSDR’s data port - this was tested on both the Raspberry Pi 4B device and a laptop with Ubuntu 20 installed. On the other hand, other USB devices were plugged to the Raspberry pi 4B to confirm the USB port is working O.K.
  • The cable used is data-capable
  • I am aware of the warning posted on Script/manual installs from May 3 may have been buggy on ARM devices, the md5sum of the krakensdr_aarch64_install_doa.sh used is f0c8453bbf934a168e226e8729b33488. I will soon check if it’s the latest one or not, thanks.

Final Comment:
In a couple of days, if nothing concrete is obtained from this discussion, I will rebuild manually from source on a flashed card to better pinpoint what is the issue.

Thank you all for your time :slight_smile:

Is that correct or a typo?

Please try delete all folders and run the script again. There was a minor error on the heimdall Makefile caused by an update that could have caused the _daq_core software to not compile correctly.

If you delete everything and run the script again it should download the updated Makefile for the install.

TLDR: Thanks to all, reinstallation (as suggested by @krakenrf_carl) fixed the problem. It was probably some error during _daq_core compilation that I did not spot. Apologies for not having been systematic enough to produce material (e.g. installation output logs) so that we can get more info. from this experience.

Typo, max current of 5V Raspberry Pi 4B supply is 1A at 5V.
KrakenSDR’s power supply is limited to 3A.

1 Like