Skip to content

Concepts

If you are new to Packet Radio, several of the terms used in this documentation may be unfamiliar. This section provides a brief overview of the concepts used in Pax25. We'll assume the reader at least has passed their Technician exam (or their non-US equivalent certification) and has a basic understanding of the Amateur Radio Service.

Addresses

Addresses are used to identify stations and their connection points. They are made up of a name and an SSID. For example, N0CALL-1 is an address, where N0CALL is the name and 1 is the SSID.

The designers of AX.25 imagined that each station would have one name and up to 16 SSIDs. However, in practice, it is common for stations to have multiple names. For example, a station may have a name for its main application, and a name for its PBBS application.

One typical pattern used by packet radio operators is to have their station send ID datagrams from a name which matches their callsign. This datagram (called a "beacon") can contain references to the other names used by the station, satisfying the identification requirement of the FCC (or other licensing body). A station named KW6FOX may make their mail available on a name of FOXBOX, which is easier to remember than KW6FOX-5 or similar.

You may have as many names on your station as you can properly supply identification for. You may have up to 16 SSIDs per name. Clever use of names and SSIDs can allow you to have many applications running on your station, each with its own address.

APRS

APRS is a protocol for sending location data, weather, or other datagrams of interest over packet radio. It is commonly used to track the location of vehicles, weather stations, and other mobile objects. It is also used to send short text messages between stations. It is a very common use of packet radio, but not the focus of Pax25, which is primarily interested in the creation of virtual circuits.

Application

Applications, as the term is used in other domains, are software programs that run on a station. They are responsible for sending and receiving data over the radio. Pax25 is designed to make it easy to write applications that can be used to send and receive data over packet radio.

Applications leverage the virtual circuits provided by AX.25 to send and receive data. Clever applications find novel ways to play with the unique properties of packet radio to provide useful services to users.

This documentation provides a guide for building your own AX.25 applications.

AX.25

AX.25 is a data link protocol used by packet radio. It is loosely based on the X.25 protocol, which was (and is, to some extent) used by Telecommunications companies to build virtual circuits in order to more efficiently use telephone lines. Rather than requiring a new cable for every call that would be connected, X.25 allowed multiple calls to be connected on a single cable.

By the time AX.25 had arrived, IP had not yet become dominant and X.25 was commonplace. Wanting to create data networks over the air, amateurs began experimenting by modifying the existing AX.25 protocol and re-implementing pieces of it purely for data transmission. Over time, several versions of the protocol have arrived, and a few of them have even been published, but all published specifications fail to describe existing implementations accurately.

Thankfully, pax25 does the hard work of divining a practical implementation of the protocol for you. Users of pax25 need not concern themselves with the details of the protocol to build applications using its application framework. However, advanced users (and those who wish to contribute to pax25's library code) also have access to a wealth of utilities for working with AX.25.

Datagrams

AX.25 supports the transmission of datagrams, and, in fact these may be the most common packet form. A datagram is a single packet of data that is either sent from one station to another, or to any station nearby (a broadcast). Datagrams are typically used for things like APRS data, or ID packets, announcing the name(s) and SSIDs of a station.

Datagrams have no connection state. They are analogous to UDP packets in TCP/IP, and have no guarantee of delivery, nor any protocol-level system of acknowledgement.

Digipeaters

Digipeaters are stations that retransmit packets to help them reach further stations, or stations having difficulty hearing directly from the source station under current conditions.

The AX.25 protocol allows up to 8 digipeaters to be specified, however it is recommended never to use more than 2, as digipeating does not have the guarantees or protocol support for selective retransmission that a chain of virtual circuits might provide instead. For this reason, most long-distance chains are performed by connecting explicitly from node to node, using the next node as a 'jump box' to connect to the node after it.

When using IP as a connection mode between packet stations, digipeating may be sufficient in real-world conditions rather than connecting from node to node, however more addresses in the frame reduces the amount of space available to add information, increasing the amount of overhead per packet. See the frames reference for more information.

KISS

KISS (Keep It Simple, Stupid) is a protocol provided by most TNCs to make them more like dumb modems. Some TNCs are built to ONLY work with KISS-mode, since software solutions for controlling them have become quite popular. When a TNC is in KISS mode, it will simply pass through any data it receives to the computer, and any data it receives from the computer to the radio.

Pax25 is designed to be used with a TNC in KISS mode. It cannot control a TNC which is not in KISS mode.

Packet Radio

Packet radio is a digital transmission mode that is typically run atop FM radio. Listening using a standard FM radio will sound like opinionated noise, not unlike old telephone modems used in the early Internet.

The sounds that the radio makes are actually a series of tones that represent binary data. These tones are transmitted using a technique called Frequency Shift Keying (FSK), a means of modulating an FM carrier signal as data. The bitrate of transmissions varies based on the band and configuration, but on VHF is typically 1200 baud theoretical, or around 300 baud in practice with real-world conditions.

The most common data which is sent over packet radio are things like:

  • APRS (Automatic Packet Reporting System) data, which is used to track the location of vehicles, weather stations, and other mobile objects
  • Direct 2-way text messages between stations, AKA Keyboard-to-Keyboard messages
  • Email messages, which are sent to a special email server that is connected to the packet radio network
  • BBS (Bulletin Board System) messages, which are stored on a special server and can be read by other stations

Service Set Identifiers (SSIDs)

A Service Set Identifier (SSID) is the numeric part of an AX.25 Address. It is used to identify different applications running on the station. For example, a station may have an SSID of 0 for its main application, and an SSID of 1 for its PBBS application.

Connecting to a specific SSID will allow you to connect to a specific application running on a station. For example, connecting to N0CALL-1 could connect you to the PBBS application running on the station N0CALL.

When no SSID is specified, the SSID defaults to 0. A name may have up to 16 SSIDs, numbered 0 through 15.

Station

An AX.25 station is a packet radio station using the AX.25 protocol. Stations typically involve a computer, a TNC, and a radio. The computer runs applications that send and receive data over the radio using the TNC.

Each station has at least one name (typically, its callsign). Each name can have several IDs known as Service Set Identifiers (SSIDs), each of which may be connected to by other stations. A name and SSID pair is known as an AX.25 address.

Terminal Node Controller

A Terminal Node Controller is a device that is used to connect a computer to a radio. It is a specialized computer (or software application) that is designed to send and receive data over the radio. It is typically connected to the computer using a serial port, and to the radio using an audio cable.

A TNC is very similar to a modem. TNCs can vary in how 'smart' they are. Some TNCs are entirely 'dumb' and only concern themselves with sending specific data packets as instructed over KISS mode. Others contain a swath of applications for making communication with other stations easier and fun. They can be programmed to do things like:

  • Decode and encode data using the AX.25 protocol
  • Send and receive APRS data
  • Repeat digital signals heard from one station to other stations within range
  • Act as a 'jump box' to connect one station to another station over a long distance (TNCs performing this function are said to be acting as 'nodes' in the packet network.)
  • Run applications like a Personal Bulletin Board System (PBBS)

Because of the wide range of responsibilities and implementations of TNCs, the line between what constitutes a TNC is blurry. From a strictly technical standpoint, the TNC is only the hardware that performs the modulation and demodulation, monitors for the carrier signal, and performs other basic signaling functions.

However, the term expands to envelop the smart software running on top of it. The virtual stations built with Pax25 could be colloquially referred to as a software TNC, even though it performs no actual modulation or demodulation-- it just sends instruction to the device which does so. This has the unfortunate linguistic side effect of 'having your TNC control your TNC.'

Most TNCs are designed to be used with a computer using a serial connection. On modern machines this involves connecting using a specialized USB to serial port cable. A TNC can be had relatively inexpensively when searching on eBay or other online marketplaces. You are also likely to come across them at your local ham fest or equipment swap meet.

The TNC is not itself a radio-- it must be connected to one via cable, so that it can send and receive the signals that it is processing. There are also full software TNCs like Direwolf, which perform the modulation and demodulation in software.

Virtual Circuits

Virtual circuits are connections between stations which can be used as a reliable, ordered stream of data. They are similar to TCP connections in the Internet Protocol (IP) world. They are used to send things like email, keyboard-to-keyboard messages, and BBS messages.

Pax25 looks to leverage these virtual circuits to build applications that can be used to send and receive data over packet radio.