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#
| Option | Meaning |
|---|---|
--hackrf | Use a HackRF. |
--file path | Read a recording. With --rate Msps and --format (cs8, cu8 or cf32). |
--synthetic | Use the built-in test signal. --demo makes synthetic DVB-T / ATSC carry the test-card programme. --snr dB sets its noise. |
--freq MHz | Tune. --bw MHz sets the channel width, --autobw finds it. |
--lna dB, --vga dB, --amp, --gain dB | Radio gains: HackRF stages, or the overall gain of other radios. |
--radio key=value | A setting of the radio (for example --radio iqformat=cs8 for a PlutoSDR with Tezuka). |
--secs N | How long to run. |
--standard id | t2, t, dvbt, atsc, atsc3, dab, isdbt, fm, or any mode or sub-mode id listed below. |
--play id, --service id | Play a service, or select the service for outputs. |
--ts file, --udp host:port, --rtp, --no-null | Write the transport stream to a file or send it over UDP / RTP, optionally without null packets. |
--serve port, --lan | Run the network tuner on a port; --lan lets other computers connect. |
--record out | Save raw samples to a file, a folder or auto (any radio or --synthetic, not --file). |
--wav file, --listen | FM: 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 auto | Where error correction runs. |
--ref lat lon | The receiver position (ADS-B reference). |
--isdbt-bw 6, 7, 8 or auto | ISDB-T channel width. |
--dvbc-sr Msym/s, --dvbc-qam n, --dvbc-annexc | DVB-C: manual symbol rate, QAM order, J.83 annex C. |
--dvbt-mode, --dvbt-gi, --dvbt-mod, --dvbt-rate | Parameters of the synthetic DVB-T signal. |
--dpmr-scan | dPMR: scan the 16 PMR446 channels. |
--orbcomm-downlinks 1 or 2 | Orbcomm downlinks decoded at once. |
--ble-channel 37, 38 or 39 | Bluetooth LE advertising channel. |
--atv-fm | Analog TV: FM video (analog FPV links), 20 Msps. |
--iridium-bits file | Write Iridium bursts as RAW: lines. |
--sopt k v, --sval k v | Options 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.