rtl-sdr-scanner-cpp  by shajen

C++ SDR scanner for recording multiple frequencies

Created 4 years ago
749 stars

Top 46.4% on SourcePulse

GitHubView on GitHub
Project Summary

This C++ project provides a real-time Software Defined Radio (SDR) scanner capable of simultaneously monitoring and recording multiple frequency bands across supported devices like RTL-SDR and HackRF. It targets radio enthusiasts and researchers needing to capture diverse transmissions efficiently, offering a web-based interface for exploring recorded data and spectrograms.

How It Works

The scanner rapidly switches between user-defined frequency ranges, enabling simultaneous recording of transmissions within the same band. It employs a noise learning phase to establish a baseline and a "torn transmission" detection mechanism to avoid incomplete recordings. The system is designed for distributed deployment, allowing modules to run on separate machines.

Quick Start & Requirements

  • Install: Clone the repository and run docker compose up.
  • Prerequisites: Docker and Docker Compose. Blacklisting of host RTL-SDR kernel modules is required for RTL-SDR devices.
  • Resources: Requires a powerful PC, especially for higher sample rates (e.g., 40 MB/s with HackRF at 20 MHz). Raspberry Pi is not recommended for real-time processing due to performance limitations.
  • Links: YouTube Introduction, Sample Data, Docker Hub

Highlighted Details

  • Supports RTL-SDR and HackRF devices.
  • Features a web panel for spectrograms and recordings (accessible at http://localhost:8000).
  • Allows configuration of PPM error, tuner gain, ignored frequencies, and custom FFT sizes.
  • Supports scanning multiple frequency ranges and using multiple SDR devices simultaneously.

Maintenance & Community

  • The project is maintained by shajen.
  • Contributions are welcomed via pull requests.
  • Donations are accepted via Revolut and PayPal.

Licensing & Compatibility

  • License: GPLv3.
  • Compatibility: The GPLv3 license may impose copyleft restrictions on derivative works, potentially impacting commercial or closed-source integrations.

Limitations & Caveats

The noise learning phase might miss transmissions active during the initial learning period. Performance on low-power devices like Raspberry Pi is significantly limited due to high data processing demands.

Health Check
Last Commit

1 month ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
4 stars in the last 30 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Gregor Zunic Gregor Zunic(Cofounder of Browser Use), and
15 more.

openllmetry by traceloop

0.4%
7k
Open-source observability SDK for LLM applications
Created 2 years ago
Updated 3 days ago
Feedback? Help us improve.