- Purchase: AmeriDroid
- Specs: RK3588S, 16GB RAM, 6 TOPS NPU
- OS: Debian 12 (bookworm) - pre-installed
- Connection: SSH over local network
- Purchase: RTL-SDR.com
- Specs: Rafael Micro R828D tuner, 500 kHz-1.7 GHz, 1 PPM TCXO, HF upconverter
- Driver: Requires RTL-SDR Blog driver fork — stock librtlsdr does not support the R828D tuner
- USB: Use USB 2.0 or 3.0 port
Total Cost: $219.90
ssh debian@<nova-ip-address>
# Default password: 1234 (change this!)sudo apt update
sudo apt install -y python3-pip python3-venv librtlsdr-dev gitmkdir ~/rtl-ml && cd ~/rtl-ml
python3 -m venv venv
source venv/bin/activategit clone https://github.com/TrevTron/rtl-ml.git
cd rtl-mlpip install -r requirements.txtrtl_test -t
# Should show: "Found 1 device(s)"
# Press Ctrl+C to stoppython examples/quick_start.py- Minimum: 4GB RAM
- Recommended: 8GB+ RAM
- Same setup steps as Nova
- Use Raspberry Pi OS (64-bit)
- Requires Armbian OS
- Same setup otherwise
- Good performance/price ratio
- Any machine with USB ports
- Ubuntu/Debian recommended
- 8GB+ RAM for training
- 2x telescopic dipoles
- Good for FM/VHF/UHF
- Mount vertically for best results
- Wideband: Discone antenna (25-1300 MHz, $50-100)
- VHF/UHF: J-pole or slim jim ($20-40)
- Budget: Simple wire dipole (free!)
# On Nova:
hostname -I
# From Windows/Mac:
arp -a | findstr "b8-27" # Look for Rockchip MAC prefixEdit /etc/dhcpcd.conf:
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
- 32GB SD card for OS + captured data
- Full dataset: 2GB
- 64GB+ for multiple datasets
- Fast SD card (UHS-I Class 10 minimum)
- 5V 3A USB-C power supply (included)
- RTL-SDR draws power from USB (no external needed)
- Official 5V 3A power supply recommended
- Underpowered supplies cause stability issues
lsusb | grep RTL
# Should show: "Realtek Semiconductor Corp. RTL2838"sudo usermod -a -G plugdev $USER
# Logout and log back inUse ARM-optimized sample rate:
sdr.sample_rate = 1.024e6 # Not 2.4e6!After hardware setup:
- Capture your first dataset:
python src/capture_validated.py - Train your model:
python src/train_validated.py - Classify live signals:
python src/classify_live.py --freq 98.7e6
See main README.md for full tutorial.