Skip to content
Julblom edited this page Aug 8, 2024 · 34 revisions

Welcome to the RF wiki!

Prerequsites

Python3

sudo apt install python3
sudo apt install python3-dev
sudo apt install pip

Python libraries

If the activation script failed the required python packages are installed using:

pip install numpy
pip install matplotlib
pip install scipy
pip install pyhackrf
pip install pyargus

Kraken

  1. Get required linux packages
sudo apt-get install -y \
libzmq3-dev \
libusb-1.0-0-dev \
clang \ 
cmake \
make \
docker \
docker-compose \
xorg

if there are issues with clang this command can help resolve it sudo apt-get install libstdc++-dev

  1. Install kfr
git clone https://github.com/krakenrf/kfr /tmp/kfr && \
    mkdir /tmp/kfr/build && \
    cd /tmp/kfr/build && \
    cmake -DENABLE_CAPI_BUILD=ON -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release .. && \
    make && \
    sudo cp /tmp/kfr/build/lib/* /usr/local/lib && \
    sudo mkdir /usr/include/kfr && \
    sudo cp /tmp/kfr/include/kfr/capi.h /usr/include/kfr && \
    sudo ldconfig && \
    rm -rf /tmp/kfr
  1. Clone the RF repo

Run git submodule update --init from within the RF repo to init the heimdall daq firmware submodule

  1. Install custom KrakenRF RTL-SDR kernel driver
cd ~/
git clone https://github.com/krakenrf/librtlsdr
cd librtlsdr
sudo cp rtl-sdr.rules /etc/udev/rules.d/rtl-sdr.rules
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo ln -s ~/librtlsdr/build/src/rtl_test /usr/local/bin/kraken_test

echo 'blacklist dvb_usb_rtl28xxu' | sudo tee --append /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf

Restart the system sudo reboot

  1. navigate to RF/src/kraken/heimdall_daq_fw/Firmware/_daq_core

Copy librtlsdr library and includes to the _daq_core folder

cp ~/librtlsdr/build/src/librtlsdr.a .
cp ~/librtlsdr/include/rtl-sdr.h .
cp ~/librtlsdr/include/rtl-sdr_export.h .

Run make to build the data acquisition firmware

  1. To run the krakensdr direction of arrival code run ./start_kraken.sh

NOTE: In order to display the graph on your screen you have to use ubuntu-xorg as your display server protocol. To change this log out and and press the cog in the bottom right.

PlutoSDR

To use the PlutoSDR there is a quick guide on analogs page to follow.

Using Python for the PlutoSDR.

To be able to use python with PlutoSDR there is a guide.

Example code:

import adi
# Create device from specific uri address
sdr = adi.ad9361(uri="ip:192.168.2.1")
# Get data from transceiver
data = sdr.rx()

UHD

Clone the AntSDR UHD repo and run their Quick start guide.

HackRF

sudo apt install hackrf 
sudo hackrf_info

Download hackrf-2024.02.1 from releses at greatscottgadgets/hackrf github cd Downloads/hackrf-2024.02.1/firmware-bin hackrf_spiflash -w hackrf_one_usb.bin

hackrf_info should now display: Firmware Version: 2024.02.1

Clone this wiki locally