- KrakenRF Website
- KrakenRF CrowdSupply Page
- KrakenRF GitHub Page
- KrakenSDR Direction of Arrival Repo.
- KrakenSDR Passive Radar Repo.
- GNU Radio Source Block for the KrakenSDR.
- Kraken RPi 4 Pre-Configured Image For Direction Finding.
- Ubuntu VirtualBox Pre-Configured VMs See Notes on VM Below
- Use with VirtualBox 7.0 or later.
- For Linux Hosts:
sudo adduser $USER vboxusers
- Ubuntu Username:
krakenrf
, Password:krakensdr
- KrakenSDR Documentation Wiki
- Quick Start Guide for Direction Finding
- Antenna Array Setup for Direction Finding.
- Troubleshooting Tips for the pre-built Raspberry Pi 4 Image.
- Kraken YT Page
- Kraken Vehicle Direction Finding Video
- Compare to Rohde & Schwarz Live Interference Hunting Demonstration
- A 3D Printable Antenna Array Template on Thingiverse
- Passive Radar Applications
- KrakenSDR RDF Android App
- Arrow Antennas 5 Element Dipole Array: A Tower mount 5 channel antenna for direction finding with the KrakenSDR.
- KiwiSDR Resources
- The $2,165.00 Ettus USRB B210 2 channel phase coherent transceiver.
Please see my GitHub Issue #5 regarding KrakenSDR and GNURadio.
- I do a complete x86_64
krakensdr_doa
andgr-krakensdr
install from scratch using the install scripts on a fresh install of Linux Mint 21.3. - This issue deals with the error message "Exception: Failed to get IQ Samples" when running a GNU Radio flow graph.
- The root cause comes from the
rtlsdr_demod_write_reg failed with -9
error in thertl_daq.log
file.- Per user KrakenRF: "This is the core problem. This usually means that there is some problem communicating with the KrakenSDR. So most likely a USB data cable problem. Please try another high quality USB cable, and also try the ports on the back of your PC. Sometimes the ports on the front of desktop computers are internally connected with very low quality cabling, and so they won't work well with high data rate devices."
- Update: after extensive testing, the problem was with my laptop USB ports. For whatever reason, they do not
like the KrakenSDR. I wish I had a better answer. I fired up another laptop with a fresh Win10 image and WSL2 running Ubuntu 22.04. I installed the
USBIPD-WIN
package and was able to bind the 5 KrakenSDR radios to WSL. I did a manual x86_64 install of thekrakensdr_doa
andgr-krakensdr
in WSL2 the same way as I described at the beginning of the GH Issue. When I runkraken_fft_display.grc
it seems to work pretty well. No dropped IQ samples this time and no failures. Although this is not ideal, it is something I can deal with. It appears to be some problem with my laptop USB ports and not related to the KrakenSDR.
In order to set up a mobile DoA setup using a Rasperry Pi 4 or 5, The following power requirements need to be taken into account:
- The Raspberry Pi 4 requires at least a 5V 3.0A (15W) power supply. Note that the CanaKit Pi 4 power supply we used was rated at 18W.
- The Raspberry Pi 5 requires a 27W power supply (5.0V 5.4A)
- The KrakenSDR docs state that it draws a nominal value of 11W, and requires at least a 5V 2.4A (12W) power supply.
- Note that this nominal value does not take into account any current supplied by any of the 4.5V bias-tees for each SMA input. Any additional current for this purpose must be added to the 12W baseline if the bias-tee is used.
- As a result, I have found a reasonable 2 × 30W USB-C cigarette lighter power supply here that seems to have ample power: USB C Car Charger, 60W Cigarette Lighter
Here are the cables and power supply I used for indoor stationary operation:
- Anker Thunderbolt 4 Cable 2.3 ft USB-C to USB-C Cable
- Anker Prime 67W 3-Port GaN USB-C Wall Charger
- Optional: USB-C 3.1 PD/QC Power Meter
-
After importing the OVA appliance to VBox 7.0+:
- Allocate 4 vCPUs & 8192 MB of RAM to the Kraken Ubuntu VM.
- Increase the display video memory to 128 MB.
- Make sure to test run and UPDATE the image (this may take awhile).
- In Ubuntu, if this does not happen automatically, then click
Activities
in the top right corner and search forSoftware Updater
.
- In Ubuntu, if this does not happen automatically, then click
- With the KrakenSDR plugged in and powered on:
- The RTL-SDR USB Device Filter should already be added in the VBox hypervisor.
- If not, add it here:
Settings -> USB -> USB Device Filters
-
Next, we need to fix the 16 MB
usbfs_memory_mb
that will prevent using all 5 RTL-SDRs in the KrakenSDR.- Temporary Fix (Does Not Survive Reboot):
- open a terminal and login as root:
sudo su
and enter the password. - now enter
echo 0 > /sys/module/usbcore/parameters/usbfs_memory_mb
- now verify the change by logging out of the root terminal (CTRL+d) and entering
cat /sys/module/usbcore/parameters/usbfs_memory_mb
and we should now see the value0
. - This allows for testing of 5 channel simulaneous operation. Open 5 separate terminals:
- In the first terminal, enter
kraken_test -d0
to open channel0
. - In the second terminal, enter
kraken_test -d1
to open channel1
. - In the third terminal, enter
kraken_test -d2
to open channel2
. - In the fourth terminal, enter
kraken_test -d3
to open channel3
. - In the fifth terminal, enter
kraken_test -d4
to open channel4
. - Each terminal should hang and update itself periodically, indicating the channel is opened, until a CTRL+c is entered. If any of the tests fail to run then the value of the
usbfs_memory_mb
has likely been reset to16
, which is an insufficient value to retreive all data from the 5 RTL-SDRs simultaneously via USB-C from the Kraken.
- In the first terminal, enter
- open a terminal and login as root:
- Permanent Fix (Ubuntu): change the grub config when booting:
- Edit /etc/default/grub:
sudo nano /etc/default/grub
- Append
usbcore.usbfs_memory_mb=0
to theGRUB_CMDLINE_LINUX
variables between the double quotes. - CTRL+x to exit and save.
- Append
- From the command line, enter:
sudo grub-mkconfig -o /boot/grub/grub.cfg
to write the new grub configuration. We need to reboot for this to take effect. - Next, enter:
reboot
- After reboot, in a new terminal window enter:
cat /sys/module/usbcore/parameters/usbfs_memory_mb
and we should see a value of0
if the USBFS fix worked. - Now we must verify that all 5 KrakenSDR channels can be opened simultaneously.
- Edit /etc/default/grub:
- Temporary Fix (Does Not Survive Reboot):
-
Next, we need to change the Hemdall DAQ Data Interface settings:
- Enter:
nano ~/krakensdr_doa/heimdall_daq_fw/Firmware/daq_chain_config.ini
- At the bottom of the file, under the
[data_interface]
section:- replace old interface with ethernet:
out_data_iface_type = eth
- CTRL+x to exit and save.
- replace old interface with ethernet:
- Enter:
-
Download the two missing Heimdall bash scripts from the
gr-krakensdr
repo:heimdall_only_start.sh
heimdall_only_stop.sh
- Place both scripts into the root krakensdr folder of the VM:
~/krakensdr_doa/
- Open a terminal, navigate to
~/krakensdr_doa/
and make both scripts executable:sudo chmod +x heimdall_only_start.sh heimdal_only_stop.sh
- In order to run GNU Radio, the
heimdall_only_start.sh
- Without running this script, when executing a flow graph the following error is encountered:
Ethernet Connection Failed, Error: <class 'ConnectionRefusedError'>
-
Revert back to
Xorg
fromwayland
to avoid the warnings when running flow graphs in GNU Radio:- Edit the following file:
sudo nano /etc/gdm3/custom.conf
- Uncomment the line
WaylandEnable=False
- CTRL+x to save and exit.
- Uncomment the line
- Edit the following file:
sudo nano /etc/environment
- Append the following on a new line:
QT_QPA_PLATFORM=xcb
- CTRL+x to save and exit.
- Now reboot:
sudo reboot now
- check the following:
echo $XDG_SESSION_TYPE
and it should NOT returnwayland
- In my case, it returned
x11
- In my case, it returned
- Append the following on a new line:
- In some instances, this warning was preventing the output GUI window from opening.
- Edit the following file:
-
When running a GNURadio flow graph, if you receive a warning message popup that states:
The xterm executable is missing. You can change this setting in your gnuradio.conf,
in section [grc] 'xterm_executable'
- Then it can be corrected by editing
/grc.conf
:sudo nano /etc/gnuradio/conf.d/grc.conf
- find the line that begins with the variable
xterm_executable=...
and change it to:xterm_executable=/usr/bin/gnome-terminal
(Assuming you are using gnome-terminal like I am)- CTRL+x to save and exit.
- When running a GNURadio Flow Graph in the VM which requires realtime scheduling and the following error message in the console is encountered:
def main(top_block_cls=transceiver_CSS_loopback, options=None):
if gr.enable_realtime_scheduling() != gr.RT_OK:
gr.logger("realtime").warning("Error: failed to enable real-time scheduling.")
AttributeError: 'gnuradio.gr.gr_python.logger' object has no attribute 'warning'
The fix is to allow user's tasks gain the ability to ask for real-time scheduling.
- Run the following in a terminal:
echo "$(whoami) - rtprio 99" | sudo tee /etc/security/limits.d/99-rtprio.conf
Then perform a reboot and the problem should be solved. Thanks to This GitHub Issue #6923 for the solution.