Terminal node controller
| Terminal node controller | |
|---|---|
| Abbreviation | TNC |
| What it does | Turns computer data into packet radio signals and back again |
| Main protocol | AX.25 |
| Computer interfaces | Serial (RS-232), USB, Raspberry Pi header, Bluetooth on some models |
| Types | |
| Classic hardware | TAPR TNC-2 and its clones, Kantronics KPC-3, AEA PK-232 |
| Modern hardware | TNC-X, TNC-Pi, NinoTNC |
| Software TNCs | Dire Wolf, UZ7HO Soundmodem |
| Operating modes | Command (terminal) mode, KISS mode, host mode |
A terminal node controller (TNC) is the device that sits between a radio and a computer in a packet radio station. It contains a modem, which turns data into audio tones for the transmitter and decodes received tones back into data, and a small microprocessor that handles AX.25, the amateur version of the X.25 data protocol. AX.25 wraps each block of data in a frame carrying the sending and receiving call signs and a checksum, so damaged frames can be detected and thrown away. TNCs made packet radio practical in the 1980s, and although software running on a computer's sound card now does the same job for many hams, hardware TNCs are still widely used for nodes, APRS stations and emergency networks.
What a TNC does
A TNC has two sides. On the radio side it connects to an FM transceiver's microphone input, speaker output and push-to-talk line. On the computer side it presents a serial or USB port. When the computer sends data, the TNC builds AX.25 frames, waits until the channel is clear, keys the transmitter and sends the frames as tones, most often 1200 baud audio frequency-shift keying on VHF. When it hears a frame, it checks the checksum and passes good frames to the computer.
The original TNCs were built for command mode, also called terminal mode. The operator typed commands such as CONNECT or MONITOR at a "cmd:" prompt on a simple terminal, and the TNC itself managed connections, acknowledgments and retries. Many also held a small personal mailbox.
KISS mode and host mode
Command mode suits a person at a keyboard but not a program juggling many connections at once. Two other ways of talking to a TNC grew up for software.
- KISS mode makes the TNC as simple as possible. It only converts between radio frames and a plain byte stream on the serial link, and the computer does all of the AX.25 work. Node software such as LinBPQ, APRS programs and Linux's built-in AX.25 networking all use KISS, and some newer TNCs offer nothing else.
- Host mode keeps the protocol inside the TNC but replaces the human command prompt with a structured exchange that a program can parse reliably. Several manufacturers had their own host modes, so software must support the particular TNC in use.
Hardware TNCs
The TNC-2, designed by Tucson Amateur Packet Radio (TAPR) in the mid-1980s, set the pattern for most of the units that followed. Notable models include:
- AEA PK-232. Advanced Electronic Applications' PK-232, introduced in the mid-1980s, was a multimode controller: besides packet it handled RTTY, AMTOR, CW, weather fax and other modes, with Pactor added later. It and its successors, such as the DSP-232, were a common sight in shacks through the 1990s.
- Kantronics KPC-3 and KPC-3+. The KPC-3 was a compact 1200-baud packet TNC from the early 1990s with a built-in personal mailbox, a simple node function, and KISS and host modes; later firmware added GPS and APRS features. The KPC-3+ that followed is still listed by Kantronics and remains in use at BBS sites and emergency operations centers, partly because it draws little current.
- TNC-X. A low-cost, KISS-only TNC by John Hansen, W2FS, described at TAPR's 2003 Digital Communications Conference and sold by Coastal ChipWorks, which has since ceased operations. It is built around a PIC microcontroller and a Bell 202 modem chip, which is why it is sometimes called the "PIC-based TNC," and its firmware is open source.
- Kantronics KPC-9612 Plus. A two-port TNC: one port runs 1200-baud packet and the other higher speeds, usually 9600 baud, so one box can serve a local 1200-baud network and a faster link at the same time. It has a built-in mailbox and KISS and host modes, and was replaced by the KPC-9612XE.

- TNC-Pi. A version of the TNC-X that plugs directly onto a Raspberry Pi's expansion header. John Wiseman, G8BPQ, adapted the firmware so that several boards can share one Pi over its I2C bus, which is handy for a node serving several radio links. Its radio connector uses the same pinout as the KPC-3.
- NinoTNC. A kit TNC designed by Nino Carrillo, KK4HEJ, and documented by the TARPN project. It connects by USB, speaks KISS, and offers a range of modems selected by a DIP switch, from 300 baud for HF to 9600 baud and faster on FM. Besides plain AX.25 it supports IL2P, a more efficient format with forward error correction that repairs damaged frames instead of discarding them.
Software TNCs
A computer sound card can do the modem work in software. Dire Wolf, by John Langner, WB2OSZ, runs on Linux, Windows, macOS and the Raspberry Pi and offers KISS and AGW interfaces to other programs. UZ7HO's Soundmodem is a popular Windows equivalent, especially for 300-baud HF packet. A software TNC needs only a radio, a sound-card interface and a way to key the transmitter, and its decoders often outperform older hardware on weak signals. Hardware TNCs still appeal where a computer's sound settings, operating-system updates or other audio programs could upset a station that must simply keep working.
See also
External links
- Coastal ChipWorks (TNC-X and TNC-Pi; now a closure notice)
- NinoTNC documentation at TARPN