Skip to main content

The device decoder catalog

rtl_433 ships with a large library of device decoders — one per supported protocol. Each decoder knows how to turn the demodulated pulses of a particular family of ISM-band devices (a weather station, a tire-pressure sensor, a door remote, an energy meter, and so on) into a structured record. The set of decoders is the heart of the project: the current tree has roughly 320 numbered protocol decoders (run -R help to see the exact list for your version), and it grows with almost every release.

This page explains how that catalog is numbered, how to list it, how to turn individual decoders on and off, and how the numbers relate to the source code.

Bands and hardware

The decoders operate on whatever the radio delivers. rtl_433 is a generic receiver for the 433.92 MHz, 868 MHz (SRD), 315 MHz, 345 MHz, and 915 MHz ISM bands, using RTL-SDR (Realtek RTL2832-based dongles) or, when built with SoapySDR, devices such as LimeSDR, PlutoSDR, and HackRF One.

How the catalog is numbered

Every decoder has a protocol number, shown in square brackets, and a human-readable name:

[01] Silvercrest Remote Control
[02] Rubicson, TFA 30.3197 or InFactory PT-310 Temperature Sensor
[03] Prologue, FreeTec NC-7104, NC-7159-675 temperature sensor
...
[12] Oregon Scientific Weather Sensor
...
[320] Cellular Tracking Technologies LifeTag/PowerTag/HybridTag

The numbered lines above are an illustrative excerpt of the catalog. The authoritative, complete list is whatever your installed binary prints — see Listing the catalog below.

The numbering is positional: protocol N is the N-th decoder registered in the source, and new decoders are usually appended at the end. Protocol numbers are not guaranteed to be stable across releases, though — decoders can be added, removed, or reordered — so confirm a number with -R help for your installed version rather than hard-coding it.

Listing the catalog

The fastest way to see exactly which decoders your build supports — and their numbers — is the -R help form:

rtl_433 -R help

This enumerates the full numbered list and exits. It is the canonical reference, because it reflects the decoders compiled into your binary rather than any external document.

tip

Pipe it through your pager or a search to find a device quickly, for example rtl_433 -R help 2>&1 | grep -i acurite to locate every Acurite decoder and its number.

Enabling and disabling decoders

By default rtl_433 runs every decoder that is enabled by default, so you normally do not need to choose. When you do want to narrow things down, use -R:

FormEffect
-R <n>Enable only decoder n (repeatable to build an allow-list)
-R -<n>Disable decoder n (repeatable)
-R 0Disable all decoders
-R helpPrint the numbered catalog and exit

The man page describes the flag as: "Enable only the specified device decoding protocol (can be used multiple times). Specify a negative number to disable a device decoding protocol (can be used multiple times)."

For example, to listen for only the LaCrosse TX ([08]) and Oregon Scientific ([12]) decoders:

rtl_433 -R 8 -R 12

Or to run everything except a noisy decoder:

rtl_433 -R -11

And to disable all decoders — useful when you only want raw analyzer output:

rtl_433 -R 0 -A
Default-disabled decoders

Some protocols are disabled by default and marked with an asterisk in the catalog listing: "Disabled by default, use -R n or a conf file to enable." These are typically decoders without a message-integrity check (mic), which are prone to excessive false positives. Enable them explicitly with -R n or via a config file when you know the device is present.

For a configuration that persists across runs, the same selections can live in a config file rather than on the command line; see the project's configuration documentation. Note that the old register_all flag (-G) is deprecated"Use -R or a config file to enable additional protocols."

A representative slice of the catalog

The table below pairs a sample of protocol numbers with their decoders, to show the breadth of device categories the catalog covers. The number/name pairs are real; the category column is editorial grouping for orientation.

#DecoderCategory
01Silvercrest Remote ControlRemote control
02Rubicson / TFA 30.3197 temperature sensorTemperature
03Prologue / FreeTec NC-7104 temperature sensorTemperature
08LaCrosse TX temperature/humidityWeather
10Acurite 896 Rain GaugeWeather (rain)
11Acurite 609TXC temperature/humidity sensorTemperature
12Oregon Scientific weather sensorWeather
23DSC security contactSecurity
Verify before you cite

Decoder numbers are positional, so always confirm a number against rtl_433 -R help on the same version you are running rather than trusting a copied list — a decoder added in a later release does not change earlier numbers, but documentation can drift.

How the catalog maps to source

The catalog is auto-documentable: the numbered list, the man page section, and the project website are all generated from a single source of truth — the decoder registration table in include/rtl_433_devices.h. Each decoder is declared there with a DECL(...) entry, and its position in that file is its protocol number. For example, the first entries are silvercrest, rubicson, prologue, waveman, … which is exactly the [01], [02], [03], [04], … order you see in -R help.

Because of this, the catalog is large but mechanical: adding a device means adding a decoder source file and one DECL line, and the numbered listing, help output, and published device list update from there. This is also why the -R help output is the most reliable reference — it is produced from the same table at runtime.

What a decoded record looks like

Every decoder emits records that follow the project's common data format, so output is consistent regardless of which protocol matched:

time : 2026-05-30 14:02:18
model : Acurite-Tower id : 11524
channel : A battery_ok : 1
temperature_C : 21.3 humidity : 47

Illustrative output — exact fields depend on the device.

The model field is formatted <Manufacturer>-<Model>, and the optional mic field reports the integrity check the decoder used (CRC, CHECKSUM, or PARITY). Decoders without a mic are the ones most often disabled by default. See the data-format documentation for the full field list.

Sources