Skip to main content
The Print Level parameter on the ADS-B Decoder sets how much information the decoder writes to the terminal while a flowgraph is running.

Options

"None"

The Python logging module is configured at DEBUG level. In the current implementation, "None" and "Verbose" are handled identically in the source: both go through the else branch of the Brief check and set logging.DEBUG. The decoder still emits field-level log output via self.log().
If you want truly silent operation without log output, redirect or suppress the Python logging output in your flowgraph. "None" is useful as a semantic label to distinguish intent from "Verbose" for future behaviour changes.

"Brief"

Displays a live, auto-updating table in the terminal using the Python curses library. One row is shown per tracked aircraft, updated each time a new message is successfully decoded for that aircraft.
"Brief" mode calls curses.initscr() and takes control of the terminal. Other print() or logging output to stdout will conflict with the curses display and produce corrupted output. Switch to "None" or "Verbose" if you need readable log output alongside the decoder.
The table header (as rendered by the decoder):
  Time    ICAO  Callsign  Alt  Climb Speed Hdng   Latitude    Longitude  Msgs
                            ft  ft/m    kt   deg         deg         deg     
Example output with several aircraft tracked:
  Time    ICAO  Callsign  Alt  Climb Speed Hdng   Latitude    Longitude  Msgs
                            ft  ft/m    kt   deg         deg         deg     
00:55:55 a03816          12425  2112   316    -7  39.0346566 -76.8112793   10
00:55:55 aa7df3 SWA398    1950  -128   167    11  39.1743622 -76.8109131   28
00:55:55 abb19c SWA513   16050  2112   386  -148  39.1567166 -77.2299194   28
Column descriptions:
ColumnFieldUnit
TimeUTC time of last messageHH:MM:SS
ICAOICAO 24-bit addresshex
CallsignFlight identifier
AltAltitudeft
ClimbVertical rateft/min
SpeedGroundspeedkt
HdngHeadingdeg
LatitudeLatitudedeg
LongitudeLongitudedeg
MsgsMessage count
Empty cells indicate that the value has not yet been received for that aircraft (stored as NaN internally).

"Verbose"

Uses the Python logging module at DEBUG level to print every decoded field for every successfully parsed message. Output goes to stderr via the standard logging handler. This mode is useful for debugging the decoder, verifying that individual fields are parsed correctly, or inspecting raw message content. Example verbose output for a DF 17 Extended Squitter with TC 19 (Airborne Velocity):
[INFO] ----------------------------------------------------------------------
[INFO] Datetime: 2019-07-31 00:43:37.784807 UTC
[INFO] SNR: 21.87 dB
[INFO] Downlink Format (DF): 17 Extended Squitter
[INFO] CRC: Passed
[INFO] Capability (CA): 5 Level 2 or Above Transponder, Can Set CA 7, In Air
[INFO] Address Announced (AA): ac53a4
[INFO] Callsign: EDV5271 
[INFO] Type Code (TC): 19 Airborne Velocity
[INFO] Subtype (ST): 1 Ground Velocity
[INFO] Intent Change (IC): 1 No Change in Intent
[INFO] Speed: 267 kt
[INFO] Heading: 173 deg (W)
[INFO] Climb: 2816 ft/min
[INFO] Climb Source: 0 Geometric Source (GNSS or INS)
In "Verbose" mode, a separator line of dashes is printed before each message (emitted by decode_header when the DF passes the message filter).

Comparison

ModeOutput mechanismNotes
NonePython logging (DEBUG)Same as Verbose in current implementation; curses not used
Briefcurses terminalLive aircraft table; logging set to CRITICAL to suppress other output
VerbosePython logging (DEBUG)Same as None in current implementation; full field logging

Build docs developers (and LLMs) love