Skip to main content

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:

BackendHardware it covers
librtlsdrRTL-SDR — Realtek RTL2832-based DVB-T dongles
SoapySDRLimeSDR USB / mini, PlutoSDR, HackRF One, SoapyRemote, and more
Why this page exists

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).

Package vs. source

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
Optional TLS support

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
Version pitfalls
  • 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 start
  • docs/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_433 repository — source, issue tracker, and decoder list