Configuring Serial TNC Ports
Terminal-Node Controllers (TNC) or radios containing built-in TNCs
are connected through a computer serial port using the KISS protocol.
To add a new TNC port, click the Add button on the Configure
Ports tab. The port editing dialog will appear. Set the port type
to Serial_TNC.
The other parameters you will need to specify for the TNC are:
- the name of the port to which the TNC is connected. On
Microsoft Windows, this will be a COM port (
COM1
,
COM2
, etc.). On Linux, this
will be a /dev/ttyS port (ex. /dev/ttyS0
)
or a USB serial port (ex., /dev/ttyUSB0
), although the console port on a Raspberry Pi
appears as /dev/ttyAMA0
.
Similar device names will be used on other Unix derivatives. Note
that on Linux and Unix systems, you will need the access right to
access serial ports. Typically, this will be membership in a group
owning the serial ports, such as dialout
,
tty
, or uucp
.
- The baud rate at which the TNC will be communicating with the
computer (typically,
9600 baud). Ensure that the TNC is set to the same speed as you
configure this port to. Note this is independent of the baud rate
transmitted over the radio (1200 baud on 2 meters, 300 baud on HF,
and 9600 baud on UHF). Note also that this may be meaningless for
TNCs or radios with direct USB connections, such as the Kenwood TH-D72.
For devices where the baud rate is meaningless (or where the operating system's
driver for the serial port actually fails if YAAC attempts to configure the
port baud rate), the baud rate can be specified as blank, indicating that YAAC
should not try to set the baud rate at all.
- The callsign you will be using to identify your transmissions
over this port. This should be your legal government-assigned
callsign with an optional numeric SSID suffix from 1 to 15.
- Whether or not you want to allow YAAC to make transmissions
through the port. If left disabled, you will only be able to
monitor APRS traffic through this port. You must specify a callsign
to be able to transmit.
- Whether your TNC requires hardware flow-control (using the RTS and
CTS modem control signals) to be enabled for your TNC. Note this is
only useful if actual RS232 connections are being used with at least 5
wires in the cable. Also, specify whether the DTR signal should not be activated;
normally, the DTR signal should be enabled to indicate to an external modem
device (like a TNC) that the computer is present and powered up. However. some
modems perform hardware flow-control with the DTR signal instead of the RTS signal,
which is not presently supported by YAAC (actually, not supported by the JSSC
library used by YAAC). Note that hardware flow control assumes that the TNC will
provide an active DSR (Data Set Ready) modem control signal to indicate that the TNC is actually
present. If your TNC or cable does not provide DSR, select the Kenwood work-around
to disable checking for DSR.
- Whether your TNC is a Kenwood radio with built-in TNC that may react to certain
character sequences as commands from Kenwood's Memory Control Progran (MCP) that would
misconfigure the radio. Unless you are using a Kenwood radio's built-in TNC, this should
be unchecked.
- Whether the radio on this port is tuned to the HF bands. By default,
YAAC assumes usage on the VHF and UHF bands where higher bandwidths are
permitted and digipeating is normally used.
- The command for YAAC to issue to switch the TNC into KISS mode.
Most TNCs use the command set introduced with the TAPR TNC-2, start up in command mode,
and switch to KISS mode with the commands:
KISS ON
RESTART
However, not all TNCs are TNC-2 compatible. Some TNCs are built for KISS-only, and
do not need to be switched. The Kantronics KPC-3 and Byonics TinyTrak TNCs use
non-TNC2-compliant commands to enter KISS mode (and the TinyTrak can only be switched
immediately after the unit is rebooted). In any case, you need to specify
the correct command if one is needed for your TNC; if you do not specify one,
YAAC will default to assuming a KISS-only TNC (or one manually pre-configured to
default to KISS mode). You may select one of the other known types from the
drop-down list, or type a command sequence of your choice (using \r to represent
the carriage return character). Only if a command was needed to switch your TNC
into KISS mode will it be automatically switched out of KISS mode when YAAC is exited.
The following escape sequences may be used in the command expression:
Escape sequence | Meaning |
\r | Send a carriage return control character and pause sending for 300 milliseconds. |
\n | Send a newline or linefeed control character. |
\t | Send a horizontal tab control character. |
\0 | Send a null control character. |
\\ | Send a backslash character (this is needed to differentiate a literal backslash from any other escape sequence). |
\f | Send a form feed control character. |
\' | Send a single quote or apostrophe character. |
\e | Send an escape control character. |
\" | Send a double quote character. |
\w | Don't send anything, but wait for 1 second. |
- The sub-list of aliases that will be digipeated through this
port, based on the total list of known aliases defined in the
general configuration. If
YAAC receives a message with one of the checked digipeat aliases
and this port is enabled for transmission, the message will be
re-broadcast through the radio on this port. If no aliases are
selected, this port will not digipeat. Multiple aliases can be
selected. The aliases must also
be enabled for digipeating on the configuration dialog's Digipeat tab.
- Which of potentially several beacon definitions will be transmitted
through this port. If none is checked when the port configuration is
saved, the default beacon will be used (and will show up as checked when
this configuration panel is next opened). To specify that a beacon should
not be sent out this port, a beacon should be selected that is not enabled
on the Beacon tab of the expert-mode configuration dialog.
- The protocols that can be transmitted through this TNC. Generally, only one
protocol should be used on a given RF channel to avoid confusion of other stations
and wasting of bandwidth. Which supported protocols should be transmitted out
a TNC port is specified by checking the corresponding checkboxes.
Note that YAAC will support receiving all protocols through one TNC port, recognizing
which protocol is in each AX.25 frame by the PID field; this merely restricts which
protocols YAAC will send on a port. The "raw AX.25" protocol supports connected-mode packet operation.
- Whether transmission through this port should be delayed until an assigned transmit timeslot
at some offset after the beginning of a repeating interval, and how long this timeslot is before
the next timeslot (presumably assigned to some other station) starts. Note that timeslotting
is unadvised unless you are on a channel where all stations are using mutually non-conflicting
timeslots on the same slot cycle length. Also, it is preferred to do timeslotting in
a TNC rather than in client software like YAAC, because it will be more precisely aligned;
YAAC only provides timeslotting capability to support TNCs (hardware or software)
that do not natively support timeslotting themselves.
- Whether duplicate packets should be coalesced
into a single transmission instead of retransmitted. Transmitting a burst of duplicates may be useful for
modes like meteor-scatter, where only one or two of a burst of packets may get through, but is otherwise
discouraged.
Note that this port type supports receiving from multiple KISS data ports over the same
serial device, although it only transmits over data port #0. This supports the Byonics TinyTrak 4's
GKRELAY command, which allows a GPS receiver connected to the TinyTrak (rather than to the computer
running YAAC) to forward GPS sentences over the same cable used to send and receive APRS/AX.25 packets.
The "Test Port" button provides a means of verifying that you have connected to the correct place;
it opens a terminal window connected to the configured serial port so that you can manually
test the TNC for the desired operation. To complete testing, close the terminal window.
Once you have the settings the way you want them, click OK. Ensure
that the TNC is connected to the port before you click OK. At that
time, the port will issue commands to the TNC to put it in KISS mode,
and then wait for AX.25 packets to arrive.
If you want to create a Serial_TNC port on a new installation of YAAC using the
-createport
option, the
port_description is of the format:
Serial_TNC,comportname,baudRate,callsign,,transmitEnabled[,digipeatAlias[,...]];kiss-command
where comportname is the name of the serial port on your operating system, such as COM3 or /dev/ttyUSB0,
and baudRate is the serial port speed; this must be specified even for USB devices that
don't have a configurable baud rate. transmitEnabled is either "true" or "false" (without the quotes)
depending on whether you want this port able to transmit packets. Any digipeatAlias specified here must also already be
specified on the expert-mode configuration dialog's Digipeat tab.
If the TNC is not KISS-only, a kiss-command expression (as described above) should be specified after the
semicolon.