# 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). 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. You will also need the access right to write a lock file into the lock file directory on your system. Typically, this will be membership in the lock group.

  NOTE: The Fedora Core 15 distro of Linux has a known incompatibility with the RXTX library used by YAAC to access the serial ports, due to moving the lock directory to a place not known to the RXTX library. To work around this, ensure that the /var/lock directory's group is lock and has group write privilege, and that your account is a member of the lock group as mentioned above.

- 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.
- 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 Kamtronics 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.
- 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.
- Whether transmission through this port should be delayed until an assigned timeslot at some offset after the beginning of a repeating interval.

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.