Audio modem (AFSK)
The audio modem is a software TNC. The phone itself encodes and decodes 1200-baud AFSK packet audio, the Bell 202 tones of VHF APRS. That means any radio with a speaker and a microphone connection works, connected with a cable.
How it fits in
Add it like any other channel: open the Radio screen on the tab bar,
tap Add channel, and pick Audio modem, listed as "No TNC: a cable from the phone to
the radio". The channel summary reads AFSK 1200 plus how the radio is keyed. Switch the
channel on first: the signal meter, device routing, and push-to-talk settings all need the
modem running to mean anything.
The modem listens through the phone's audio input, so it asks for microphone permission. If you refuse it, the channel says exactly why it cannot hear the radio and where to fix it. Receiving carries on in the background behind the app's usual persistent notification. See Background & battery.
Wiring
Two directions, and they are independent:
- Receive: the radio's speaker or headphone output into the phone's audio input.
- Transmit: the phone's audio output into the radio's microphone input.
How you get there is up to your hardware: a USB-C audio adapter, the headset socket if your phone still has one, or a purpose-built interface such as a Digirig that presents itself as a USB sound device. The Listen through and Input settings choose where the modem listens; Transmit through and Output choose where it plays. Automatic is usually right, but set a device explicitly if the meter stays flat with a cable plugged in.
Android sometimes routes audio somewhere other than what you asked for, silently. The app checks and says so: if the modem is actually listening through the phone's own microphone rather than your cable, or transmit audio is going to the phone's speaker, a warning appears under the setting. Check that warning first when nothing decodes, because a wrong route looks identical to a dead cable.
Keying the radio: VOX or a serial PTT cable
Under Push to talk the channel offers two ways to key the transmitter:
- VOX: the tones key the radio themselves. Turn VOX on at the radio, and give the Transmit delay enough room to trip it: the delay is tone sent before the data, and with VOX it also has to open the transmitter. Too short means the start of every packet is lost. Nothing on the phone shows that loss; it is visible only to the stations that could not decode you.
- Serial cable: a handshake line on a USB adapter keys the radio, which is what a Digirig or a CAT cable does. Pick the Keying adapter, and leave the Keying line on RTS, which is the line on almost every commercial interface. Try DTR if the radio never keys. If the same USB device is already held by a USB TNC channel, only one of them can have it, and the app says which.
Setting levels
There is no gain slider in the app, on purpose: the demodulator normalises what it hears, so an amplifier stage in software would move the meter without decoding a single extra packet. The levels that matter are the real ones at either end of the cable:
- Receive level is the radio's volume knob. The decode counters tell you which way to turn it: "Nothing heard yet" means check the cable, the radio's volume and that the squelch is open; packets arriving corrupted means the signal is getting through and the level is too high, so turn the radio down.
- A corrupted packet is not always lost. The modem can often repair a packet that arrived slightly damaged and deliver it, and it only ever delivers a repair that passes the packet's own checksum. The decode line reports these as "N of those arrived damaged and were repaired", and the Radio screen's meter row shows "N repaired" beside "N corrupted". A rising share of repaired packets means the link is marginal (a weak signal, or a level a little off), not that anything is broken.
- Transmit level is Android's own volume control for whichever output you chose. The Output picker says which one applies: Call audio uses the headset socket and ignores the media volume, Media follows the media volume slider.
If the modem hears nothing at all, work down the Input source list in order. It is arranged as the troubleshooting procedure, starting with Voice recognition, which skips most of the phone's audio processing. The modem switches off Android's own automatic gain control, noise suppressor and echo canceller on the capture itself, on every source, for as long as it runs. Those processors exist to remove steady tones from speech, and a steady tone is the whole signal here. So the Input list is about which raw audio path the phone offers, not about dodging noise suppression yourself.
What to expect
Receive and transmit both work over the air. The modem also carrier-senses the channel: it recognises other stations' packet
transmissions and shows CHANNEL BUSY rather than transmitting over them. It cannot detect
voice, so it will not hold off for a net in progress.
The modem runs several decoders at once, each suited to a different kind of audio path, which is what lets it copy weak and distorted audio. That includes speaker or headphone output, which a receiver has already de-emphasised so the two tones arrive at different levels. Measured on a recording of a busy channel, this release copies about six percent more packets than the last one from clean audio, and about sixty percent more from de-emphasised speaker audio.
Listening effort, under the channel's settings, chooses how many of those decoders run. Balanced, the default, runs a smaller set and on a busy channel copies about one packet in a hundred fewer than the full set. Maximum runs every decoder the modem has, copying the weakest and most distorted packets, for about four times the processor time. On a recent flagship phone that measured about 3.5 percent of one processor core on Balanced and about 14 percent on Maximum, for as long as the modem is listening. Choose Maximum when the phone is on a charger and every marginal packet matters; leave it on Balanced on a battery. Changing it reconnects the modem.
When something is arriving but nothing decodes, Record for diagnosis captures 30 seconds of exactly what the phone is hearing, before any of the modem's own processing. That recording is useful evidence for working out where the level or routing has gone wrong.
If you would rather put dedicated hardware in the chain, the same radio can move up to a Bluetooth, Bluetooth LE, or USB KISS TNC later, and the app treats them all as channels side by side.
On a computer
The Windows app has the same modem, with the same decoders. It uses the computer's sound devices in place of a phone's audio socket. Add the channel the same way. There it is listed as "No TNC: a cable from the sound card to the radio".
What is different from a phone:
- You choose the sound devices by name, before you switch the channel on. Listen through is the device the radio's audio comes in on. Transmit through is the device that feeds the radio's microphone input. A radio interface such as a Digirig or a SignaLink is in both lists under the name Windows gives it, often "USB Audio Device" or "USB Audio CODEC". RESCAN reads the lists again after you plug something in.
- System default is usually the wrong choice. It is the device Windows uses for everything else, which on most computers is its own microphone and its speakers. A channel left on it plays its packets through the speakers. Once the channel is on, In use under each list names the device that was opened.
- If the chosen device is unplugged, the channel stops. The list shows the device as "(not connected)" and the channel shows the error. It does not move to another device. It reconnects by itself when the device is back.
- Serial cable keying works with any serial port, a built-in one included, and not only a USB adapter. Choose it under Keying port.
- Transmit level is the Windows volume of the output device. Receive level is the radio's volume, as on a phone.
- There are no Input and Output pickers. Those choose between a phone's audio paths.
- Record for diagnosis saves a file on the computer and shows where it is.
Windows can apply a sound device's "audio enhancements" to what the modem hears. If the meter moves and nothing decodes, turn them off for the device the radio is on: in Windows, open Settings → System → Sound, choose the input device, and set Audio enhancements to Off.
The modem keeps listening when the app's window is closed, as every channel does. See It keeps running in the tray.
Last updated 9 October 2026