rtl-sdr-scanner-cpp  by shajen

C++ SDR scanner for recording multiple frequencies

created 4 years ago
709 stars

Top 49.3% 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

8 months ago

Responsiveness

1 week

Pull Requests (30d)
0
Issues (30d)
2
Star History
17 stars in the last 90 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), Andre Zayarni Andre Zayarni(Cofounder of Qdrant), and
2 more.

RealChar by Shaunwei

0.1%
6k
Real-time AI character/companion creation and interaction codebase
created 2 years ago
updated 1 year ago
Feedback? Help us improve.