1RTL_433(1)                     rtl_433 Commands                     RTL_433(1)
2
3
4

NAME

6       rtl_433 - Generic RF data receiver and decoder for ISM band devices
7       using RTL-SDR and SoapySDR.
8

DESCRIPTION

10       This manual page documents briefly the rtl_433 command.
11
12       rtl_433 is a generic data receiver, mainly for the 433.92 MHz, 868 MHz
13       (SRD), 315 MHz, and 915 MHz ISM bands. It works with RTL-SDR and/or
14       SoapySDR. Actively tested and supported are Realtek RTL2832 based DVB
15       dongles (using RTL-SDR) and LimeSDR (LimeSDR USB and LimeSDR mini
16       engineering samples kindly provided by MyriadRf), PlutoSDR, HackRF One
17       (using SoapySDR drivers), as well as SoapyRemote.
18

SYNOPSIS

20       rtl_433 [OPTION]... FILE...
21

OPTIONS

23       A summary of options is included below. Detailed information on some
24       options follows.
25
26   General options
27       [ -V ] Output the version string and exit
28
29       [ -v ] Increase verbosity (can be used multiple times).
30                     -v : verbose, -vv : verbose decoders, -vvv : debug
31              decoders, -vvvv : trace decoding).
32
33       [ -c <path> ]
34              Read config options from a file
35
36   Tuner options
37       [ -d <RTL-SDR USB device index> | :<RTL-SDR USB device serial> |
38       <SoapySDR device query> | rtl_tcp | help ]
39              [-g <gain> | help] (default: auto)
40
41       [ -t <settings> ]
42              apply a list of keyword=value settings for SoapySDR devices
43                     e.g. -t "antenna=A,bandwidth=4.5M,rfnotch_ctrl=false"
44
45       [ -f <frequency> ]
46              Receive frequency(s) (default: 433920000 Hz)
47
48       [ -H <seconds> ]
49              Hop interval for polling of multiple frequencies (default: 600
50              seconds)
51
52       [ -p <ppm_error> ]
53              Correct rtl-sdr tuner frequency offset error (default: 0)
54
55       [ -s <sample rate> ]
56              Set sample rate (default: 250000 Hz)
57
58   Demodulator options
59       [ -R <device> | help ]
60              Enable only the specified device decoding protocol (can be used
61              multiple times)
62                     Specify a negative number to disable a device decoding
63              protocol (can be used multiple times)
64
65       [ -X <spec> | help ]
66              Add a general purpose decoder (prepend -R 0 to disable all
67              decoders)
68
69       [ -Y auto | classic | minmax ]
70              FSK pulse detector mode.
71
72       [ -Y level=<dB level> ]
73              Manual detection level used to determine pulses (-1.0 to -30.0)
74              (0=auto).
75
76       [ -Y minlevel=<dB level> ]
77              Manual minimum detection level used to determine pulses (-1.0 to
78              -99.0).
79
80       [ -Y minsnr=<dB level> ]
81              Minimum SNR to determine pulses (1.0 to 99.0).
82
83       [ -Y autolevel ]
84              Set minlevel automatically based on average estimated noise.
85
86       [ -Y squelch ]
87              Skip frames below estimated noise level to reduce cpu load.
88
89       [ -Y ampest | magest ]
90              Choose amplitude or magnitude level estimator.
91
92   Analyze/Debug options
93       [ -a ] Analyze mode. Print a textual description of the signal.
94
95       [ -A ] Pulse Analyzer. Enable pulse analysis and decode attempt.
96                     Disable all decoders with -R 0 if you want analyzer
97              output only.
98
99       [ -y <code> ]
100              Verify decoding of demodulated test data (e.g. "{25}fb2dd58")
101              with enabled devices
102
103   File I/O options
104       [ -S none | all | unknown | known ]
105              Signal auto save. Creates one file per signal.
106                     Note: Saves raw I/Q samples (uint8 pcm, 2 channel).
107              Preferred mode for generating test files.
108
109       [ -r <filename> | help ]
110              Read data from input file instead of a receiver
111
112       [ -w <filename> | help ]
113              Save data stream to output file (a '-' dumps samples to stdout)
114
115       [ -W <filename> | help ]
116              Save data stream to output file, overwrite existing file
117
118   Data output options
119       [ -F kv | json | csv | mqtt | influx | syslog | trigger | null | help ]
120              Produce decoded output in given format.
121                     Append output to file with :<filename> (e.g. -F
122              csv:log.csv), defaults to stdout.
123                     Specify host/port for syslog with e.g. -F
124              syslog:127.0.0.1:1514
125
126       [ -M time[:<options>] | protocol | level | noise[:secs] | stats | bits
127       | help ]
128              Add various meta data to each output.
129
130       [ -K FILE | PATH | <tag> | <key>=<tag> ]
131              Add an expanded token or fixed tag to every output line.
132
133       [ -C native | si | customary ]
134              Convert units in decoded output.
135
136       [ -n <value> ]
137              Specify number of samples to take (each sample is an I/Q pair)
138
139       [ -T <seconds> ]
140              Specify number of seconds to run, also 12:34 or 1h23m45s
141
142       [ -E hop | quit ]
143              Hop/Quit after outputting successful event(s)
144
145       [ -h ] Output this usage help and exit
146                     Use -d, -g, -R, -X, -F, -M, -r, -w, or -W without
147              argument for more help
148
149   Input device selection
150              RTL-SDR device driver is available.
151
152       [ -d <RTL-SDR USB device index> ]
153              (default: 0)
154
155       [ -d :<RTL-SDR USB device serial (can be set with rtl_eeprom -s)> ]
156              To set gain for RTL-SDR use -g <gain> to set an overall gain in
157              dB.
158              SoapySDR device driver is available.
159
160       [ -d "" ]
161              Open default SoapySDR device
162
163       [ -d driver=rtlsdr ]
164              Open e.g. specific SoapySDR device
165              To set gain for SoapySDR use -g ELEM=val,ELEM=val,... e.g. -g
166              LNA=20,TIA=8,PGA=2 (for LimeSDR).
167
168       [ -d rtl_tcp[:[//]host[:port] ]
169              (default: localhost:1234)
170              Specify host/port to connect to with e.g. -d
171              rtl_tcp:127.0.0.1:1234
172
173   Gain option
174       [ -g <gain> ]
175              (default: auto)
176              For RTL-SDR: gain in dB ("0" is auto).
177              For SoapySDR: gain in dB for automatic distribution ("" is
178              auto), or string of gain elements.
179              E.g. "LNA=20,TIA=8,PGA=2" for LimeSDR.
180
181   Flex decoder spec
182       Use -X <spec> to add a flexible general purpose decoder.
183
184       <spec> is "key=value[,key=value...]" Common keys are:
185              name=<name> (or: n=<name>)
186              modulation=<modulation> (or: m=<modulation>)
187              short=<short> (or: s=<short>)
188              long=<long> (or: l=<long>)
189              sync=<sync> (or: y=<sync>)
190              reset=<reset> (or: r=<reset>)
191              gap=<gap> (or: g=<gap>)
192              tolerance=<tolerance> (or: t=<tolerance>)
193              priority=<n> : run decoder only as fallback
194       where: <name> can be any descriptive name tag you need in the output
195       <modulation> is one of:
196              OOK_MC_ZEROBIT :  Manchester Code with fixed leading zero bit
197              OOK_PCM :         Non Return to Zero coding (Pulse Code)
198              OOK_RZ :          Return to Zero coding (Pulse Code)
199              OOK_PPM :         Pulse Position Modulation
200              OOK_PWM :         Pulse Width Modulation
201              OOK_DMC :         Differential Manchester Code
202              OOK_PIWM_RAW :    Raw Pulse Interval and Width Modulation
203              OOK_PIWM_DC :     Differential Pulse Interval and Width
204              Modulation
205              OOK_MC_OSV1 :     Manchester Code for OSv1 devices
206              FSK_PCM :         FSK Pulse Code Modulation
207              FSK_PWM :         FSK Pulse Width Modulation
208              FSK_MC_ZEROBIT :  Manchester Code with fixed leading zero bit
209       <short>, <long>, <sync> are nominal modulation timings in us, <reset>,
210       <gap>, <tolerance> are maximum modulation timings in us: PCM/RZ  short:
211       Nominal width of pulse [us]
212                long: Nominal width of bit period [us] PPM     short: Nominal
213       width of '0' gap [us]
214                long: Nominal width of '1' gap [us] PWM     short: Nominal
215       width of '1' pulse [us]
216                long: Nominal width of '0' pulse [us]
217                sync: Nominal width of sync pulse [us] (optional) common
218       gap: Maximum gap size before new row of bits [us]
219               reset: Maximum gap size before End Of Message [us]
220           tolerance: Maximum pulse deviation [us] (optional). Available
221       options are:
222              bits=<n> : only match if at least one row has <n> bits
223              rows=<n> : only match if there are <n> rows
224              repeats=<n> : only match if some row is repeated <n> times
225                   use opt>=n to match at least <n> and opt<=n to match at
226              most <n>
227              invert : invert all bits
228              reflect : reflect each byte (MSB first to MSB last)
229              match=<bits> : only match if the <bits> are found
230              preamble=<bits> : match and align at the <bits> preamble
231                   <bits> is a row spec of {<bit count>}<bits as hex number>
232              unique : suppress duplicate row output
233
234              countonly : suppress detailed row output
235
236       E.g. -X
237       "n=doorbell,m=OOK_PWM,s=400,l=800,r=7000,g=1000,match={24}0xa9878c,repeats>=3"
238
239   Output format option
240       [ -F kv|json|csv|mqtt|influx|syslog|trigger|null ]
241              Produce decoded output in given format.
242              Without this option the default is KV output. Use "-F null" to
243              remove the default.
244              Append output to file with :<filename> (e.g. -F csv:log.csv),
245              defaults to stdout.
246              Specify MQTT server with e.g. -F mqtt://localhost:1883
247              Add MQTT options with e.g. -F "mqtt://host:1883,opt=arg"
248              MQTT options are: user=foo, pass=bar, retain[=0|1],
249              <format>[=topic]
250              Supported MQTT formats: (default is all)
251                events: posts JSON event data
252                states: posts JSON state data
253                devices: posts device and sensor info in nested topics
254              The topic string will expand keys like [/model]
255              E.g. -F
256              "mqtt://localhost:1883,user=USERNAME,pass=PASSWORD,retain=0,devices=rtl_433[/id]"
257              With MQTT each rtl_433 instance needs a distinct driver
258              selection. The MQTT Client-ID is computed from the driver
259              string.
260              If you use multiple RTL-SDR, perhaps set a serial and select by
261              that (helps not to get the wrong antenna).
262              Specify InfluxDB 2.0 server with e.g. -F
263              "influx://localhost:9999/api/v2/write?org=<org>&bucket=<bucket>,token=<authtoken>"
264              Specify InfluxDB 1.x server with e.g. -F
265              "influx://localhost:8086/write?db=<db>&p=<password>&u=<user>"
266                Additional parameter -M time:unix:usec:utc for correct
267              timestamps in InfluxDB recommended
268              Specify host/port for syslog with e.g. -F syslog:127.0.0.1:1514
269
270   Meta information option
271       [ -M time[:<options>]|protocol|level|noise[:<secs>]|stats|bits ]
272              Add various metadata to every output line.
273              Use "time" to add current date and time meta data (preset for
274              live inputs).
275              Use "time:rel" to add sample position meta data (preset for
276              read-file and stdin).
277              Use "time:unix" to show the seconds since unix epoch as time
278              meta data.
279              Use "time:iso" to show the time with ISO-8601 format
280              (YYYY-MM-DD"T"hh:mm:ss).
281              Use "time:off" to remove time meta data.
282              Use "time:usec" to add microseconds to date time meta data.
283              Use "time:tz" to output time with timezone offset.
284              Use "time:utc" to output time in UTC.
285                   (this may also be accomplished by invocation with TZ
286              environment variable set).
287                   "usec" and "utc" can be combined with other options, eg.
288              "time:unix:utc:usec".
289              Use "replay[:N]" to replay file inputs at (N-times) realtime.
290              Use "protocol" / "noprotocol" to output the decoder protocol
291              number meta data.
292              Use "level" to add Modulation, Frequency, RSSI, SNR, and Noise
293              meta data.
294              Use "noise[:secs]" to report estimated noise level at intervals
295              (default: 10 seconds).
296              Use "stats[:[<level>][:<interval>]]" to report statistics
297              (default: 600 seconds).
298                level 0: no report, 1: report successful devices, 2: report
299              active devices, 3: report all
300              Use "bits" to add bit representation to code outputs (for
301              debug).
302
303   Read file option
304       [ -r <filename> ]
305              Read data from input file instead of a receiver
306              Parameters are detected from the full path, file name, and
307              extension.
308
309              A center frequency is detected as (fractional) number suffixed
310              with 'M',
311               'Hz', 'kHz', 'MHz', or 'GHz'.
312
313              A sample rate is detected as (fractional) number suffixed with
314              'k',
315               'sps', 'ksps', 'Msps', or 'Gsps'.
316
317              File content and format are detected as parameters, possible
318              options are:
319               'cu8', 'cs16', 'cf32' ('IQ' implied), and 'am.s16'.
320
321              Parameters must be separated by non-alphanumeric chars and are
322              case-insensitive.
323              Overrides can be prefixed, separated by colon (':')
324
325              E.g. default detection by extension: path/filename.am.s16
326              forced overrides: am:s16:path/filename.ext
327
328              Reading from pipes also support format options.
329              E.g reading complex 32-bit float: CU32:-
330
331   Write file option
332       [ -w <filename> ]
333              Save data stream to output file (a '-' dumps samples to stdout)
334
335       [ -W <filename> ]
336              Save data stream to output file, overwrite existing file
337              Parameters are detected from the full path, file name, and
338              extension.
339
340              File content and format are detected as parameters, possible
341              options are:
342               'cu8', 'cs8', 'cs16', 'cf32' ('IQ' implied),
343               'am.s16', 'am.f32', 'fm.s16', 'fm.f32',
344               'i.f32', 'q.f32', 'logic.u8', 'ook', and 'vcd'.
345
346              Parameters must be separated by non-alphanumeric chars and are
347              case-insensitive.
348              Overrides can be prefixed, separated by colon (':')
349
350              E.g. default detection by extension: path/filename.am.s16
351              forced overrides: am:s16:path/filename.ext
352
353

RESOURCES

355       Project web site: https://github.com/merbanan/rtl_433
356

COPYING

358       Copyright © 2012-2019 Benjamin Larsson, Christian W. Zuckschwerdt, and
359       many contributors.
360       Free use of this software is granted under the terms of the GPL-2+
361       License.
362
363
364
365rtl_433                           2019-08-21                        RTL_433(1)
Impressum