HamNet Packet Radio Tutorial - Part One
by Scott Loftesness W3VS
Now that your SYSOP has begun experimenting in the exciting new world of
Packet Radio, I thought it might be interesting to others here on HamNet
to begin sharing a bit more of this new technology.
. Recently, I've uploaded a couple of news items which have highlighted
commercial applications of packet radio techniques: the Genstar system
being developed by Gerard O'Neil of Princeton University and the recently
announced Motorola Portable Communications Terminal. I believe these
to be just the first of many announcements we will see in the coming years
as the packet radio form of digital communications finds even more
. In the meantime, we amateurs are blazing many new trails in this
technology - from the simple TNC idea to the elegant PACSAT orbiting
bulletin board system. Most of the success of the amateur radio packet
efforts is due to a group of true enthusiasts scattered across the
United States. Leading the way were our Canadian friends to the north who
developed the original "Terminal Node Controller". Doug Lockhart and his
friends in Vancouver developed an 8085-based TNC in the late '70's and
its popularity spread quickly as they made available the PC board and
. Pockets of packet interest rapidly developed in the Washington, DC,
Tucson, AZ, and San Francisco Bay Area - to be quickly followed by
new groups in St. Louis, New Jersey, and Southern California. The first
ARRL Packet Radio Conference was held in October, 1981 in Gaithersburg,
Maryland - and provided the first truly international amateur packet
get together. Plans were reviewed - and ideas shared. One of the
attendees, Den Connors, KD2S, moved off to Tucson to join a rapidly
growing group of friends and formed Tucson Amateur Packet Radio. This
energetic group began the creation of a completely new, "second generation"
TNC - building on the best of the original work done in Vancouver.
. While the Tucson group was developing the hardware for a TNC, a group
led by Tom Clark, W3IWI, became concerned about the lack of any kind
of amateur standard as far as packet radio protocols were concerned.
The original Vancouver protocol worked fine for a small group in a
single geographic area - but clearly would not support the kind of
growth in packet radio enthusiasts that was expected. In addition, the
onset of the Phase IIIB amateur satellite and its packet radio repeater
possibilites added impetus to the need to develop a new standard.
. Meeting in October, 1982, this group developed a new amateur standard
called AX.25. The standard was completed just in time - it was incorporated
into the original version of the Tucson (TAPR) TNC board in late 1982.
Approximately 200 of the TAPR boards have been distributed nationwide -
for extensive field testing of the hardware/software combination. This
board has become a real hit - it worked beyond anyone's expectations and
has created a tremendous additional interest in packet radio. The test
phase is nearly complete - and will be followed by availability of a
parts kit later this year for general distribution through the amateur
community. By this time in 1984, amateur packet activities will have
grown dramatically from the several hundred current experimenters to
many more amateurs - and with exciting implications for new applications
using the new technology.
. The TAPR TNC is a remarkable piece of equipment - and a truly elegant
hardware/software design. We'll spend some time describing some of the
details of this TNC. Much of this material is directly from the
excellent manual which accompanied the beta test boards - and which is
available from TAPR for $15 (PO Box 22888, Tucson, AZ 85734).
. The TAPR TNC is the result of a tremendous design effort by many
people including Mark Baker, Marc Chamberlin WA7PXW, Pete Eaton WB9FLW,
Chuck Green N0ADI, Dave Henderson KD4NL, Lyle Johnson WA7GXD, Dave
McClain N7AIG, Dan Morrison KV7B, Margaret Morrison KV7D, and Harold
Price NK6K, along with Den Connors.
. Very few terminals or home computers contain the hardware and
software necessary to attach to, and control, an amateur radio.
Compatibility between such systems could obviously be a problem.
Because of this, extensive testing and use of packet radio without some
additional tool would be very difficult, if not impossible.
. The TNC is that tool. It is connected between your terminal (or
computer) and your amateur radio. Just what is it that the TAPR TNC
provides? Between the interfaces to your terminal or computer and
your radio is a complete microcomputer with memory and input/output
devices. This microcomputer with appropriate software is used to
implement the packet radio protocols. Thus any computer can be interfaced
to any other computer via amateur radio using the TNC.
. The TAPR TNC connects to an RS-232-C interface, found on most terminals
and home computers. A parallel interface is also provided, although not
supported for terminal interfacing in the initial software release. The
necessary connections exist to interface the TNC to your amateur radio
equipment. These connections include lines to your external speaker
(or earphone) jack and the microphone jack (both for microphone audio
and for push-to-talk control).
. Also included is a complete modem used to convert the digital
information coming from the computer or terminal into an analog
signal (a set of audio tones) which your radio can transmit. It
also performs the reverse function, converting analog signals from
your receiver to digital data. Because of the bandpass characteristics
of many amateur radios, an active audio filter is also included in the
TNC. Passive filters proved inadequate to support transmission rates
of 1200 baud - a design objective.
. Power for the electronics on the board required four different
voltages: +5, -5, +12, and -12 volts. The TNC includes on board power
supplies for these voltages and uses a custom wound power transformer
designed specifically for TAPR and included with the board.
. But hardware is only part of the TNC. Software is equally (if not
more) important, for it's the software which makes this hardware useful
in handling packet radio protocols.
. The TAPR software was designed to support two interfacing requirements.
The first interface is to the computer or terminal and involves
processing commands and assembling data into packets. Also, packets
received must be processed and formatted for display back to the
computer or terminal. The second interface is the radio interface
which provides two different packet communications protocols (AX.25
and the original Vancouver protocols), keying the radio, and sending
proper Morse code identification using your call sign. The protocol
involves accessing the shared radio channel, formatting and sending
packets, receiving and deciphering packets, and filtering out packets
not intended for your station.
. The software is implemented on the TAPR board in read only emories
(ROM's). 24K of ROM is provided on the board for this purpose, along
with 6K of on-board random access memory (RAM).
. The TAPR TNC beta test version sold for $200 - a very low price
for such an incredibly well-designed and engineered unit! As mentioned
earlier, the initial tests using this board have been most impressive.
I'll provide a more detailed description of both the hardware and
software components in forthcoming tutorial messages.
HamNet Packet Radio Tutorial - Part Two
by Scott Loftesness W3VS
. We'll continue our tutorial on packet radio by reviewing in more
detail the hardware and software implemented on the Tucson Amateur
Packet Radio (TAPR) Terminal Node Controller (TNC).
. The TAPR TNC is a self-contained, microprocessor-based device intended
to act as an intelligent interface between a user's ASCII communcations
system (terminal or computer) and radio-based packet communications.
. A 6809 microprocessor acts as the system CPU in the TAPR TNC. The
6809 is readily available and widely accepted for application in
dedicated function controllers as well as general purpose low-end
computers. It executes the software stored in the system's EPROM's.
. The 6809 has an internal 2-phase clock generator and provides
control, address, and data bus input/output for family peripheral
devices. It has capabilities for position-independent code and is
designed to support multiple stacks, making it very efficient for
executing block structured high level languages such as Pascal and
Forth. Information on the 6809 architecture is available in Motorola,
Hitachi, and AMI literature - and in several books which are widely
available in the computer sections of most bookstores.
. The serial port is designed to provide a full-duplex RS-232-C
interface for the user's terminal or personal computer. Full baud
rate selection from 50 baud to 19.2 kilobaud is supported by the
port. EIA RS-232-C levels and transition rates are implemented as
well. The serial port is controlled by a 6551 LSI UART which contains
an internal, software-controlled baud-rate generator. The transmitter
and receiver are double-buffered and capable of interrupt-driven
operation. The 6551 supports hardware flow control - allowing the
terminal or computer to pace input and output from the TNC. 1488 and
1489A devices are used to translate the TTL levels from the 6551 to
RS-232-C levels for the port itself.
. A parallel port is also included on the TAPR board. Although not
used for terminal support in the initial releases of the supporting
software, it is used for certain status indications. A 6820 is used
to provide two 8-bit TTL-level handshaking ports.
. The system port interfaces to other devices on the TNC itself.
These include a non-volatile RAM chip used to store certain of the
system parameters across power-downs, DIP switches used for certain
reset options, the HDLC controller chip, and an indicator driver
interface for a variety of LED-monitored system functions. Implemented
using a 6522, the system port also includes timing functions used
for HDLC baud rate generation, software timing functions, the CW
identification, and on-board calibration of the modem frequencies.
The 6522 is a very powerful LSI chip which incorporates a pair of 8-bit
programmable I/O ports, four control lines (for handshaking), two
16-bit programmable timers/counters, and an 8-bit shift register.
The non-volatile RAM is used to store system parameters that are not
normally changed such as call sign, terminal attributes, and timing
parameters, but which remain user alterable. This allows configuration
changes for a given session only, or on a "permanent" basis. The system
port also handles the interface to the radio push-to-talk circuitry.
. A Western Digital WD1933B HDLC controller is used to implement
the HDLC standard bit oriented protocol including CRC check sum and
zero bit insertion. The HDLC controller interfaces to an on-board
1200 baud modem providing phase-coherent AFSK modulation (with Bell
202 compatibility) using the EXAR 2206/2211 chips. Also included
is the necessary impedance matching circuitry for interface to
most popular amateur radio equipment. A 14-second hardware "watchdog"
timer is inserted in series with the transmitter push-to-talk line
to prevent accidental RF channel lockout which might be caused by
a software error.
. A unique feature of the TNC is the capability for on-board
calibration of the modem tone frequencies. This is accomplished
using jumpers which allow for the modem to be disconnected from
the HDLC chip.
. The on-board memory bank consists of six JEDEC-standard 28-pin
"byte-wide" sockets. Three of these sockets are mapped for 2K
static RAM's. The other three sockets are mapped as 8K EPROM or
static RAM sites. The configuration supports 2716, 2732 and
2764-type EPROM's. A custom memory map PROM is included which
provides the address decode for the ROM and RAM chips.
. Also included on the TAPR TNC board is a user wire-wrap area -
primarily to allow custom interfaces to be developed to support
unusual radio interface requirements. Power busses are included
in the area so that active devices may be added directly onto the
TNC board itself as may be required by the user.
. This completes the hardware description of the TAPR TNC. As you
can see, it's a very complete design using the latest in LSI
HamNet Packet Radio Tutorial - Part Three
by Scott Loftesness W3VS
I'm going to continue this series by describing the operation of the
Tucson Amateur Packet Radio (TAPR) Terminal Node Controller (TNC) -
and the tremendous function which has been implemented in the TNC
software will become readily apparent!
. The TAPR TNC operates in one of three modes:
. Command Mode
. Converse Mode
. Transparent Mode
. Command mode is used to modify various software operating
parameters. Converse mode and Transparent mode are both data transfer
modes - supporting transmission and reception of packets across the
. Command mode is automatically entered upon power-up or reset of
the TNC. It can also be entered from one of the other modes by sending
an appropriate control sequence from the terminal to the TNC. For
example, if I'm running in Converse mode, I can get to command mode by
simply entering a control-C. I can they make any operating mode
parameter changes I need to, and return to Converse mode by using the
CONVERS command. The flexibility the TNC provides in this regard is
really outstanding. You can switch into and out of Command mode very
easily - and not lose any data coming across the link.
. Many of the parameters which can be altered in Command mode
are saved in the NOVRAM chip mentioned earlier in this series. This
chip is an electrically erasable read-only memory - and permits me,
for example, to save away my call-sign (which becomes my address
in the AX.25 protocol) so that I need not reset it every time I power
up. The NOVRAM really helps make the TNC startup procedure extremely
simple - since most all of the parameters I have tailored have been
tucked away into the NOVRAM.
. In addition to the NOVRAM, the ROM contains a set of default
operating parameters which can be invoked to completely reset the
NOVRAM values. This is helpful after experimenting with a number
of parameters - and deciding to start over from the ground up!
. To give an example of how simple it is to get the TNC "on-the-air",
the following sequence of commands will take the TNC from power-up to
. MYCALL W3VS - Sets my callsign into the address field.
. (Only necessary once!)
. PERM - Save my callsign into the NOVRAM.
. CONVERS - Enter Converse mode.
. Hello Test - Sends an unaddressed packet with the text
. "Hello Test".
. Ctrl-C - Returns to command mode.
. CONNECT K8MMO - Requests that I be connected to K8MMO.
. Automatically enters Converse mode if
. K8MMO acknowledges my CONNECT request.
. Hello Dave - Sends an addressed packet to K8MMO with
. the text "Hello Dave".
. Ctrl-C - Returns to command mode.
. DISCONNECT - Disconnect from K8MMO.
. As you can see, operating the TNC is really a breeze. In fact,
from power-up to being on the air is typically a matter of a few seconds.
. Among the parameters which can be altered in Command mode are
several which determine how the TNC responds to what it hears on the
radio link. For example, I can tell the TNC to monitor all packets it
hears - including those not specifically addressed to me. This is obviously
useful for "reading the mail" on the channel! In fact, I can tell it to
monitor all activity, or just activity either TO or FROM a specific
station. In addition, I can tell the TNC whether I want it to become a
digipeater - a digital repeater which repeats what packets addressed
to another station but containing my callsign as a repeater address.
(It's interesting to note that the default is digipeat on - it's so
automatic that I really don't know (other than by hearing my radio
got on and off) that I'm being used as a digipeater!
. I can also define the specific operating parameters for the
link. Items such as the length of a packet (default of 128 bytes),
whether it should send a packet when it sees a specific character
(default is carriage return) or send a packet after so many seconds
of inactivity from my terminal. I can also cause the TNC to automatically
send a beacon every so many seconds or send it after so many seconds of
no activity on the packet channel.
. I've just shown a few of the features available in Command
mode on the TAPR TNC. The software is extremely well done - and using
the TNC is a pleasure! You immediately sense that this box was put
together by folks who really understand both the hardware and the
software aspects of microcomputing and communications!
. Let's talk now about Converse mode. As shown in my example, I
can cause the TNC to enter Converse mode by entering the CONVERS
command and also by connecting with another station. The TNC will
also automatically enter Converse mode whenever another station
requests a connect with me! In this case, it prints out a message
. Connected to K8MMO
.and enters Converse mode. From that point on, whatever I type is
sent to the other station.
. If I'm not connected to another station but enter Converse
mode using the CONVERS command, my packets will be "unaddressed" and
only can be copied by other stations which are monitoring all
packets on the channel. This is the technique used to say "CQ" on a
packet channel. For example, on my TRS-80 Model 100, I have created
a CQ file which I transmit containing my name, address, callsign,
station equipment, phase of the moon, etc.! To say CQ, I simply send
this packet. If others are around, typically one will connect with
me and our QSO has begun!
. Earlier, I mentioned the digipeating mode. I can cause my
packets to automatically be sent via a repeater. I simply say:
. CONNECT K8MMO VIA WB4JFI-1
.WB4JFI-1 is a local AMRAD repeater run by Terry Fox which is available
24 hours per day. In this case, my station sends its packets to WB4JFI-1
which verifies that they are valid packets (i.e. frame check sequence
is valid) and then retransmits them to K8MMO. Neat!
. Well, we've covered Command and Converse modes pretty thoroughly.
Let's now talk about Transparent mode. Transparent mode allows you to
effectively turn the TNC into a modem - i.e. it will not locally echo
characters, will ignore command/control character sequences, etc. The
advantage of this mode is in transferring files which might contain
any of those characters. In Transparent mode, it's possible to transmit
a binary file to another station. With the built-in error detection and
correction of the AX.25 protocol, error-free transmission is guaranteed!
It's possible to exit from Transparent mode to Command mode by sending a
very specific sequence of characters (default is three control-C's sent
with no other data for one second before and after). Obviously, the odds
of this sequence occuring in normal transmission is very, very low - which
is just what's wanted in Transparent mode.
. Another use of transparent mode is in running a computer system
at the other guy's station. For example, I have run the CP/M system at
K1HTV in this manner - and run BASIC programs, CP/M commands such as
DIR to get a file directory listing, etc. It's just like sitting at the
console of that other system - with the addition of a time delay
required for transmission of the packets at 1200 baud!
. Well, we've pretty well covered the operational aspects of the
TAPR TNC. As you've seen, it's an extremely versatile device - and
provides nearly all of the functions you'd want!
. You are probably a bit curious (I know I was) about the
software package used in the TAPR TNC. This excellent package was
written in a combination of Pascal and 6809 assembler by Harold Price
NK6K, Dave Henderson KD4NL, and Margaret Morrison KV7D. The bulk of
the code was written in Pascal while assembler was used for the
interrupt handling and data buffering routines. The Pascal code
effectively relies on the assembler code as device drivers for the
hardware interfaces present on the TNC. The combined package is over
20K of code - stored in the ROM of the TNC.
. This concludes this section of the packet radio tutorial.
Next, we'll describe some of the activites underway in the Washington,
DC area with packet radio - and some of our plans for the future.