HivePaaS
Docker Swarm 기반 오픈소스 자체 호스팅 PaaS, SSL·백업·자동 확장 지원
댓글을 불러오는 중입니다.
로그인 상태를 확인하는 중입니다.
Wideband SDR scanner that records only real transmissions. Browser UI for local use or a headless receiver, searchable library, optional Whisper transcription. RTL-SDR and SoapySDR. Linux, Windows and macOS.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A wideband radio scanner for SDR receivers that records only the transmissions it actually stops on - no hours of empty noise, no retuning clicks. Point it at any band (aviation, marine, PMR, ham repeaters, public services, military UHF…) and get a searchable library of conversations.
It runs in your web browser: on the computer the SDR is plugged into, or as a headless receiver you listen to from any phone or PC on your network.
You can try UI and UX also in virtual ether (simulated transmissions) before downloading: the real interface on a simulated receiver at falconsdr.com.
Listening to and recording some radio services is restricted or illegal in many countries - see Legal.
Scanning
Listening
Recording
Recordings library
large-v3, for every language - an
English aviation model can be added in the settings, and fixing the language
skips its detection). It can run on a
different, faster computer than the one scanning; see
what it needs.Server and multiple computers
--server mode for a small always-on Linux receiver (mini PC, home
server, container).| Receiver | How |
|---|---|
| RTL-SDR (incl. RTL-SDR Blog V3/V4) | built in on Linux, Windows and macOS |
| HackRF, Airspy | built in on Windows, .deb, .rpm, AppImage and (since 1.4.1) macOS (experimental) |
| SDRplay, LimeSDR, USRP, … | through SoapySDR, Linux source install (not tested) |
An RTL-SDR is opened through librtlsdr; on Linux from source also through
SoapySDR - choose under SDR device → Access method. HackRF and Airspy work
through the bundled libhackrf / libairspy (experimental: confirmed on a
real HackRF One, untested on an Airspy; pick Access method → libhackrf /
libairspy); on Linux from source they work
through SoapySDR with the matching
module, or through the same built-in access once libhackrf0 / libairspy0
are installed.
HackRF captures 2-20 MHz (the default 2.4 MHz is the safest start); an Airspy only the fixed widths its board has (for instance 2.5 and 10 MHz on an Airspy R2), and FalconSDR picks the nearest. A wider capture needs more processor - on a 4-core mini PC about 1, 8 and 19 ms of every 30 ms block go to the spectrum at 2.4, 10 and 20 MHz, plus 2, 9 and 17 ms for each transmission being recorded. The macOS builds carry the HackRF/Airspy libraries since 1.4.1 (untested on a real Mac).
Developed and tested with an RTL-SDR Blog V4 on Linux and Windows 11. A HackRF One has been checked on Linux (10 MHz capture; SoapySDR and libhackrf both scan, libhackrf reported no lost samples) by phutch in issue #9 - thank you. Other receivers and macOS (experimental builds) should work but haven't been tested yet - reports are welcome.
Testing a receiver: stop the scanner and run falconsdr --probe-sdr
(from source: python main.py --probe-sdr; add hackrf_native / hackrf /
airspy_native / airspy to pick the way it is opened; on Windows the output
goes to %USERPROFILE%\.config\FalconSDR\falconsdr.log). It measures the
gain steps, the DC spike, how many blocks after a retune still hold the old
frequency, and sample losses, and prints one RESULT {...}
line - please paste it into an issue together with your receiver's model.
Any antenna works; one cut or tuned for the band you scan works much better.
Scanning and recording are light - a small mini PC runs them fine. The figures below are only for the optional speech-to-text (it can also run on another computer, see Headless receiver). Pick the model in Settings → Whisper models.
| Model | RAM (GPU: VRAM) | Word errors, clean / noisy radio |
|---|---|---|
small - smallest usable | 1.4 GB (0.8 GB) | 30 % / 51 % |
medium - best without a GPU | 3.2 GB (1.4 GB) | 23 % / 44 % |
large-v3 - default | 3.9 GB (3.3 GB) | 21 % / 38 % |
How long transcribing takes, as a multiple of the recording's length, for short ~6 s recordings (at 2× it keeps up as long as you record less than about 30 minutes of audio per hour):
| Model | Mini PC, 4 threads* | Desktop, 8 threads† | Desktop, 24 threads† | Nvidia GPU‡ |
|---|---|---|---|---|
small | 1.0× | 0.5× | 0.3× | 0.03× |
medium | 2.9× | 1.1× | 0.7× | 0.06× |
large-v3 | 6.0× | 2.1× | 1.2× | 0.08× |
tiny and base are not usable (45-90 % errors). On a CPU turbo is no
faster than large-v3.*ThinkCentre mini PC, 4-core i5-6500T, 1 transcription thread. †Ryzen 9
3900X limited to 4 and 20 transcription threads; a slower CPU will be slower.
‡RTX 2070 SUPER. Without language detection (adds ~80 %). Short recordings
are the slower case per second of audio: nine longer ones (13 s to 7 min)
ran up to 2× faster (the mini PC: small 0.44×, medium 1.0×), but needed
more memory (medium peaked at 3.2 GB on the 7-minute one). Rough figures,
one run each.
Detects your distribution and installs the matching package:
curl -fsSL https://raw.githubusercontent.com/rafafunt/FalconSDR/master/packaging/install.sh | bash
Debian/Ubuntu get the .deb, Fedora/openSUSE the .rpm, Arch the AUR
package, anything else the AppImage. Add --from-source to install from a
git checkout instead: the way to get SoapySDR support (LimeSDR, SDRplay,
USRP, …, and HackRF/Airspy through SoapySDR instead of the built-in access)
and the fallback for other CPU architectures or musl distros such as Alpine.
The built-in HackRF/Airspy access needs their system libraries, which a source
install does not bring along: add --with-sdr-libs (installs libhackrf0 and
libairspy0 with apt, or hackrf and airspyone_host with dnf, using sudo):
curl -fsSL … | bash -s -- --from-source --with-sdr-libs.
Download the .deb from Releases and install it:
sudo apt install ./falconsdr_<version>_amd64.deb
Start FalconSDR from the application menu. Unplug and replug the dongle once after installing - the package adds a udev rule for USB access and stops the DVB-T TV driver from taking the dongle.
This package is self-contained (RTL-SDR, plus HackRF and Airspy natively - experimental; no Python needed). For SoapySDR devices, run from source instead.
Download the .rpm from Releases and install it:
sudo dnf install ./falconsdr-<version>-1.<arch>.rpm
Same self-contained bundle and the same udev/DVB-T handling as the .deb;
replug the dongle once after installing. Needs glibc 2.38+ (current
Fedora / openSUSE Tumbleweed); RHEL/Rocky 9 are too old for this build -
run from source there instead.
yay -S falconsdr
(repackages the official release build; maintained by @9M2PJU).
Download FalconSDR-<version>-<arch>.AppImage from
Releases, make it executable and run it - no install, no
root:
chmod +x FalconSDR-*.AppImage
./FalconSDR-*.AppImage
One manual step on a machine with no RTL-SDR software installed yet: copy
packaging/linux-deb/60-rtl-sdr.rules to /etc/udev/rules.d/, reload udev
and replug the dongle (the .deb/.rpm do this for you).
Download from Releases either
FalconSDR-<version>-windows-x64-setup.exe (installs for your user, no
administrator rights needed) or FalconSDR-<version>-windows-x64-portable.zip
(unzip anywhere and run falconsdr.exe). Both are self-contained - no Python
needed; MP3 recording works out of the box and transcription installs from
Settings like in any other install. The program is not code-signed yet: if
SmartScreen says "Windows protected your PC", choose More info → Run
anyway.
RTL-SDR driver: Windows needs the WinUSB driver on the dongle, installed once with Zadig. If SDR++, SDR# or another SDR program already works with your dongle, it's already done. Otherwise: plug in the dongle → run Zadig → Options → List All Devices → pick "Bulk-In, Interface (Interface 0)" (or "RTL2838UHIDIR"; not Interface 1) → target driver WinUSB → Replace Driver → replug the dongle. The same steps are in the app (Listen → SDR device). A HackRF or Airspy may need the same driver step; the built-in access to them is untested on Windows with real hardware.
FalconSDR runs in the background with its interface in the browser; quit it in Settings → Advanced. "Start with the system" is there too (off by default).
Download FalconSDR-<version>-macos-arm64-experimental.zip (Apple Silicon:
M1 and newer) or …-macos-x86_64-… (Intel Macs) from
Releases, unzip it and move FalconSDR to Applications.
These builds are made automatically and pass the same self-test as the other
packages, but haven't been tried on a real Mac with an SDR yet - feedback in
Discussions is very welcome.
The app isn't signed by Apple. The first time, right-click it → Open (or System Settings → Privacy & Security → Open Anyway). If macOS says the app "is damaged", that's the same missing signature; clear the download flag in Terminal:
xattr -dr com.apple.quarantine /Applications/FalconSDR.app
An RTL-SDR needs no extra driver on macOS. Builds since 1.4.1 also carry the HackRF and Airspy libraries (built-in access, experimental); they only check that the libraries load - no real Mac with a HackRF or Airspy has tried them.
Requires Python 3.10+.
git clone https://github.com/rafafunt/FalconSDR.git
cd FalconSDR
python3 -m venv --system-site-packages .venv # lets the venv see python3-soapysdr (Linux)
.venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip ...
.venv/bin/python main.py # Windows: .venv\Scripts\python main.py
The interface opens at http://127.0.0.1:8765. To update: git pull, run the
pip install line again and restart (or run the one-liner with
--from-source again from the folder above FalconSDR/).
rtl-sdr package (udev rules) or copy packaging/linux-deb/60-rtl-sdr.rules
to /etc/udev/rules.d/. For SoapySDR devices install python3-soapysdr and
the device's soapysdr-module-* (e.g. sudo apt install python3-soapysdr soapysdr-module-hackrf); the venv must be created with
--system-site-packages, as above, or it cannot see them. HackRF and Airspy
can also be opened without SoapySDR (experimental, SDR device → Access
method; the Windows, .deb, .rpm and AppImage builds already carry the libraries):
sudo apt install libhackrf0 libairspy0, or run the one-line installer with
--with-sdr-libs.imageio-ffmpeg
package (or a system ffmpeg on PATH); on platforms without a wheel
(32-bit ARM) install ffmpeg from the system, otherwise recordings stay WAV.Quit FalconSDR, then install the newer .deb, .rpm or Windows installer over
the old one - settings, channels, favorites and recordings are kept. Start it
again afterwards (a copy left running through the update shows errors). An
AppImage is replaced by downloading the new one. A source install is updated
by running the --from-source line again from the folder that holds
FalconSDR/ (it pulls the checkout and refreshes the venv), or by git pull
in the checkout and the pip install line; the headless receiver, by its own
line again (see below). Remove with sudo apt remove falconsdr, sudo dnf remove falconsdr or Windows Settings → Apps; your
recordings and settings stay on disk (see
Where things are stored).
On a Linux machine with the SDR attached (Debian, Ubuntu, Raspberry Pi OS):
curl -fsSL https://raw.githubusercontent.com/rafafunt/FalconSDR/master/packaging/install.sh | bash -s -- --server
It installs the latest release as a service that starts on boot and ends
with the address to open from any device on your network
(http://<receiver-ip>:8765). Run the same line again to update - settings
and recordings are kept. Details, other versions and helper computers for
transcription: packaging/remote-server/README.md.
It also installs libhackrf0 and libairspy0 (small), so a HackRF or Airspy
works through the built-in access without extra steps. The service sees the system's SoapySDR: sudo apt install python3-soapysdr soapysdr-module-<your receiver> and restart it (sudo systemctl restart falconsdr-receiver), then pick the access method under SDR device.
falconsdr for the installed packages (Windows: falconsdr.exe in its install
folder), python main.py from source:
falconsdr local mode: scan on this computer, UI on 127.0.0.1:8765
falconsdr --server reachable from the whole network
falconsdr --start start scanning right away
falconsdr --local scan locally even if this computer is set up as a client of a server
falconsdr --port 9000 another port
falconsdr --no-browser don't open the browser
falconsdr --version show the version
falconsdr --self-test check this install has everything it needs
falconsdr --probe-sdr measure the receiver with the scanner stopped (see Hardware)
| What | Where |
|---|---|
| Settings, channels, blacklist | ~/.config/FalconSDR/ |
| Recordings (default, changeable) | ~/FalconSDR/recordings/, one folder per day |
| Quality scores, transcripts, favorites | ~/.local/share/FalconSDR/ |
(~ is your home folder, also on Windows.)
libhackrf / libairspy library (sudo apt install libhackrf0 libairspy0, Fedora:
sudo dnf install hackrf airspyone_host, or the installer's --with-sdr-libs). If one way to open a receiver
fails, try the other under SDR device → Access method.falconsdr/locale/pl.po; a new language is a copy of that file (see
falconsdr/i18n.py).AGENTS.md describes the architecture
and the pitfalls already hit once. Tests: python -m unittest tests/test_core.py.The laws on radio monitoring differ a lot between countries. In some places you may listen to most bands but not record or share what you hear; in others even listening to non-public services (aviation, police, emergency services, military) is forbidden. Check what applies where you live before you scan, and especially before you record or publish anything - you alone are responsible for how you use this program.
GPL-3.0-or-later (see LICENSE) - required by pyrtlsdr and the
bundled librtlsdr. The Windows, Linux and (since 1.4.1) macOS packages list every bundled component
and its license in THIRD-PARTY-LICENSES.txt (ffmpeg in them is a GPLv3
build; libhackrf and libairspy are BSD-3-Clause, libusb LGPL-2.1).
Transcription software and Whisper models are not bundled: they are
downloaded on the user's own request from their publishers (faster-whisper,
CTranslate2 and the default model Systran/faster-whisper-large-v3 are MIT-licensed, as
is the optional English aviation model jacktol/whisper-medium.en-fine-tuned-for-ATC-faster-whisper).
Neither is the digital voice decoder: on request, the app downloads
dsd-fme and
mbelib from their authors (the
authors' Windows build; source compiled on the user's machine elsewhere) and
runs dsd-fme as a separate program.