Some documents linked from this page may require
Adobe Acrobat PDF reader.

FET Technologies

TNC-X

The TNC-X is a basic KISS mode TNC that is designed by John Hansen, W2FS.

It is available from Coastal ChipWorks
either fully assembled and tested, or in kit form.

It is based on a 16F628 PIC and the MX614P
modem chip. It is also available with a built-in USB interface so it can be
used on computers without a legacy serial port.

These units make great interfaces for APRS I-Gates, digipeaters, or other
applications where a small, simple interface is needed.

They are also great when paired with a dedicated radio in a "grab-n-go"
emergency communications kit. There is no software to configure in the unit,
just plug it all together, and you're on the air!

This product is in continual development. Information presented here
includes modifications for interfacing to various radios, as well as
software and configuration notes for the various USB interface chips available.

*JP3 determines whether data received from the computer is passed
from the serial port to the TNC. It does not break the connection for data
received from the computer through the USB interface (if installed). Use either
the serial port or the USB connection, not both.

Power does not have to be supplied by the USB connection. If desired, JP4
can be used in the "external" position and power supplied from the DC jack.

JP4 1-2 is closest to C22, JP4 2-3 is closest to the USB chip.

Power Modifications

The unit is normally supplied with a 78L05 voltage regulator. Under
normal circumstances, this is adequate for general use (wall-wart, battery).

The 78L05 can be replaced with a heavier duty 7805 which will better handle
being hooked up to a higher voltage supply (more mass to dissipate heat).

Watch the pinout, as the 78L05 and the 7805 are different.

USB Rev 4.0 (FTDI)

Revision 4.0 of the USB interface uses an FTDI chip. The drivers used are
the Virtual Com Port (VCP) drivers.

NOTE: The chips used by the TNC-X have their own product code (EBE0)
burned into them. If you use the drivers from the LINX webpage, you will need to
modify the .inf files to include this PID, or the drivers will not install.

An archived copy of the drivers from February 2007 are available here:

Once you recompile your kernel (and these USB modules), when you plug in
the TNC-X it should be recognized, and will usually show up as /dev/ttyUSB0.

There are some other things that you should be aware of if using the USB
driver with Linux.

There may be a condition where you can receive packets, but the TNC never
transmits. This may be caused by a flow control problem. There isn't supposed
to be any flow control, according to the KISS protocol, but some software
expects it.

On the serial port, you can add a jumper between RTS and CTS. On the LINX
USB module, you can add a jumper from Pin 21 to Pin 22.

Dave Platt, AE5EO, suggests another method to disable flow control. "Linux
seems to default the hardware flow control feature to "enabled" when the USB
drivers are installed and bind to the device. The Linux "kissattach" driver,
used to bind the AX.25 network socket to the serial port, does not disable
RTS/CTS handshaking. The software workaround for this is quite simple,
fortunately. In whatever AX.25 startup script one uses, one should simply
add the line:

stty --file /dev/ttyUSB0 -crtscts

Just before running:

kissattach /dev/ttyUSB0 $PORTNAME $IPADDRESS

This will turn off RTS/CTS handshaking in the driver before starting the
KISS protocol, and eliminates the "can hear but cannot speak" problem."

We have experienced this problem, usually occurring on the javAPRSSrvr I-Gate
after the software had been running for some time. We tried Dave's suggestion
which seemed to help some, but the problem still occurred. Only a re-boot (ick)
of the server would restore it. We did not try the Pin 21-22 jumper, we reverted
to a multi-port serial card and traditional serial ports.

Audio Modifications

As built, the RX Audio connection presents about a 1kohm impedance to the
attached radio. In some cases, this may be a significant load, which may mean
there is not enough audio for the TNC to decode.

We have found that it may be necessary to remove R4 (1k) to raise the
audio impedance. This was true for the Standard GX-3000, and has also proven
useful with the Motorola GM300/M120.

Depending on where in the microphone circuit you are injecting the audio
from the TNC, you may find that you cannot get enough drive to properly deviate
the transmitter. Again, this is an impedance problem, this time with the output
of the TNC.

We have found it necessary in some cases to change the value of R11 (10k).
For the Standard GX-3000, we changed R11 to 470kohm to get enough output and
range out of the TX Audio pot. On the Motorola GM300/M120, R11 was shorted out
in order to provide enough drive to the microphone circuit in the radio.

Transmit Deviation

A "problem" with the TNC-X being so simple, is that it lacks a means to
properly set the transmit deviation. Most TNC's have a "calibration mode" that
can be used to manually transmit the Mark and Space tones for proper transmitter
alignment. Because the TNC-X just wants to see KISS frames to transmit, there
is no feature like a "calibration mode" possible.

However, all is not lost. When the TNC-X is idle, the mode select pins to
the modem chip are both logic 0. This puts the MX614P into a mode where it is
transmitting a 487Hz tone.

Normally, you would adjust a TNC using the high (2200Hz) tone for a deviation
of about 3.5kHz, and let the low tone (1200Hz) fall where it may (due to the
6dB/octave pre-emphasis curve in the radio).

Well, we have to do it a little backwards here. Since we only have a low
(487Hz) tone to work with, we have to use it for asjustment and verify our
results by sending some data.

Following the 6dB/octave (pre-emphasis) curve, if we half 2200Hz twice,
we get 550Hz. That's pretty close to the 487Hz we've got to work with. So
if we half the desired output deviation (3.5kHz) twice, we get 875Hz of
deviation.

This means that if we set up the TNC-X to transmit the 487Hz tone at
about 900Hz deviation, we should be transmitting the correct deviation so that
our output signal is clean and not hitting the limiter in the radio. A clean
output signal is essential to being able to have the data decoded
properly on the receiving end of your transmissions.

In order to get the 487Hz tone out of the TNC, all you need to do is apply
power (no computer needed) and temporarily jumper the /PTT (J7) to ground.
This should key your radio, and if you listen to the demodulated audio on a
service monitor or nearby receiver, you'll hear the tone. Set the TX Audio
pot (R12) to give you about 900Hz deviation, and you're all set!

Transmit Delay

Just a quick note about setting the TX Delay pot (R13). The easiest
way to do this is to listen to your transmissions on a seperate receiver. You
will note that there is a pronounced difference between the idle frames
(alternating 1's and 0's) being transmitted at the start, followed by the data
frames.

Adjust the TX Delay pot (R13) such that there is a just a little burst of
idle frames before the data starts. There is no need in tying up a congested
RF channel with 1's and 0's in a framing pattern!.