Packet radio is one of the oldest digital modes in amateur radio, and one of the most misunderstood. It gets described as dead, as a slow internet, as a way to send private email, and as a single 1200-baud mode on 2 meters. None of those is quite right.
This post is the first in a series on packet radio. It covers what the mode is underneath: the AX.25 frames every application shares, the modems that put those frames on the air, how stations share one channel, and what the U.S. rules allow today. Later posts map the applications, then take one at a time: APRS, BBS store-and-forward, keyboard chat, Winlink, file transfer, telemetry, and running IP over packet.
01 · What Packet Radio Is
A packet station doesn’t send a continuous stream. It breaks data into frames: self-contained blocks that each carry who sent them, who they’re for, what kind of frame they are, the data itself, and a checksum. A receiving station checks every frame and silently drops any that arrive damaged.
That framing is what makes packet different from modes like RTTY or FT8. Because every frame is addressed, many stations can share one frequency, frames can be relayed by other stations, and a link can detect lost data and send it again.
“Packet” doesn’t name one speed or one band. The same frames can ride a 1200 bit/s audio modem on 2 meters, a 9600 bit/s modem on 70 centimeters, or other modulations entirely. What ties them together in amateur use is the link-layer protocol: AX.25.
02 · AX.25: the Frame Every Application Shares
AX.25 is the amateur adaptation of the HDLC family of link protocols, the same lineage as the X.25 link layer. The amateur changes are the important part: addresses are call signs, frames can be relayed through other stations, and there’s a connectionless frame type for broadcasts [1].
The current specification is AX.25 Link Access Protocol for Amateur Packet Radio, Version 2.2, revision July 1998, published by TAPR [1]. Every frame has the same outline:
| Field | Size | What it holds |
|---|---|---|
| Flag | 1 octet | 0x7E (01111110), marking the start of the frame |
| Destination | 7 octets | Call sign and SSID the frame is addressed to |
| Source | 7 octets | Call sign and SSID of the sender |
| Digipeaters | 0 or more × 7 octets | Stations asked to relay the frame |
| Control | 1 or 2 octets | Frame type and sequence numbers |
| PID | 1 octet | Which higher-layer protocol the data belongs to (I and UI frames only) |
| Information | Default up to 256 octets | The data itself; larger sizes can be negotiated |
| FCS | 2 octets | 16-bit frame-check sequence |
| Flag | 1 octet | 0x7E, ending the frame |
A few details matter later in this series:
- Addresses are call signs. Each address field holds up to six characters of call sign plus a secondary station identifier (SSID) from 0 to 15, so one licensee can run several stations, such as
KM7HQX-9in a vehicle andKM7HQX-10on a node. - The information field defaults to 256 octets [1]. Stations can negotiate a different size; the default is not a hard ceiling.
- Flags can’t appear inside a frame. The sender inserts a
0after any five consecutive1bits (bit stuffing), and the receiver removes it, so the0x7Epattern only ever marks frame edges [1]. - The FCS catches corruption. It’s computed by the sender over the frame before bit stuffing and checked by the receiver after the stuffed bits are removed. A frame that fails the check is discarded [1].
03 · Connected and Unconnected Frames
AX.25 has three families of frames:
- I (information) frames carry numbered data inside a connection.
- S (supervisory) frames acknowledge I frames or ask for them again.
- U (unnumbered) frames set up and tear down connections, and include UI frames, which carry data with no connection at all.
The split between connected and unconnected operation is the most important thing to understand about packet.
A connected session, such as logging in to a BBS or a node, works like a phone call. The two stations set up a link, number every I frame, acknowledge what arrived, and resend what didn’t. That sequencing, acknowledgement and retransmission makes delivery far more dependable than a bare broadcast. It is not a guarantee: a session can still fail when the path is too poor and retries run out, and a 16-bit checksum has a small but real chance of missing a corrupted frame.
An unconnected UI frame is fire-and-forget. Nothing acknowledges it and nothing resends it at the link layer. APRS position reports, telemetry and beacons are UI frames, which is why APRS has to tolerate lost packets by design [2].
04 · Putting Frames on the Air
AX.25 doesn’t specify a modem. In practice two families dominate on VHF and UHF.
1200 bit/s AFSK
The classic mode uses Bell 202 audio tones, 1200 Hz and 2200 Hz, fed into an ordinary FM transceiver through its microphone and speaker audio paths. Data is sent with NRZI coding: a 0 bit changes the tone and a 1 bit leaves it alone. That’s why bit stuffing doubles as a clock aid: no long run of 1s can leave the receiver without a transition to lock to.
Because it rides on normal voice audio, 1200 bit/s packet works with almost any FM radio. It’s also slow. 1200 bits per second is 150 bytes per second before any overhead. Once flags, headers, transmitter key-up delay, waiting for a clear channel and acknowledgements are added, the useful throughput of a real link is well below that, and it depends heavily on how busy the channel is.
9600 bit/s G3RUH
James Miller, G3RUH, designed the 9600 bit/s modem most amateurs still use [3]. It isn’t audio tones. It sends a scrambled, filtered two-level baseband signal straight to the transmitter’s modulator (the varactor, in the original design) and takes it from the receiver’s discriminator, ahead of the normal audio stages [3].
That makes 9600 bit/s far more particular about the radio. It needs a reasonably flat audio path in both directions, without the pre-emphasis, de-emphasis and voice-band filtering of the microphone and speaker circuits. In practice that usually means a radio with a dedicated data port rated for 9600 bit/s. A radio without one may work poorly or not at all; how well depends on that radio’s actual signal path.
05 · TNCs, KISS and Software Modems
The box that turns frames into tones and back is the terminal node controller (TNC). TAPR’s first TNC made what TAPR records as its first all-American-hardware packet contact on June 25, 1982, on 146.55 MHz in Tucson [4]. Its successor, the TNC-2, announced in May 1985, became the pattern for a generation of commercial TNCs [4].
A traditional TNC does everything: the modem, the AX.25 protocol, and a command interface. In 1987 Mike Chepponis, K3MC, and Phil Karn, KA9Q, published KISS, a simple framing protocol between a computer and a TNC [5]. In KISS mode the TNC becomes little more than a modem, and the computer runs the protocol. That split is why most packet software today, from APRS clients to Winlink to Linux’s own AX.25 stack, talks KISS.
Today the TNC is often software. Programs such as Dire Wolf [6] run the modem in a computer’s sound card, connected to the radio through a simple audio interface, and offer KISS to other programs. Dire Wolf’s documentation publishes decoder comparisons that show a well-tuned software modem decoding more packets than many older hardware modems. How much better a particular station does depends on its radio, audio levels and channel, not on the software alone.
06 · Sharing One Frequency
There’s no central controller on a packet channel. Every station decides for itself when to transmit, using carrier sense and a randomized wait:
- The station listens. If the channel is busy, it waits.
- When the channel goes quiet, it waits one slot time.
- It then transmits with a set probability, the persistence value. If it doesn’t, it waits another slot and tries again.
This is p-persistent carrier-sense access. The random draw spreads out stations that were all waiting for the same transmission to end, so they don’t all key up at once. The exact parameters and the arithmetic behind the random draw depend on the TNC or KISS implementation.
It doesn’t detect collisions. A half-duplex radio can’t hear while it’s transmitting, so two stations that key up together both lose their frames and only find out when no acknowledgement comes back. Hidden stations make it worse: two stations that each reach a digipeater but can’t hear each other will happily transmit over each other. This is the main reason a busy packet channel slows down well before the raw bit rate suggests it should.
07 · Digipeaters and Nodes
A digipeater is a station that receives a frame addressed through it and sends it again, on the same frequency. It works entirely at the link layer: the sender lists the relay stations in the frame’s address field, and each one marks the frame as repeated and passes it on.
Every relay costs airtime, because the same frame goes out once per hop on the same channel. AX.25 v2.2 accordingly limits digipeating to a maximum of two hops [1]. APRS uses the same mechanism with generic aliases such as WIDE1-1,WIDE2-1 instead of specific call signs, and later posts cover how those paths behave on a crowded channel.
Nodes are different. Network software such as NET/ROM, ROSE and BPQ adds a layer above AX.25: a user connects to a nearby node, and the node carries the connection onward across its own links, often on other frequencies or bands. That’s how packet networks reached across regions without long digipeater chains.
08 · What Packet Radio Isn’t
It isn’t fast. Even 9600 bit/s is slow by any modern standard, and a shared channel delivers less than its raw rate. Packet suits short messages, position reports, telemetry and text. It doesn’t suit web browsing or large files.
It isn’t private. U.S. amateur rules prohibit messages “encoded for the purpose of obscuring their meaning” [7]. Anyone with a receiver and a decoder can read packet traffic. Ordinary encrypted protocols such as TLS, HTTPS or SSH exist to hide their contents, so they don’t fit amateur messaging. The rule turns on purpose, though, and some uses, such as authentication that leaves the message itself readable, are a closer question than a blanket “no encryption” rule suggests.
It isn’t the internet. IP can be carried over AX.25, and amateur networks have done it for decades, but packet is a link layer, not a network. Running ordinary internet traffic over it raises both the speed problem and the privacy rule above. A later post covers what plaintext services do work.
It isn’t dead. Keyboard-to-keyboard packet and local BBSes faded once home internet arrived. But APRS runs on AX.25 UI frames every day, Winlink uses packet for VHF and UHF access, and BBS and node networks still forward mail in many areas.
09 · The U.S. Rules Today
Packet stations operate under 47 CFR Part 97 like any other amateur station. The limits that matter most are the data emission standards in § 97.307(f), applied band by band through the table in § 97.305(c) [8][9]:
| Where | Data limit (§ 97.307(f)) |
|---|---|
| HF data segments, including 10 m below 28.3 MHz | 2.8 kHz authorized bandwidth, with no symbol-rate limit ((f)(3)) |
| 6 m and 2 m | 19.6 kilobauds, 20 kHz authorized bandwidth ((f)(5)) |
| 1.25 m (222–225 MHz) and 70 cm | 56 kilobauds, 100 kHz authorized bandwidth ((f)(6)) |
| 33 cm and above | No symbol-rate or bandwidth figure in (f)(7) |
The HF row is new enough that a lot of packet material is out of date. Until January 8, 2024, data on most HF bands was capped at 300 bauds. The FCC’s Report and Order FCC 23-93 replaced that symbol-rate limit with the 2.8 kHz bandwidth limit [10]. The separate 2200 m and 630 m limits still apply, and the old 1200-baud limit for 10 meters is gone too: that paragraph of the rule is now reserved [8].
Two other rules come up constantly with packet:
- Identification (§ 97.119). A station must send its assigned call sign at the end of each communication and at least every 10 minutes during it, using an authorized method, which for a data station includes a specified digital code [11]. The AX.25 source address normally carries the station’s call sign, which is why packet usually identifies itself. It isn’t automatic in every case, though: an alias, a gateway that rewrites addresses, or traffic sent on behalf of another station needs its own look.
- Automatic control (§ 97.221). Unattended digital stations such as digipeaters, nodes and BBSes rely on this rule. It is narrower than “automated stations are allowed”: it applies on 6 meters and shorter wavelengths and on listed HF segments, with extra conditions elsewhere, and it excludes several station classes [12].
10 · What Comes Next in This Series
Each of these builds on the frames, modems and channel-sharing above:
- Applications: what packet radio is used for, and the networks they run over.
- APRS: position, objects and messages over UI frames, and why path choice matters.
- BBS and store-and-forward mail: how bulletins and personal mail move between systems.
- Keyboard chat and Convers: live conversations over connected sessions and nodes.
- Winlink over packet: VHF/UHF access to the Winlink network.
- File transfer: moving files over connected sessions without wasting airtime.
- Telemetry and sensors: APRS telemetry and what Part 97 says about it.
- IP and plaintext services: what internet-style protocols can sensibly run over packet.
11 · Primary References and Citations
- TAPR, AX.25 Link Access Protocol for Amateur Packet Radio, Version 2.2, revision July 1998, ax25.net. Frame format, address fields, 256-octet default information field, bit stuffing, FCS, and the two-hop digipeating limit.
- APRS Working Group, APRS Protocol Reference, Protocol Version 1.0, document v1.0.1, aprs.org. APRS use of AX.25 UI frames.
- James Miller, G3RUH, 9600 Baud Packet Radio Modem Design, ARRL 7th Computer Networking Conference, October 1988, amsat.org. The scrambled, filtered 9600 bit/s modem, fed to the transmitter’s varactor and taken from the receiver’s discriminator.
- TAPR, History, tapr.org. First TAPR packet contact (June 25, 1982) and the TNC-2 announcement (May 1985), from Packet Status Register #1 and #15.
- Mike Chepponis, K3MC, and Phil Karn, KA9Q, The KISS TNC: A Simple Host-to-TNC Communications Protocol, 1987, ka9q.net.
- John Langner, WB2OSZ, Dire Wolf, github.com/wb2osz/direwolf. Software sound card TNC and its published decoder comparisons.
- 47 CFR § 97.113, Prohibited transmissions, eCFR. Paragraph (a)(4).
- 47 CFR § 97.307, Emission standards, eCFR. Paragraph (f).
- 47 CFR § 97.305, Authorized emission types, eCFR. Paragraph (c), the band table.
- FCC, FCC 23-93, Report and Order on Amateur Radio Service data rules, docs.fcc.gov; effective January 8, 2024 (Federal Register).
- 47 CFR § 97.119, Station identification, eCFR.
- 47 CFR § 97.221, Automatically controlled digital station, eCFR.
Key Takeaways
Packet Is a Link Layer, Not a Speed
What makes a mode “packet” is AX.25 framing: call-sign addresses, frame types and a checksum. The same frames run over 1200 bit/s audio, 9600 bit/s baseband or other modems.
Connected and Unconnected Behave Differently
Connected sessions number, acknowledge and resend frames, so delivery is dependable but not guaranteed. UI frames, which APRS uses, are sent once and never acknowledged.
The HF Rules Changed in 2024
Since January 8, 2024, HF data segments have a 2.8 kHz bandwidth limit instead of the old 300-baud cap, and the 10-meter 1200-baud limit is gone. Older packet guides predate both changes.