6 Jul 2020

RTL-SDR_433 first basic experiment

rtl_433, What?

rtl_433 is a generic data receiver software (compilable for Linux, Windows, MacOS) for several bands:

  • 433.92 MHz
  • 868 MHz (SRD)
  • 315 MHz
  • 345 MHz
  • 915 MHz ISM bands
rtl_433 currently supports these input types:
  • RTL-SDR (optional, recommended)
  • SoapySDR (optional)
  • files: CU8, CS16, CF32 I/Q data, U16 AM data (built-in)
  • rtl_tcp remote data servers (built-in)
With this software and a DVB dongle (Realtek RTL2832 is well supported) you will be able to receive data on the above frequencies. Examples of applications would be:
  • ADS-B AIRCRAFT RADAR
  • Remote Control Sensors Signal testing
Source code and documentation

The official source code at the time I write this is: https://github.com/merbanan/rtl_433

Installation for example using make would be (please, check the official docs) as easy as:

cd rtl_433
mkdir build
cd build
cmake ..
make
make install

Help !


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

Usage:
= General options =
  [-V] Output the version string and exit
  [-v] Increase verbosity (can be used multiple times).
       -v : verbose, -vv : verbose decoders, -vvv : debug decoders, -vvvv : trace decoding).
  [-c <path>] Read config options from a file
= Tuner options =
  [-d <RTL-SDR USB device index> | :<RTL-SDR USB device serial> | <SoapySDR device query> | rtl_tcp | help]
  [-g <gain> | help] (default: auto)
  [-t <settings>] apply a list of keyword=value settings for SoapySDR devices
       e.g. -t "antenna=A,bandwidth=4.5M,rfnotch_ctrl=false"
  [-f <frequency>] Receive frequency(s) (default: 433920000 Hz)
  [-H <seconds>] Hop interval for polling of multiple frequencies (default: 600 seconds)
  [-p <ppm_error] Correct rtl-sdr tuner frequency offset error (default: 0)
  [-s <sample rate>] Set sample rate (default: 250000 Hz)
= Demodulator options =
  [-R <device> | help] 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)
  [-G] Enable blacklisted device decoding protocols, for testing only.
  [-X <spec> | help] Add a general purpose decoder (prepend -R 0 to disable all decoders)
  [-Y level=<dB level>] Manual detection level used to determine pulses (-1.0 to -30.0) (0=auto)
  [-n <value>] Specify number of samples to take (each sample is 2 bytes: 1 each of I & Q)
  [-Y auto | classic | minmax] FSK pulse detector mode.
= Analyze/Debug options =
  [-a] Analyze mode. Print a textual description of the signal.
  [-A] Pulse Analyzer. Enable pulse analysis and decode attempt.
       Disable all decoders with -R 0 if you want analyzer output only.
  [-y <code>] Verify decoding of demodulated test data (e.g. "{25}fb2dd58") with enabled devices
= File I/O options =
  [-S none | all | unknown | known] Signal auto save. Creates one file per signal.
       Note: Saves raw I/Q samples (uint8 pcm, 2 channel). Preferred mode for generating test files.
  [-r <filename> | help] Read data from input file instead of a receiver
  [-w <filename> | help] Save data stream to output file (a '-' dumps samples to stdout)
  [-W <filename> | help] Save data stream to output file, overwrite existing file
= Data output options =
  [-F kv | json | csv | mqtt | influx | syslog | null | help] Produce decoded output in given format.
       Append output to file with :<filename> (e.g. -F csv:log.csv), defaults to stdout.
       Specify host/port for syslog with e.g. -F syslog:127.0.0.1:1514
  [-M time[:<options>] | protocol | level | stats | bits | help] Add various meta data to each output.
  [-K FILE | PATH | <tag>] Add an expanded token or fixed tag to every output line.
  [-C native | si | customary] Convert units in decoded output.
  [-T <seconds>] Specify number of seconds to run, also 12:34 or 1h23m45s
  [-E hop | quit] Hop/Quit after outputting successful event(s)
  [-h] Output this usage help and exit
       Use -d, -g, -R, -X, -F, -M, -r, -w, or -W without argument for more help

Samples of use !

rtl_433 -f 433910000  (OOK... ASK modulation)
rtl_433 -A -f 433909000  (analyse pulse characteristics)
rtl_433 -f 433920000 (Center frequency, default: 433920000 Hz)

rtl_433 -X 'n=name,m=OOK_PWM,s=256,l=512,r=1024,g=0,t=0,y=0' (Flex decoder)



CommandDescription
rtl_433Default receive mode, use the first device found, listen at 433.92 MHz at 250k sample rate.
rtl_433 -C siDefault receive mode, also convert units to metric system.
rtl_433 -f 868M -s 1024kListen at 868 MHz and 1024k sample rate.
rtl_433 -M hires -M levelReport microsecond accurate timestamps and add reception levels (depending on gain).
rtl_433 -R 1 -R 8 -R 43Enable only specific decoders for desired devices.
rtl_433 -AEnable pulse analyzer. Summarizes the timings of pulses, gaps, and periods. Can be used with -R 0 to disable decoders.
rtl_433 -S all -T 120Save all detected signals. Run for 2 minutes.
rtl_433 -K FILE -r file_nameRead a saved data file instead of receiving live data. Tag output with filenames.
rtl_433 -F json -M utc | mosquitto_pub -t home/rtl_433 -lWill pipe the output to network as JSON formatted MQTT messages. A test MQTT client can be found in examples/mqtt_rtl_433_test_client.py.
rtl_433 -f 433.53M -f 434.02M -H 15Will poll two frequencies with 15 seconds hop interval.







0 comments:

Post a Comment