Installing rtl_433
This page is generated by techwriter.ai from a real, open-source project:
rtl_433 by merbanan and contributors.
rtl_433 is "a generic data receiver, mainly for the 433.92 MHz, 868 MHz (SRD),
315 MHz, 345 MHz, and 915 MHz ISM bands." It is a C99 command-line program that
decodes the short, low-power radio packets broadcast by everyday devices —
weather stations, tyre-pressure sensors, energy meters, remote thermometers, and
hundreds of others — using a software-defined radio (SDR) as the front end.
It runs on Linux (including embedded targets), FreeBSD, macOS, and Windows. The receiver can talk to hardware in two ways:
| Backend | Hardware it covers |
|---|---|
| librtlsdr | RTL-SDR — Realtek RTL2832-based DVB-T dongles |
| SoapySDR | LimeSDR USB / mini, PlutoSDR, HackRF One, SoapyRemote, and more |
techwriter.ai watches the rtl_433 repository and writes these docs. This page
covers getting the binary onto your machine, either from a package manager or by
building it from source as described in the upstream
docs/BUILDING.md.
Option 1: Install from a package manager
The fastest path is a prebuilt package. These come from upstream documentation
and may lag the latest master, but they are ideal for a first run.
# Debian / Ubuntu
sudo apt install rtl-433
# macOS (Homebrew)
brew install rtl_433
# FreeBSD
pkg install rtl-433
Docker images are also published by the community (hertzg's images on GitHub).
Use a package to get going quickly. Build from source when you need the newest decoders (the device list grows fast), SoapySDR support, or a build tuned for an embedded target.
Option 2: Build from source
The following steps mirror docs/BUILDING.md from the repository. The core build
dependencies are cmake (build system), libusb (USB access), and at least
one SDR library — librtlsdr for RTL-SDR dongles and optionally SoapySDR
for the wider hardware set.
Step 1 — Install dependencies
# Debian / Ubuntu
sudo apt-get install libtool libusb-1.0-0-dev librtlsdr-dev rtl-sdr \
build-essential cmake pkg-config
# CentOS / Fedora / RHEL
sudo dnf install libtool libusb1-devel rtl-sdr-devel rtl-sdr cmake
# macOS (Homebrew)
brew install rtl-sdr cmake pkg-config
# macOS (MacPorts)
sudo port install rtl-sdr cmake
TLS lets rtl_433 push output to TLS-enabled MQTT/network sinks. To enable it,
add the OpenSSL development package to the commands above:
libssl-dev on Debian/Ubuntu, openssl-devel on Fedora/RHEL, or openssl on
Homebrew.
Step 2 — Clone the repository
git clone https://github.com/merbanan/rtl_433.git
cd rtl_433/
Step 3 — Configure and build with cmake
For CMake 3.13 or newer, use the -B build out-of-tree syntax:
cmake -B build
cmake --build build --target install
A faster build using Ninja, with colored output and four parallel jobs:
cmake -DFORCE_COLORED_BUILD:BOOL=ON -GNinja -B build
cmake --build build -j 4
cmake --build build --target install
To install system-wide (a privileged path such as /usr/local), run the install
target under sudo:
sudo cmake --build build --target install
Enabling SoapySDR
SoapySDR support is auto-detected by default (it builds in if SoapySDR is found).
Force it on at configure time so rtl_433 can drive LimeSDR, PlutoSDR, HackRF,
and other Soapy-backed radios:
cmake -DENABLE_SOAPYSDR=ON -B build
- CMake older than 3.13 does not support
-B build. Configure from inside a build directory instead:mkdir build ; cd build ; cmake .. && cmake --build .On CMake 3.6 or older, also disable OpenSSL:cmake -DENABLE_OPENSSL=NO .. - SoapySDR is sensitive to mixed versions. Do not mix 0.7 and 0.8; if you hit errors, reinstall SoapySDR cleanly from a single source.
Verify the install
Plug in your SDR dongle and run the binary with no arguments. By default
rtl_433 "uses the first device found, listens at 433.92 MHz at a 250k sample
rate":
rtl_433
You can point it at a different band and sample rate. The example below listens at 868 MHz with a 1024k sample rate:
# Illustrative example — adjust frequency and rate to your region/devices
rtl_433 -f 868M -s 1024k
To print the version string and exit without any hardware attached, use -V:
rtl_433 -V
To list the built-in device decoding protocols, pass -R with no argument:
rtl_433 -R help
When a supported device transmits nearby, decoded packets print to the console. From there you can switch to structured output (for example JSON) and forward readings to MQTT, InfluxDB, or syslog — covered on the integration pages.
Sources
README.md— project overview, supported bands and hardware, package installs, quick startdocs/BUILDING.md— dependencies, cmake/Ninja build steps, SoapySDR and TLS options, version notes- triq.org/rtl_433 — project home, install options, default receive behavior
merbanan/rtl_433repository — source, issue tracker, and decoder list