What is ka9q-radio
ka9q-radio (Yes, by custom of the author, it is lowercase) is a attempt to move the data processing from dedicated hardware, move it into software on a CPU. The current radio is receive only. It uses a variety of USB receivers.
ka9q-radio is a very flexible system which require a time and effort to become competent in it use.
This document is designed to step you through the resources and the learning process.
What do you need to know?
The software runs on a variety of hardware configurations. Some receive tasks require very few physical resources. However some tasks require more receive and computer resources to process. ka9q-radio has two basic tasks,
- First the ka9q-radio reads a data-stream from the USB 3+ port. The entire spectrum available is processed into a iq stream multiple times per second.
- Second a separate process reads a specific location in the spectrum and decodes the signal protocol to either a audio or a digital format. Since these samples are small relative to the entire spectrum, ka9q-radio can sample hundreds of subsamples using multiple separate process in a multi-core CPU.
- The iq samples can be processed locally or sent from one computer to another through the multicast network so the decoding can be completed on any number of other computers. Complicated configurations require more complicated configuration files.
What do you need?
Computer
ka9q-radio can run on a linux computer such as a small Raspberry Pi 4 or a larger multi-CPU computer. The more challenging tasks will need a powerful CPU with plenty of memory. Because the radio is non-graphical and highly network connected, there is less need for a keyboard or monitor interface.
Software
The software ka9q-radio can be downloaded from the github. It is only for linux computers. The software need may linux libraries to work. It needs fftw which need to be downloaded and calibrated to you hardware. On small machine this calibrations can take hours versus less that a hour of high-end computer.
Network
This software runs multicast on your local net by default. This can cause havoc on your wifi devices. The best solution is to create a separate local network to isolate the traffic. The other solution is to isolate the multicast packets to one machine by using the configuration parameters. This choice greatly reduces the feature of distributing the signal processing on multiple computers.
Receiver
A set of receivers are usable with the ka9q-radio software including rtl-sdr, airspyR2 and airspyhf+, funcube-dongle-pro+, and rx888MKII. Other radios have been used but Phil (ka9q) wants to support only open-source designs.
Antenna
This system is a receive only system. Wide-banded wire antennas work very well, as do wide-banded discone antennas on VHF and UHF.
How to install
The radio system is a linux only system,
First use the git software to pull a copy of the current code.
github.com/ka9q/ka9q-radio The web view of the ka9q-radio repository
At your linux prompt, in the directory, where you want to save the ka9q-radio code, type:
git clone https://github.com/ka9q/ka9q-radio.git
This command will clone the code into that directory where you wish to maintain the code and build the programs.
First read all the documents in the ka9q-radio/docs directory.- INSTALL.md - Start here and follow the command listed in the document.
- FFTW3.md - FFTW3 must be callibrated once on a new machine! It calibrated the FFTW processing code to your computer.
Remember that this code runs on the whole bandwidth mutliple times per second. Efficiency is very important! The process can take hours on slow machines but only needs to be run once on a specific computer.
DO NOT try to copy the FFTW file from another computer!
- ka9q-radio.md - Discussion on configuration radiod the the code that implement the first step from above. It also explains how to use systemd to keep the radiod running after power off events.
- ka9q-radio-2.md - Discussion on configuration the recommended receivers.
- ka9q-radio-3.md - Discussion on configuration the receiver channels.
How to configure
Configurations are among the more complicated tasks for new users of ka9q-radio. Configuration file are used to define the way that ka9q-radio binaries communicate with the hardware receiver. They are also used to connect the output from binary to the next binary.
Because of this configurations are one of the most confusing and frustrating parts of learning ka9q-rqdio but once master configurations are also the most rewarding parts of the radio. Phil has provided many example configuration files included Github. They can be used as a starting point on your learning process.
How it works
Receive iq data with a hardware receiver
A Software defined Radio (SDR) is connected to a wide-band antenna. This radio is connected to the computer by a USB cable. The type of USB limit the maximum bandwidth that can be processed. The software currently works with USB 2 and USB 3 devices. The receiver produces a 20ms sample of signal data. The step defines the maximum bandwidth that can be processed.
The 20ms sample is processed with a fft. This is the limit of processing of the entire signal. All further processing only is applied to the sub-samples of interest.
Sample the signals of interest
The stream of data described above can be sub-sample at locations in the spectrum. This process is conducted in parallel with the initial sampling process. Hundreds of the sub-samples can be processed simultaneously.
Decode the signals if necessary
These sub-samples can be further post processed to convert the sound signal to a digital signal.
Record specific signals is desired
The signal of interest samples can be stored as either sound or digital recordings. This signal can be post processed like the active signals.
Major concepts
Processing the spectrum chunks
Multicast for sub-processes communication
Resources
github.com/ka9q/ka9q-radio ka9q-radio github repository
HamSci.org/telecons TAPR and HamSci Weekly Zoom recordings focused on receiver development, ka9q-radio and wsprdaemon.
ka9q-radio tutorial videos Tom McDermott, ka9q-radio getting started videos
ka9q Talks
Phil Karn, ka9q, ka9q-radio DCC Talk 2018 (https://youtu.be/D1LYLDGknOY?t=6)
Phil Karn, ka9q, ka9q-radio DCC Talk 2021 (https://youtu.be/kVY3E3e-- I?t=14416)
Phil Karn, ka9q, ka9q-radio Club Talk March 2023 (https://www.youtube.com/watch?v=7nhBFSGby2o)
Phil Karn, ka9q, ka9q-radio DCC Talk 2023 (https://youtu.be/31KjMKXDR0k?t=4144)
Phil Karn, ka9q, ka9q-radio HamSci 2024 & SDR Forum Talk Hamvention 2024 (https://www.youtube.com/watch?v=yhD0SIMLyBs&list=PLs_Ab58w9LI80bQrC0m5Nl5p3UTEv9Nug&index=2&pp=iAQB)
Webpages
Clint, KA7OEI (https://www.sdrutah.org/info/using_ka9q_radio.html) Good Information some out of date
![TAPR](TAPR-icon.png)
© TAPR 2024, Maintained by Dave, KV0S
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.