Skip to content

Transmit

adswill edited this page Oct 16, 2026 · 2 revisions

A separate view for licensed users. Off until you press the big button, and your responsibility.

The full list of modes offered and not offered, with the reason for each, is docs/TRANSMIT.md in the repository.

Licence and legal responsibility. Transmitting needs a licence or permission where you are. You are responsible for what you emit and for not interfering with others, including services that people rely on for safety. Connect an antenna, an attenuator or a dummy load to the radio before you start. No frequency or power limit is applied by OnAir: the radio's own limits are the only ones, and you are responsible. This is the notice the app shows before the first transmission.

Transmit works. The three transmit paths (HackRF, PlutoSDR, SoapySDR) have been used on a real radio by the maintainer and are also covered by loop-back tests: see What has been tested.

Where it is

A slider at the top left of the interface switches between RX (the normal receiver) and TX (the Transmit panel). The transmitter is independent of the receivers, as in SDRangel: it has its own radio choice and its own mode, so a receiver keeps receiving while you transmit. Switching the view starts and stops nothing. Menu: View > Transmit....

Rules the program follows

  • Transmitting is off until you press Start transmitting. It never starts by itself, never restarts after a crash or when the program starts (the settings do not remember "transmitting"; the program opens in RX view), and it stops when you stop it, the radio fails or you quit.
  • The first time, a notice asks you to confirm that you understand (one button, once per install).
  • The frequency is pre-filled from the receiver but is yours to edit. A frequency offset can be added for a radio that radiates off frequency.
  • The gain slider is the radio's own TX gain range (lowest by default).
  • A radio is never used by a receiver and the transmitter at the same time, unless it is genuinely full duplex (none is today). A radio a receiver has open is marked "in use by RX n" and cannot be started for transmitting. Nothing is stopped silently.
  • The microphone or camera is not opened until you press Start transmitting.
  • A Carrier tune hold button sends an unmodulated carrier at the current frequency and gain, for setting drive, filter, SWR or dummy-load level. It is not saved as transmitting.
  • A refusal by the radio's driver is shown in its own words.

Radios that can transmit

Radio Notes
HackRF One / Pro (OnAir's own USB driver) 2 to 20 Msps, TX VGA 0 to 47 dB, the +14 dB amplifier is a switch. The HackRF Pro path is read from the vendor's sources, not tried: no HackRF Pro was available to the project.
PlutoSDR (libiio) 2.1 Msps and up, TX attenuation -89.75 to 0 dB
Any SoapySDR radio with a TX channel (LimeSDR, bladeRF, USRP and others) through its SoapySDR module

Every other radio (RTL-SDR, Airspy, RX888, SDRplay, Fobos...) is receive-only. The native LimeSDR, bladeRF and USRP drivers are receive-only: use their SoapySDR module to transmit. If no radio can transmit, the panel says so.

Modes that can transmit

Every mode that has a signal generator is offered except the cases below (a deny-list, not an allow-list). The Transmit panel has a payload field for each: callsign, grid, text, IDs, a file or the microphone, as that mode fits. Empty fields fall back to the demo signal.

  • TV and radio: DVB-T2, DVB-T, ATSC 1.0, DAB / DAB+, ISDB-T, DVB-S / S2 / S2X, DTMB, analogue TV (a test card, a video file or a live camera) and D2-MAC. Your own .ts / .m2ts file is sent as-is where the mode supports it.
  • Voice: FM broadcast (live microphone or a WAV / MP3 into a stereo multiplex with RDS), NFM, airband AM, analogue-TV sound and amateur SSB; M17 and FreeDV with Codec 2. DMR, P25, NXDN, dPMR and D-STAR cannot encode voice: IDs still go on the air, and a tone, silence or a WAV is offered.
  • Others: pagers (POCSAG and FLEX), ADS-B, AIS, ACARS, and further modes that have generators.

Standing warnings in the app: ADS-B simulates aircraft and AIS simulates vessels. Send them only into a dummy load or a shielded setup, never to an antenna: false aircraft or ships can confuse real receivers, which is a safety risk and illegal in most places.

Modes that are not offered

The interface shows the reason for each: the cellular modes (the generators model a network cell for testing), GNSS (spoofing), Bluetooth / Wi-Fi / HaLow / ANT+ / Remote ID (would impersonate those networks), ISM sensors and Datawell (receive-only harvesters), the spectrum analyser and every analysis, general-listening and workbench mode, time-signal clocks (spoofing), and Multitone paging (the real format is not public).

What has been tested

The loop-back tests (a generated signal decoded again by OnAir), the HackRF sample conversion, the PlutoSDR path against a fake libiio and the SoapySDR path against a fake driver run in the project's test suite. The maintainer has used transmit on a real radio.

See also Legal.

Clone this wiki locally