---
name: "readsb"
section: "1"
platform: "linux"
package: "readsb"
version: "3.14.1630+git20240609.adc080d-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/readsb"
---

# readsb(1)

Mode-S aircraft data processor for various receiver hardware.

## NAME

readsb - Mode-S aircraft data processor for various receiver hardware.

## VERSION

v3.8.1

## DESCRIPTION

**readsb Mode-S Receiver**

## BUILD OPTIONS

- •

  **ENABLE\_RTLSDR**

- •

  **ENABLE\_BLADERF**

## USAGE

**readsb \[OPTION...\]**

## OPTIONS

- **--dcfilter**

  **Apply a 1Hz DC filter to input data (requires more** **CPU)**

- **--enable-biastee**

  **Enable bias tee on supporting interfaces (default: disabled)**

- **--debug=\<flags\>**

  **Debug mode (verbose), see flags below**

- **--device-type=\<type\>**

  **Select SDR type**

- **--fix**

  **Enable CRC single-bit error correction (default)**

- **--forward-mlat**

  **Allow forwarding of received mlat results to** **output ports**

- **--freq=\<hz\>**

  **Set frequency (default: 1090 MHz)**

- **--gain=\<db\>**

  **Set gain (default: max gain. Use -10 for** **auto-gain)**

- **--gnss**

  **Show altitudes as GNSS when available**

- **--interactive**

  **Interactive mode refreshing data on screen.** **Implies --throttle**

- **--interactive-ttl=\<sec\>**

  **Remove from list if idle for \<sec\> (default: 60)**

- **--json-location-accuracy=\<n\>**

  **Accuracy of receiver location in json metadata:**

  - 0

    **no location**

  - 1

    **approximate**

  - 2

    **exact**

- **--lat=\<lat\>**

  **Reference/receiver surface latitude**

- **--lon=\<lon\>**

  **Reference/receiver surface longitude**

- **--max-range=\<dist\>**

  **Absolute maximum range for position decoding (in** **nm, default: 300)**

- **--metric**

  **Use metric units**

- **--mlat**

  **Display raw messages in Beast ASCII mode**

- **--modeac**

  **Enable decoding of SSR Modes 3/A & 3/C**

- **--no-crc-check**

  **Disable messages with invalid CRC (discouraged)**

- **--no-fix**

  **Disable CRC single-bit error correction**

- **--no-interactive**

  **Disable interactive mode, print to stdout**

- **--no-modeac-auto**

  **Don't enable Mode A/C if requested by a Beast** **connection**

- **--onlyaddr**

  **Show only ICAO addresses**

- **--quiet**

  **Disable output. Use for daemon applications**

- **--raw**

  **Show only messages hex values**

- **--show-only=\<addr\>**

  **Show only messages by given ICAO on stdout**

- **--snip=\<level\>**

  **Strip IQ file removing samples \< level**

- **--stats**

  **With --ifile print stats at exit. No other output**

- **--stats-every=\<sec\>**

  **Show and reset stats every \<sec\> seconds**

- **--stats-range**

  **Collect/show range histogram**

- **--write-json=\<dir\>**

  **Periodically write json output to \<dir\> (for** **external webserver)**

- **--write-json-every=\<t\>**

  **Write json output every t seconds (default 1)**

### NETWORK OPTIONS

- **--net**

  **Enable networking**

- **--net-bi-port=\<ports\>**

  **TCP Beast input listen ports (default:** **30004,30104)**

- **--net-vrs-port=\<ports\>**

  **TCP VRS json output listen ports (default: 0)**

- **--net-beast-reduce-out-port=\<ports\>**

  **TCP BeastReduce output listen ports (default: 0)**

- **--net-beast-reduce-interval=\<seconds\>**

  **BeastReduce position update interval, longer means less data** **(default: 0.125, valid range: 0.000 - 14.999)**

- **--net-bind-address=\<ip\>**

  **IP address to bind to (default: Any; Use 127.0.0.1 for private)**

- **--net-bo-port=\<ports\>**

  **TCP Beast output listen ports (default: 30005)**

- **--net-buffer=\<n\>**

  **TCP buffer size 64Kb \* (2^n) (default: n=0, 64Kb)**

- **--net-heartbeat=\<rate\>**

  **TCP heartbeat rate in seconds (default: 60 sec, 0 to disable)**

- **--net-only**

  **Enable just networking, no RTL device or file used**

- **--net-connector=\<ip,port,protocol\>**

  **Establish connection, can be specified multiple times (example: 127.0.0.1,23004,beast\_out) Protocols: beast\_out, beast\_in, raw\_out, raw\_in, sbs\_out, vrs\_out.**

- **--net-connector-delay=\<seconds\>**

  **Outbound re-connection delay (default: 30)**

- **--net-ri-port=\<ports\>**

  **TCP raw input listen ports  (default: 30001)**

- **--net-ro-interval=\<rate\>**

  **TCP output memory flush rate in seconds** **(default: 0)**

- **--net-ro-port=\<ports\>**

  **TCP raw output listen ports (default: 30002)**

- **--net-ro-size=\<size\>**

  **TCP output minimum size (default: 0)**

- **--net-sbs-port=\<ports\>**

  **TCP BaseStation output listen ports (default: 30003)**

- **--net-verbatim**

  **Forward messages unchanged**

### RTLSDR OPTIONS

*use with **--device-type** rtlsdr*

- **--device=\<index\|serial\>**

  **Select device by index or serial number**

- **--enable-agc**

  **Enable digital AGC (not tuner AGC!)**

- **--ppm=\<correction\>**

  **Set oscillator frequency correction in PPM**

### BLADERF OPTIONS

*use with **--device-type** bladerf*

- **--bladerf-bandwidth=\<hz\>**

  **Set LPF bandwidth ('bypass' to bypass the** **LPF)**

- **--bladerf-decimation=\<N\>**

  **Assume FPGA decimates by a factor of N**

- **--bladerf-fpga=\<path\>**

  **Use alternative FPGA bitstream ('' to disable FPGA load)**

- **--device=\<ident\>**

  **Select device by bladeRF 'device identifier'**

### MODES BEAST OPTIONS

*use with **--device-type** modesbeast*

**Beast binary protocol and hardware handshake are always enabled.**

- **--beast-crc-off**

  **Turn OFF CRC checking**

- **--beast-df045-on**

  **Turn ON DF0/4/5 filter**

- **--beast-df1117-on**

  **Turn ON DF11/17-only filter**

- **--beast-fec-off**

  **Turn OFF forward error correction**

- **--beast-mlat-off**

  **Turn OFF MLAT time stamps**

- **--beast-modeac**

  **Turn ON mode A/C**

- **--beast-serial=\<path\>**

  **Path to Beast serial device (default** **/dev/ttyUSB0)**

### ADALM-Pluto OPTIONS

*use with **--device-type** plutosdr*

**Default device expected at hostname 'pluto.local'.**

- **--pluto-uri=\<USB URI\>**

  **Create USB context from URI (eg. usb:1.2.5)**

- **--pluto-network=\<hostname or IP\>**

  **Create network context from hostname or IP (default pluto.local)**

### IFILE OPTIONS

*use with **--ifile***

- **--ifile=\<path\>**

  **Read samples from given file ('-' for stdin)**

- **--iformat=\<type\>**

  **Set sample format (UC8, SC16, SC16Q11)**

- **--throttle**

  **Process samples at the original capture speed**

### HELP OPTIONS

- **-?, --help**

  **Give this help list**

- **--usage**

  **Give a short usage message**

- **-V, --version**

  **Print program version**

## DEBUG MODE FLAGS

- **d**

  **Log frames decoded with errors**

- **D**

  **Log frames decoded with zero errors**

- **c**

  **Log frames with bad CRC**

- **C**

  **Log frames with good CRC**

- **p**

  **Log frames with bad preamble**

- **n**

  **Log network debugging info**

- **j**

  **Log frames to frames.js, loadable by debug.html**

## CREDITS

**Matthias Wirth aka wiedehopf** **Taner Halicioglu aka tanerH**

## BUGS

**Report bugs to Michael Wolf \<michael@mictronics.de\>.**

## AUTHOR

**Michael Wolf**
