rtl-sdr-scanner-cpp  by shajen

C++ SDR scanner for recording multiple frequencies

Created 4 years ago
721 stars

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

10 months ago

Responsiveness

Inactive

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

Explore Similar Projects

Starred by Gregor Zunic Gregor Zunic(Cofounder of Browser Use), Eric Zhu Eric Zhu(Coauthor of AutoGen; Research Scientist at Microsoft Research), and
14 more.

openllmetry by traceloop

0.4%
6k
Open-source observability SDK for LLM applications
Created 2 years ago
Updated 17 hours ago
Feedback? Help us improve.