TNC and Radio Adjust and Test
Packet radio transmissions are sent from a TNC as audio, through a transmitter, through a receiver, and into another TNC, still as audio.
It is important that at no time does the audio get noise into it, get overdriven (clipping) or have parts cut off because the transmitter
and receiver weren't ready when the packet starts. This will take adjustment of these parameters:
- Wide vs Narrow
- Transmit audio level
- Receive audio level
See also Configure TNC-PI.
See also Debug a poor link
Wide vs Narrow
Some modern radios have an option to select Wide vs Narrow. This is done because some countries have mandated that commercial 2-way FM equipment
should operate with a narrow bandwidth. To my knowledge, packet radio, even 1200 baud, is NOT compatible with narrow bandwidth. Set the radios to wide.
Make sure you know how to put your radio into and out of automatic SCAN, and PRIORITY modes.
Built in digital signal processing
It is also important that the radio not modify the timing of the audio during any single transmission or reception.
Digital Signal Processing designed for voice operations is often not good
for packet radio.
Radio Power-saving Sleep modes
Many battery powered radios have modes designed to save energy.
This will also not be good for packet radio as usually these systems poll the receive channel for activity instead of being available immediately for incoming traffic.
For radios with this kind of behavior, it is best to open the squelch wide.
Some radios also do power savings by disabling the processor altogether until PTT is depressed.
In some cases this can dramatically increase the time required to go into transmit.
Radios with transmit latencies which are variable, or which take longer than 1/4 of a second (25 character times) should probably not be used for 1200 baud (or faster) packet radio.
A simple test of a potential radio's transmit delay is to use the microphone and click the PTT as fast as you can while listening on another transceiver.
Speak a long heeellloooo into the microphone while listening to the audio on the receiver.
Does the chop follow your PTT behavior?
Is the audio ready as soon as the radio goes into transmit?
Use this to compare potential radios.
No radio is instantaneous but you'll quickly get the idea that some radios are much worse than others for packet radio networking!
Some modern microprocessor-heavy radios even lock up and crash under rapid transmit receive exchanges.
real info here
Make sure power saving functionality is completely disabled!!
Transmit Audio Level for 1200 baud microphone wired TNCs
Most of the TNCs in our network are wired into the microphone jack on the transceiver.
This section addresses adjustments to the transmit level for those TNC/radio sets. In order
to perform the adjustment in just this way you will need to be using a TNC with a hardware potentiometer which you can operate while the TNC is in service.
The TNC-PI, MFJ-1270 series, PacComm Tiny-2 series, are all capable of this.
The KPC-3 and TinyTrack-4 are not.
For those units you will need to follow the TNC operator manual for this adjustment.
The goal in setting the transmit audio level is to minimise errors in the packets sent over the point to point radio link you are adjusting.
The best way requires coordination between the transmitter on your end, and the receiver on the other end.
In practice the wide band FM transceivers are very similar but unless you have both ends in the same room you can't really push your transmitter to be ideal, lest you have to go back and do it again and again.
It is better to leave your transmitter at a little bit less audio drive (from the TNC into the microphone jack) than might seem ideal.
real info here
The basics of this adjustment is to observe the transmitted signal using a receiver or station-monitor-analyzer while causing the TNC to transmit packets as continuously as possible.
Tune the TxLevel from the TNC to find the maximum level the transmitter is capable of sending, i.e. overdriving the transmitter, then back down the TxLevel until the received signal becomes narrower or quieter.
If the transmitter level decreases noticeably based on your measurement equipment, then you are no longer over-driving the transmitter.
If you are doing this by ear, you will likely end up with a transmit level that is less than ideal, but this is a great start.
To rough in your transmit level
more real info here
To proceed you need to know the frequency and port-number of the TNC and radio you are adjusting.
you need to know where the potentiometer is which makes the TxLevel adjustment.
On the TNC-PI the potentiometer is near the DE-9 radio connector.
You will need a small flat-head screwdriver.
To rough in your transmit level:
- Tune a receiver to the frequency of your transmitter.
- Log into your node so you can issue node commands (like nodes, routes, mheard)
- Type the password command.
The node should come back with Ok
- Type the command retries # 100 where # is the port-number.
- Type the command frack # 1 where # is the port-number.
- Type the command c # yyy where # is the port-number.
YYY could be any under-6-character text-string EXCEPT for a callsign or node in your network.
This will cause your node to send packets for 30 seconds or so.
- Adjust the receiver level to a level slightly louder than comfortable, but not so loud that the receiver is distorted.
This level will depend on the quality of your speaker.
With an HT it might be better to turn the volume down and hold it closer to your ear.
- During the time the TNC is attempting to transmit you should turn the potentiometer where you can hear the quality and level of the transmit audio change.
What you are looking for is the point on the potentiometer where the level is slightly lower than full volume and thus slightly lower than the distorted level.
This is something you'll have to hear to understand.
- You can take your time making this adjustment so long as you don't overheat your radio.
Obviously take care that your chosen frequency is a good link frequency and not some repeater input!.
- If you need more time, send the connect command again c # YYY where # is the port-number.
- Once you are done making the adjustment, fix the Retry count and the Frame Acknowledgement timeout back to what they are supposed to be.
- Type the command retries # 20 where # is the port-number.
- Type the command frack # 12 where # is the port-number.
really hard optimization step you may want to do later
To the right is an example session.
In this case I wanted to set the Tx level for port 3, to KM4IFU-2.
Once the c 3 yyy command was issued, the node tried to connect to the non-existant yyy for 30 seconds and then came back with a failure message.
That's what we expect.
> 1 NC4FG-2 200 4!
> 2 KM4DVE-2 200 4!
3 KM4IFU-2 200 0!
> 4 KM4IFV-2 200 4!
retries 3 100
TADD:KA2DEW-2} RETRIES was 20 now 100
frack 3 1
TADD:KA2DEW-2} FRACK was 12 now 1
c 3 yyy
TADD:KA2DEW-2} Failure with YYY
retries 3 20
TADD:KA2DEW-2} RETRIES was 100 now 20
frack 3 12
TADD:KA2DEW-2} FRACK was 1 now 12
For best, most finicky, adjustment, do this step. It is likely that this step will fail if you do not have instrumentation on both sides.
After establishing a transmit level which is working, go to the receive site and set the receive audio at the low end of the range where the bit errors are minimized, i.e. most packets
get through. There usually is a sweet spot in the received level for any given transmit level but the sweet spot has some wiggle room. Go to the low side. Now go back to
the transmitter and see if the error rate can be reduced by setting the level slightly louder.
There are several ways of doing this. The best is to watch the data coming off the modem on the receive TNC and adjust the transmit audio to the
center of the adjustment range where the bit-error-rate is 0. That requires scopes and the receive TNC and going inside of things.
The electrical control that affects TxDelay may be handed in several different ways.
For the TNC-PI, the TARPN configuration requires the TxDelay to be set using potentiometer R6 on each TNC-PI.
For other TNCs, the adjustment may require a password-level node command, or may require writing a config file, or may be as simple as turning a knob.
To tune TxDelay, set it to an arbitrary high value and then adjust it down after you have established a connection to the desired station.
Moderate link performance can be achieved with a high TxDelay but you will definitely want to adjust it down later for optimal performance.
The value of a typical TxDelay is usually between 150 milliseconds and 400 milliseconds for the commercial radios we're typically using.
Some devices can go on the air in as little as several milliseconds.
We can make some radio-specific recommendations for TxDelay settings but the receiver used on the link also impacts the number.
You really need to test it to find out.
Once you get your link to work, you should keep notes as to what TxDelay you have used and how well the link worked.
If the TxDelay is much too short, the link won't work at all.
If the TxDelay is much too long, you will hear the time wasting lead-in noise.
The tricky part is when the TxDelay is slightly too short.
If you want to know what the time-wasting lead-in noise sounds like, set the TxDelay to 1000mS (R6 rotated fully clockwise on TNC-PI, 1000 in G8BPQ for a regular KISS TNC) and listen to the transmitted data.
The actual numerical value used to set TxDelay is usually in 10s of milliseconds so a starting value of 90 would make sense.
However, the setting for a USB-serial TNC in the tarpn config command is in 1s o milliseconds so a value of 900 makes sense.
Be sure of your context.
A 10 to 1 difference is important!
Adjusting TNC-PI TxDelay is trivial.
The expectation is that the TXDelay value set set to 0 in the i2c register 01.
That should have been done in a previous step in Configure TNC-PI
The TxDelay is adjusted by turning potentiometer R6.
Just turn R6 clockwise to increase, counterclockwise to decrease.
If R6 doesn't work or doesn't affect TxDelay?
- With the node running, and the link established or ready to be established -- i.e. radios hooked up and on-the-air.
- Obtain a small flat-head screwdriver.
- Identify the R6 TXDELAY potentiometer on the TNC you will be adjusting.
- Start your node (if it is not already running) and then using BPQterm, or tarpn tx, connect to your node.
- Using the p or r command, obtain the port-number you are going to be adjusting.
- Set up a receiver to listen to the output of the transmitter you will be adjusting.
- Use the command c # w1aw where # is the port-number
- You should hear your node attempting to connect to w1aw.
- Turn R6 all the way clockwise
- Re-issue the connect command as necessary to keep the transmissions coming.
- You should hear a long lead-in followed by the short connect packet.
- Turn the R6 potentiometer clock-wise and counter-clockwise and listen for the effect on the lead-in noise
- Adjust R6 so the lead-in seems to be about 1/2 of a second long
- Now connect to your link partner.
- Send a series of commands to keep the link busy. The ? command gets a pretty short response so send a whole bunch of question mark/return sets.
- Turn R6 down until the link starts retrying. You'll know that because you stop getting answers from the other end.
Turn R6 up until the neighbor answers reliably.
R6 should be just clockwise of what makes the link work so there is a little extra lead-in.
Give it a little margin because it will work better.
If you make it too long, you'll lose performance.
- If you find your link is not working, one of the first things to check is TxDelay because it is the easiest to adjust.
TNC-PI have a configuration argument in the I2C registers.
Register 01 can be used to set TxDelay to a fixed value.
If Register 01 is set to 0, then R6 will affect TxDelay.
This is what we want.
To verify that Register 01 is set properly, shut-down the node, unplug the radio from the TNC, and use tarpn i2c-get to read the register values.
See Configure TNC-PI for details.
KISS TNC TxDelay
Adjusting TxDelay for a KISS TNC is easy since you can do this from a node command while the node is running.
However, the G8BPQ node application we use for TARPN does not update the TNC's TxDelay value promptly.
You will want to have receiver to listen to your node's transmit signal if you are doing this for the first time.
I suggest making a dramatic change a couple of times to show yourself how long the software actually takes to affect the TNC.
Before you start adjusting the TxDelay of a particular port, you need to know the nodename of the neighbor, the port of the radio and TNC you are adjusting.
- Have the node up and running using tarpn test or using tarpn service start
- Connect into the node and type password
The node will reply with Ok
- Type txdelay # where # is your port #. The node will reply with TXDELAY # and the current TxDelay value.
- Write down the value returned by the node. It might be worth writing down all tested values and the results when you try to connect.
- Connect to the neighbor node using the port-number and the nodename with a dash 7 after it followed by space s (it could be any number other than dash 0), like c 2 fred-7 s if port-number is 2 and the neighbor is fred.
- Note the TXDELAY value and whether the node succeeded or failed to make the connect
- If you got the connect, use b to disconnect from the neighbor. That should leave you connected back to your node
- Now adjust the TXDELAY value up by 100 if the connect failed or down by 100 if the connect succeeded. txdelay 2 500 for port 2 and new TxDelay value of 500.
- Loop up to step 5 connect to the neighbor node.
Receive Audio Level
Set the receive level by adjusting the volume on the FM transceiver itself.
The receive level going into the the TNC-PI is supposed to be about 1.4v peak to peak.
With an oscilloscope you can measure the receive level coming into the TNC-PI by putting your probe into the PCB hole at one end of the un-populated RADIO connector.
The particular hole of interest is surrounded by a square and is indicated in the photo.
Clip the scope's ground to either capacitor lead where C14 and C2 come together. See photo.
The oscilloscope should be adjusted for 500mV per division, or if you are using a 10:1 probe, adjust for 50mV per division.
You can check the scope's settings by using the test-point on the scope, if it has one, or you check check the voltage at C6, located near the yellow DCD LED.
C6 toward the board edge is ground. C6 toward the DE9 connector is 3.3VDC.
When making your measurement, turn on the sound monitoring on the TNC so you can hear the receive brap.
The only measurement we're interested in is while the TNC is receiving a packet so hearing the audio is critical, else you'll end up calibrating to the squelch noise or some other trash.
Rx audio adjust having no tools
The no-tools method of adjusting the receive level is to generate packet data from the far end, and then tune the receive level (volume control?)
up and down to find the limits of where the packets are decoded, and then leave the adjustment in the middle. This isn't anywhere near as
good as having an oscilloscope on the receive modem output but usually it has to do.
Start by launching BPQtermTCP
on one computer or another and connect into the network.
Turn on Monitor
for the port you are tuning, and turn off all the other monitor
Send a connect request to the station at the other end of the link.
Hint: You can do a C # NODENAME-2. Use port-number for #. The nodename is the station at the other end.
Use -2 to get your node to do a DOWNLINK to the other station, instead of a CIRCUIT.
If you use DOWNLINK, the connection will be made over the specified port, regardless of the node lists or route table data.
This is a kludge because the node software will not respect the timing on the channel when both downlinks and circuit traffic are both present.
However, it does get the station on the other end to answer in a timely manner.