Skip to content

Changelog

adswill edited this page Oct 18, 2026 · 2 revisions

What changed in each release. Older releases are on the releases page.

0.2.7

2026-10-18

OnAir 0.2.7 adds about twenty new modes and a set of new tools: band survey, watchlists, a pass scheduler, a TV recorder with programme guide, a P25 trunking follower, a plugin SDK, a headless server and more. It also fixes a DVB-T2 16K pilot table typo, a TETRA false "encrypted" flag, and several build problems. The C++ protocol layers have been replaced by Rust, so Rust is now required to build.

The new modes and tools are large and new. Most have been tested on synthetic signals only, so they are listed separately below.

New modes

  • Wireless M-Bus (EN 13757-4): utility meters on 868 and 169 MHz
  • Tone decoders: CTCSS, DCS, DTMF, five-tone, SELCAL and two-tone pages, as a mode of their own
  • COSPAS-SARSAT 406 MHz beacon detection
  • MT63 (500, 1000 and 2000 Hz, short and long interleave)
  • Z-Wave (G.9959 R1, R2 and R3 FSK monitor)
  • Meteor scatter: forward-scatter ping detector for GRAVES and other CW beacons
  • FPV analog video: 5.8 GHz and 1.2 GHz channel plans, scan, live PAL/NTSC picture with sound
  • Wi-Fi HaLow: 1, 2, 4, 8 and 16 MHz S1G PHY, MCS 0 to 10, regional channel plans, sub-channel scan for 1 MHz beacons, and fixes to the scan
  • P25 trunking follower: talkgroup list and call log; encrypted calls are skipped, not decoded
  • e-Czas: Polish official time on 225 kHz long wave
  • LBJ railway train warning receiver: working decoder (replaces the earlier first version)
  • KiwiSDR as a network radio (12 kHz IQ over WebSocket)

New tools

  • Band survey: occupancy history, persistent signals, diffs and quiet slots, with a CLI
  • Message database: SQLite store with full-text search, retention limits and exports
  • HF propagation: a dashboard from HF beacons (bands open now, 24 hour history, best band)
  • GNSS navigation: a Navigate view with route, next waypoint, ETA, off-route warning, dead reckoning and a GPX trip log
  • Interference hunter: baseline monitor with new-spur and noise-floor alerts and source guesses
  • Station health: per-band noise floor, ADC staging, reference stations, ppm and ADS-B range checks
  • Watchlists: alerts when listed aircraft, ships, call signs, frequencies or words are heard, with ntfy, Telegram and webhook alerts
  • Time machine: a rolling memory of raw IQ, saved around a button, squelch or automatic trigger
  • Pass scheduler: schedules satellite passes by itself, with priority, trimming, reserved hours and calendar export
  • Doppler orbit fit: refines a satellite's orbit from its measured Doppler curve
  • Self-calibration: a Calibrate dialog with a live IQ tap, history graph, cell and GPS sources
  • Radio astronomy: hydrogen line toolkit (calibration, RFI, LSR velocity, pointing and line fits)
  • Passive radar: clutter cancellation, cross-ambiguity, CFAR and Kalman tracking
  • RF camera: direction finder with the bearing spectrum as a heat map over a picture or panorama
  • Protocol lab: reverse-engineering workbench for unknown digital signals
  • TV recorder: programme guide grid, scheduled recording, timeshift and playback bar, subtitle export
  • DAB programme guide: now and next, XMLTV export, alternative frequencies in the ensemble header
  • Plugin SDK: add a mode or action as a plugin file without rebuilding; manifest, stable C ABI, plugin manager and examples
  • Headless server: onair-server runs OnAir without a window, controlled from a browser
  • Live translation: offline translation to English next to the original transcript
  • Live rooms: stream the waterfall and decoded text to a web audience, with chat
  • Weather picture studio: coastlines, borders, curves, palettes, histogram, crop, mosaic and GeoTIFF output
  • Offline data packs: map tiles, satellite elements, airports and transmitter lists
  • Auto-labelled spectrum: station and channel names on the spectrum
  • Signal identifier: calibrated confidence, band-plan prior, and an identify-all option
  • Auto gain: per-mode targets and per-device gain tables; the LNA amplifier is never switched on unless you allow it
  • Audio cleanup chain: noise reduction, automatic and manual notch, leveller, silence gate and voice emphasis
  • Transmit: redesigned in the receiver's style, with every parameter behind an Advanced section
  • Sound card input: narrowband modes such as weather fax decode from a virtual cable; IF offset, sideband swap, channel choice and level meter
  • Maps: a full screen button on every map, and full screen for 5G NR, LTE cell, VDL4 and the passes sky plot
  • Touch interface: a touch shell with big targets, a keypad, a mode picker, drag scrolling of lists and a landscape layout
  • Airband: airport search, an On the air tab, band watch, per-channel squelch and listen

Fixes

  • DVB-T2 16K extended pilot table typo fixed; the 642 MHz capture now decodes
  • TETRA no longer calls clear cells encrypted (the encryption bit is only used when encryption is signalled)
  • GOES HRIT: Reed-Solomon is tried in both symbol bases; CADU save and open (this fix is probable, see Known limitations)
  • DAB+: transmitters heard in the ensemble are placed on the map from the broadcast data
  • DRA+ with no signalled bit rate no longer shows 0 kbit/s (#189)
  • HFDL: strong on-air bursts decode again (#66); weak bursts still fail often
  • Mode switch while running (#191); rtl_tcp waits for the greeting up to 10 s (#186)
  • Airspy HF+: late callbacks after Stop can no longer reach a freed source (#160)
  • Windows: files and folders with accents open and save correctly (#168)
  • Map upload accepts squawk codes such as 0123
  • Build fixes on Linux, macOS, Windows (MinGW) and CI; the Windows test build is tracked in #173

Under the hood

  • The C++ protocol layers were replaced by Rust and removed; golden-vector tests replace the old comparisons. Rust is now required to build.
  • Speed-ups: ionosonde dechirp loop, QO-100 decimator, Wi-SUN burst detector, HRPT Viterbi, and DJI and ATSC resamplers. Outputs are bit-identical.
  • Threading: a shared worker pool for carriers and HFDL channels.

Android

  • Direct USB for RTL-SDR radios (USB device registry, usbfs transfers)
  • The APK is signed with a new permanent key. Android will not install 0.2.7 over 0.2.6 (different signing key): uninstall 0.2.6 first. Future updates will install normally.

Logo

  • New OnAir logo in the app, installers, packages, website and notices. The OnAir name and logo are copyright Kristijonas Adomaitis and are not covered by the GPL licence of the source code.

Community

  • Thanks to drelectro for PR #194 (HFDL ranges and the me marker) and PR #196 (spectrum and waterfall edge gaps and flicker)
  • Thanks to R0Y00 for PR #197 (PlutoSDR native full duplex with coordinated sample rates)

Experimental / tested on synthetic signals only

These have not been verified on real hardware or real signals. Please send recordings if you can.

  • Wireless M-Bus, tone decoders, COSPAS-SARSAT 406, MT63, Z-Wave, Meteor scatter, FPV analog video, Wi-Fi HaLow scan changes
  • P25 trunking follower: P25 phase 1 only; DMR Tier III grants are modelled but not wired to the UI, P25 phase 2 calls are logged but not followed, and the control-message layouts were not checked against the spec
  • LBJ decoder
  • Band survey, message database, HF propagation, GNSS navigation, interference hunter, station health, watchlists
  • Time machine, pass scheduler, Doppler orbit fit, self-calibration
  • Hydrogen line toolkit, passive radar, RF camera, protocol lab
  • TV recorder and EPG, DAB programme guide, live translation, live rooms
  • Plugin SDK, headless server
  • Weather picture studio, offline data packs, auto-labelled spectrum, signal identifier
  • Auto gain, audio cleanup chain, Transmit redesign, sound card input
  • Touch interface, fullscreen maps, airband additions
  • Android direct USB for RTL-SDR

Known limitations

  • HackRF and Airspy USB on Android are not supported yet
  • GOES decoding is not confirmed on real signals
  • Encrypted traffic is never decoded
  • Voice modes need a codec you install yourself (see Voice codecs)
  • HFDL has been checked against one real on-air burst only
  • Some automated tests that depend on the machine or random noise still fail on GitHub's Windows and Linux runners (timing and noise-sensitive tests, and an ISDB-T 20 ppm clock-error case that decodes nothing on Windows). They are being worked on
  • The Windows installer has no custom welcome picture yet

Downloads

  • OnAir-0.2.7-windows-x64-setup.exe and OnAir-0.2.7-windows-x64.zip
  • OnAir-0.2.7-macos-arm64.dmg (Apple silicon) and OnAir-0.2.7-macos-x86_64.dmg (Intel)
  • onair_0.2.7_amd64.deb, onair_0.2.7_arm64.deb, onair-0.2.7-linux-x86_64-portable.tar.gz and onair-0.2.7-linux-aarch64-portable.tar.gz
  • OnAir-0.2.7-android.apk: uninstall 0.2.6 first (the APK has a new signing key; later updates install normally)

Release notes on GitHub

Guides for the new tools: Band survey, Message database, Watchlists, Plugin SDK, Headless server, TV recorder, Time machine, Pass scheduler and the others listed under Tutorials.

0.2.6

2026-10-16

An Android app (receive only), Hamlib rig control and rotators, new radios and around a dozen new modes (111 in all), a real-time map, DRM data services, TV teletext and subtitles, and fixes from your reports. mbelib is no longer built in, and test signals can be transmitted into a dummy load.

New modes

  • NDB: long-wave non-directional beacons with their Morse identification
  • Elektro-L: HRIT / LRIT images and GGAK space-weather telemetry
  • TETRAPOL network information
  • LBJ: railway train warning receiver, a first version that is not decoding real signals yet (#153)
  • ANT+ sensors: heart rate, bike power, speed and cadence broadcasts
  • DECT cordless phones: base stations from their beacons, system information and a burst log (#94)

New features

  • Multi-channel TV: decode two or three adjacent DVB-T / T2 channels from one wide capture; twelve more modes can run as the second decoder
  • General receiver: up to four channels from one capture, draggable on the spectrum, per-channel recording, one WAV per transmission, MP3 and FLAC recording, audio high-pass, low-pass and notch
  • Remote-control HTTP / WebSocket API (off by default) and a gain optimiser that sweeps for the best quality without overloading the converter
  • Spectrum and waterfall: colour maps (including Cividis), pause and scroll-back, averaging, max hold, peak markers, dBm, a decoder counter and a Reset spectrum command (#142)
  • TV: record a service to a file, pause and live buffer; your own channel logos on the service cards
  • Interface: Light and High contrast themes, your own accent colour, Clear all in the top bar, a folded Tools section, frequency changes by scroll wheel and hold-to-repeat arrows, and receiver modes that switch without pressing Stop and Start
  • Languages: Portuguese (Brazil) and Hungarian added; Japanese, Polish, Dutch, Italian and Russian registered; 282 more texts translated
  • Maps: offline MBTiles, a receiver-range plot on the ADS-B and AIS maps, and a satellite pass planner with an editable list of TLE sources and a Keplerpass download
  • Meteor-M LRPT: contrast stretch, thermal colours, brighten and auto-save; Doppler tracking of the carrier
  • Radiosondes: LMS6-1680 MHz decoding and a landing prediction on the map
  • Mesh: a Telemetry tab, Save results (CSV, JSON, KML, GPX), a text report, an ANZ 915 band plan and MeshCore regional presets from meshcore.nz
  • FM: a Saved Stations library, a band scan from 87.0 MHz or a custom range (#135), a full RDS scan option and a Mono switch for weak stations
  • Optional WSPR spot upload to wsprnet.org; bookmarks with colours and CSV export / import
  • Save bug report: one zip with diagnostics, log and crash report
  • Hamlib rig control (CAT) and an antenna rotator; a sound card as an input

Radios

  • Fobos SDR: native driver (agile firmware)
  • RX888 MkII: native USB 3 driver that loads the FX3 firmware into RAM
  • Red Pitaya as a network radio; Share my radio (an rtl_tcp server); bigger rtl_tcp buffers and rates above 2.56 Msps
  • Pluto+: a Link setting (Auto, USB, Ethernet) lifts the USB rate cap (#96); the sample buffer is sized by rate on network radios (#114)
  • RTL-SDR Blog V4: HF works on macOS with the bundled Blog librtlsdr
  • A help card when an SDRplay RSP is plugged in but the SDRplay API is not installed
  • SoapyRemote: a 5 s network timeout so slow servers list their radios (#84); faster SpyServer startup
  • Every radio and mode takes the frequency as typed; driver limits are notes only

Decoders

  • DVB-S2X: VL-SNR frames and more roll-offs; a polarisation warning on DVB-S / S2
  • DTMB: LDPC on the GPU (Metal) with a CPU / GPU / Auto choice, and a faster sample path (#39, #88)
  • ATSC 3.0: optional AC-4 audio through libavcodec, and a fix for the bootstrap search (#100)
  • DVB-T2: HEM transport streams with MIS and a single ISI (#101)
  • DMR voice through an AMBE+2 vocoder, one decoder per slot (unverified on real recordings); codec2 1.2.0 comes with OnAir for M17 and FreeDV
  • QO-100: a DATV carrier decoded with DVB-S / S2 as the second mode; automatic frequency correction can be switched off
  • CDR: better lock stability and DRA+ playback (#138); HFDL: channels placed from the frequency you enter; FLEX: lock on a bad frame information word

Fixes

  • NB-IoT and HaLow no longer crash at start (#143)
  • Airband and packet settings persist (#148, #140); the mode list grouping is fixed
  • Airspy HF+: Stop works on Windows; the CDR accepts its 912 ksps rate
  • ADS-B radar fullscreen click; CHU removed from Time signals (#118, #150)
  • Hamlib builds on Ubuntu 22.04

Android app

  • OnAir-0.2.6-android.apk: arm64-v8a, Android 9 or newer, receive only
  • Sources: rtl_tcp, SpyServer, IQ files and a built-in test signal per mode; per-mode results, FM with RDS, and an OpenStreetMap map after you agree
  • Not yet: images, TV video and sound, vocoder voice, direct USB radios

Changed

  • mbelib is no longer built in (patented AMBE / IMBE): DMR, P25, NXDN, dPMR and D-STAR voice is silent until you install it yourself, see docs/CODECS.md. Calls, IDs and data still work
  • The highest tuning frequency is now 1000 GHz

Transmit

  • Test signals for a set of modes can be sent into a dummy load, see docs/TRANSMIT.md
  • No frequency or power limit is applied; you are responsible for lawful use

Known limits

  • HFDL decoding of real recordings is not fixed yet (#66)
  • Android: no images, TV video or vocoder voice yet, arm64 only

Thanks

  • OM5NA (Fobos SDR driver), drelectro (RFNM, Wi-SUN FAN, MeshCore ANZ), F5OEO (ATSC 3.0), andriux26 (SpyServer, Windows packaging), Sebastian Buchweitz (Docker web GUI), ffishman (Mesh, FM scan, Portuguese review), Rodrigo Gressler and Marcelo PU2SWX (Brazilian Portuguese), A2ureIm4la (FM Saved Stations), ZiYuan Yang, and everyone who reported bugs and sent recordings

Release notes on GitHub

0.2.5

2026-10-13

New modes, whole-span decoding, several receivers at once, a signal workbench, and fixes from your reports. Thanks to everyone who tested and sent recordings, and to F5OEO for the ISDB-T work.

New modes

  • Plain LoRa: raw LoRa point-to-point packets (not LoRaWAN), SF7 to SF12, explicit and implicit headers (#20)
  • NOAA Weather Radio SAME: the EAS alert bursts on the seven US and Canadian weather channels, with the event, areas, timing and station, and the 1050 Hz alert tone
  • Datawell Waverider buoys: HXV (2FSK) buoys decode to heave and displacement, sea state, water temperature and position; HVA (4MFSK) shows measurements only
  • Multitone paging: a detector that shows tones, baud and raw words (the message layout is not public)
  • CODAR HF ocean radar: sweeps, stations and the keyed identification
  • Time stations: BPC, HLA and the coded BPM signal, able to set the computer clock
  • WSJT modes: JT65, JT9, Q65, FST4 / FST4W and MSK144
  • fldigi keyboard modes: Olivia, Contestia, MFSK, THOR, DominoEX and Hell
  • NB-IoT cells and Wi-Fi HaLow (802.11ah) network discovery
  • Signal workbench: open a WAV, MP3, raw IQ or SigMF recording, measure, try demodulators and read the recovered bits

New features

  • Whole span: the narrowband HF modes and the digital voice modes can decode every signal in the visible span
  • Multi-SDR: several receivers at once, each with its own radio and mode
  • Interface: a clearer top bar, a text size setting, resizable panels; spectrum range keys (#91); converter presets
  • Export as ADIF, KML, GPX, CSV and JSON; full-resolution CSV of the spectrum analyser on a timer (#85); ADS-B in metric units (#85)
  • DAB: save the audio stream; station logos (#45). DVB-S / DVB-S2: a faster symbol path and a CPU / GPU / Auto compute setting
  • ISDB-T decodes real transmissions, with error correction on its own thread (F5OEO)
  • Time and clock: a GNSS clock tab, computer-clock sync from GNSS or a time station, and an optional NTP server on this computer
  • SigMF and WAV IQ files open as a source; the mouse wheel adjusts sliders; SoapyRemote lists the radios a server offers (#84)
  • The signal sample library at files.on-air.dev: upload your recordings, tagged by mode

Fixes

  • Windows and Intel Macs run on any x86-64 CPU; AVX2 is used when the CPU has it (#74)
  • Airspy HF+: no crash on Stop (#78)
  • Meteor-M LRPT: real frames now pass Reed-Solomon (#79)
  • The fullscreen pop-out stays up when another window is clicked (#71)
  • AIS: noise is no longer accepted as ships (#87)

Release notes on GitHub

Older releases

0.2.4 and earlier: see the releases page and the changelog on the website.

Clone this wiki locally