OnAir

OnAir command line: onair-cli and dect2scan

A headless receiver for logs, scripts and bring-up, built from the same library as the app.

onair-cli is the installed name of the program the source tree builds as dect2cli. It prints sync and level telemetry once per second and can play a service, record IQ, write a transport stream or serve the network tuner. dect2scan is a channel scanner. wbtool and isdbtgen are developer tools built with the tests.

Examples#

# receive with a HackRF, tuned to 522 MHz, for 20 seconds
onair-cli --hackrf --freq 522 --secs 20

# play a service from a recording (10 Msps, 8-bit signed)
onair-cli --file capture.cs8 --rate 10 --format cs8 --play <service id>

# record 10 seconds of raw IQ (any radio, or --synthetic); "auto" names the file for you
onair-cli --record auto --secs 10

# Iridium bursts for iridium-toolkit
onair-cli --standard iridium --iridium-bits output.bits --secs 600

# TETRA network information
onair-cli --standard tetra --freq 392.5

# FM sound to a WAV file
onair-cli --standard fm --freq 98.5 --wav out.wav

A SigMF recording (.sigmf-meta) or a two-channel WAV IQ file gives its own rate, centre frequency and sample format; --rate, --format and --freq still override. --record does not work with --file.

Options#

OptionMeaning
--hackrfUse a HackRF.
--file pathRead a recording. With --rate Msps and --format (cs8, cu8 or cf32).
--syntheticUse the built-in test signal. --demo makes synthetic DVB-T / ATSC carry the test-card programme. --snr dB sets its noise.
--freq MHzTune. --bw MHz sets the channel width, --autobw finds it.
--lna dB, --vga dB, --amp, --gain dBRadio gains: HackRF stages, or the overall gain of other radios.
--radio key=valueA setting of the radio (for example --radio iqformat=cs8 for a PlutoSDR with Tezuka).
--secs NHow long to run.
--standard idt2, t, dvbt, atsc, atsc3, dab, isdbt, fm, or any mode or sub-mode id listed below.
--play id, --service idPlay a service, or select the service for outputs.
--ts file, --udp host:port, --rtp, --no-nullWrite the transport stream to a file or send it over UDP / RTP, optionally without null packets.
--serve port, --lanRun the network tuner on a port; --lan lets other computers connect.
--record outSave raw samples to a file, a folder or auto (any radio or --synthetic, not --file).
--wav file, --listenFM: write the sound to a 48 kHz stereo WAV. --listen plays the sound of FM, voice, CW and ham modes (the command line is silent otherwise).
--compute cpu, gpu or autoWhere error correction runs.
--ref lat lonThe receiver position (ADS-B reference).
--isdbt-bw 6, 7, 8 or autoISDB-T channel width.
--dvbc-sr Msym/s, --dvbc-qam n, --dvbc-annexcDVB-C: manual symbol rate, QAM order, J.83 annex C.
--dvbt-mode, --dvbt-gi, --dvbt-mod, --dvbt-rateParameters of the synthetic DVB-T signal.
--dpmr-scandPMR: scan the 16 PMR446 channels.
--orbcomm-downlinks 1 or 2Orbcomm downlinks decoded at once.
--ble-channel 37, 38 or 39Bluetooth LE advertising channel.
--atv-fmAnalog TV: FM video (analog FPV links), 20 Msps.
--iridium-bits fileWrite Iridium bursts as RAW: lines.
--sopt k v, --sval k vOptions and values of a mode's test signal.

Mode ids for --standard#

Modes (the tuning table of each mode): acars, adsb, aero, airband, ais, ale, am, ant, ardop, argos, asterix, astro, atv, ble, bletracker, cdr, cell, codar, contestia, cquam, cubesat, cw, datawell, dect, dgps, dji, dme, dmr, dominoex, dpmr, drm, dsc, dstar, dtmb, dvbc, dvbs, ebicab, eczas, edacs, elektro, eloran, esubghz, flarm, flex, fpv, freedv, fsq, fst4, ft2, ft4, ft8, fusion, general, globalstar, gnss, goes, goesdcs, gsmr, halow, hamdrm, hdr, hell, hfbeacon, hfdig, hfdl, horus, hrpt, ifkp, ils, inmc, iono, iridium, isdbs, ism, js8, jt4, jt65, jt9, kaal, kaft, kait, kapp, kavb, kaws, klw, lbj, loraaprs, loraraw, lorasat, lorawan, lorawanwide, ltr, m17, mac, marine, marinevhf, mesh, meshcom, meshcore, meshtastic, meteor, mfsk, milhf, modeac, mpt1327, mscatter, msk144, mt63, multitone, navtex, nbiot, ndb, nfc, nr, nxdn, olivia, orbcomm, p25, p25p2, packet, pactor, pager, pocsag, psk, pskd, q65, qo100, rid, roshf, rtty, same, sarsat, satbeacon, sbas, sigfox, sonde, specan, specx, ssdv, sstv, tetra, tetrapol, thor, time, tones, uat, uplink, vdes, vdl2, vdl4, vor, vorils, wb, wefax, wifi, wisun, wmbus, wspr, zigbee, zwave.

dect2scan#

dect2scan [--from MHz] [--to MHz] [--step MHz] [--bw MHz] [--quick] [--lna dB] [--vga dB] [--noamp] [--occ dB]

Scans a range with the first radio found and prints each frequency with its level and occupancy, and for DVB-T2 the mode, SNR, PLP info, network id and name, and the services. --quick skips identifying services; --bw fixes the channel width.

See also the remote-control API and Build from source.