| Hardware | Frequency Range | Price | Notes |
|---|---|---|---|
| RTL-SDR | 24 - 1766 MHz | ~$25-35 | Recommended for beginners |
| LimeSDR | 0.1 - 3800 MHz | ~$300 | Wide range, requires SoapySDR |
| HackRF | 1 - 6000 MHz | ~$300 | Ultra-wide range, requires SoapySDR |
INTERCEPT automatically detects connected devices.
# Install Homebrew if needed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Core tools (required)
brew install python@3.11 librtlsdr multimon-ng rtl_433 ffmpeg
# ADS-B aircraft tracking
brew install dump1090-mutability
# WiFi tools (optional)
brew install aircrack-ng
# LimeSDR support (optional)
brew install soapysdr limesuite soapylms7
# HackRF support (optional)
brew install hackrf soapyhackrf# Update package lists
sudo apt update
# Core tools (required)
sudo apt install -y python3 python3-pip python3-venv python3-skyfield
sudo apt install -y rtl-sdr multimon-ng rtl-433 ffmpeg
# ADS-B aircraft tracking
sudo apt install -y dump1090-mutability
# Alternative: dump1090-fa (FlightAware version)
# WiFi tools (optional)
sudo apt install -y aircrack-ng
# Bluetooth tools (optional)
sudo apt install -y bluez bluetooth
# LimeSDR support (optional)
sudo apt install -y soapysdr-tools limesuite soapysdr-module-lms7
# HackRF support (optional)
sudo apt install -y hackrf soapysdr-module-hackrfIf your RTL-SDR isn't detected, create udev rules:
sudo bash -c 'cat > /etc/udev/rules.d/20-rtlsdr.rules << EOF
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2832", MODE="0666"
EOF'
sudo udevadm control --reload-rules
sudo udevadm triggerThen unplug and replug your RTL-SDR.
The default DVB-T driver conflicts with rtl-sdr:
echo "blacklist dvb_usb_rtl28xxu" | sudo tee /etc/modprobe.d/blacklist-rtl.conf
sudo modprobe -r dvb_usb_rtl28xxupython3 intercept.py --check-deps# RTL-SDR
rtl_test
# LimeSDR/HackRF (via SoapySDR)
SoapySDRUtil --find./setup.shThis automatically:
- Detects your OS
- Creates a virtual environment if needed (for PEP 668 systems)
- Installs Python dependencies
- Checks for required tools
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtAfter installation:
sudo -E venv/bin/python intercept.py
# Custom port
INTERCEPT_PORT=8080 sudo -E venv/bin/python intercept.pyOpen http://localhost:5050 in your browser.
| Tool | Package (Debian) | Package (macOS) | Required For |
|---|---|---|---|
rtl_fm |
rtl-sdr | librtlsdr | Pager, Listening Post |
rtl_test |
rtl-sdr | librtlsdr | SDR detection |
multimon-ng |
multimon-ng | multimon-ng | Pager decoding |
rtl_433 |
rtl-433 | rtl_433 | 433MHz sensors |
dump1090 |
dump1090-mutability | dump1090-mutability | ADS-B tracking |
ffmpeg |
ffmpeg | ffmpeg | Listening Post audio |
airmon-ng |
aircrack-ng | aircrack-ng | WiFi monitor mode |
airodump-ng |
aircrack-ng | aircrack-ng | WiFi scanning |
aireplay-ng |
aircrack-ng | aircrack-ng | WiFi deauth (optional) |
hcitool |
bluez | N/A | Bluetooth scanning |
bluetoothctl |
bluez | N/A | Bluetooth control |
hciconfig |
bluez | N/A | Bluetooth config |
| Tool | Package (Debian) | Package (macOS) | Purpose |
|---|---|---|---|
ffmpeg |
ffmpeg | ffmpeg | Alternative audio encoder |
SoapySDRUtil |
soapysdr-tools | soapysdr | LimeSDR/HackRF support |
LimeUtil |
limesuite | limesuite | LimeSDR native tools |
hackrf_info |
hackrf | hackrf | HackRF native tools |
| Package | Purpose |
|---|---|
flask |
Web server |
skyfield |
Satellite tracking |
bleak |
BLE scanning with manufacturer data (TSCM) |
dump1090-mutability- Most commondump1090-fa- FlightAware version (recommended)dump1090- Generic
Install FlightAware's version: https://flightaware.com/adsb/piaware/install
Or build from source: https://github.com/flightaware/dump1090
TSCM (Technical Surveillance Countermeasures) mode requires specific hardware for full functionality:
- Any Bluetooth adapter supported by your OS
bleakPython library for manufacturer data detection- Detects: AirTags, Tile, SmartTags, ESP32/ESP8266 devices
# Install bleak
pip install bleak>=0.21.0
# Or via apt (Debian/Ubuntu)
sudo apt install python3-bleak- RTL-SDR dongle (required for RF sweeps)
rtl_powercommand fromrtl-sdrpackage
Frequency bands scanned:
| Band | Frequency | Purpose |
|---|---|---|
| FM Broadcast | 88-108 MHz | FM bugs |
| 315 MHz ISM | 315 MHz | US wireless devices |
| 433 MHz ISM | 433-434 MHz | EU wireless devices |
| 868 MHz ISM | 868-869 MHz | EU IoT devices |
| 915 MHz ISM | 902-928 MHz | US IoT devices |
| 1.2 GHz | 1200-1300 MHz | Video transmitters |
| 2.4 GHz ISM | 2400-2500 MHz | WiFi/BT/Video |
# Linux
sudo apt install rtl-sdr
# macOS
brew install librtlsdr- Standard WiFi adapter (managed mode for basic scanning)
- Monitor mode capable adapter for advanced features
aircrack-ngsuite for monitor mode management
- Bluetooth on macOS: Uses bleak library (CoreBluetooth backend), bluez tools not needed
- WiFi on macOS: Monitor mode has limited support, full functionality on Linux
- System tools:
iw,iwconfig,rfkill,ipare pre-installed on most Linux systems - TSCM on macOS: BLE and WiFi scanning work; RF spectrum requires RTL-SDR