T H E F I R M W A R E
======================
AX.25 Version 2
Multi Channel TNC Firmware
Version 2.6
TheFirmware Version 2.6 DAMA/SMACK/XHOST (xx Channel)
Copyright by NORD> QRES"
in terminal mode to force a cold boot. In this case old data in the buffered
RAM will be deleted and can cause no trouble. QRES will set all parameters
to the default-value stored in the EPROM.
The EPROM data contains no callsign. With the 'I'-command it can be set.
In addition all other parameters can be changed. They are copied into the
buffered RAM and will stay active until the next coldboot with QRES.
Commands and data are transmitted to the TNC as lines. Each line can contain
up to 256 characters including the at the end of the line. If the 256.
character is no , it is ignored and a is sent. The last entered
character can be deleted by (=08h) oder (=7Fh). or
delete the entire line. sets the cursor to the beginning
of the line without deleting the line. Now received data can be displayed.
A second will restore the line. Between these two all data
except and will be ignored. characters will be sent
as charcters when entered or deleted. Lines beginning with
(echoed as '* ') are interpreted as command lines. If a command is given
without a parameter the actual value is displayed. All lines without a
at the beginning will be sent as data.
TheFirmware provides 11 logical TNC channels, which are numbered from 0 to
10. The terminal is logically connected to one of these channels, the
selection is done with the 'S'-command. Channel 0 is reserved for unproto
transmissions (CQ, Beacon). The destination for channel 0 is selected like
for the other channels with the 'C'-command. In terminal mode the channels
1 to 10 transmit entered data as unproto frames while they are not
connected. Connections can be built up on any of the channels as long as
it not already connected. Connect requests from other stations are put
on the first free channel as long as the maximum number of simultaneos
connections (command 'Y') is not reached.
Information received on a connected channel which is not the currently
active channel will be stored until the channel is selected. The 'L'-
command gives an Overview about the currently not displayed data.
Information will be send only on the currently selected channel. After
disconnect all received data will be stored until fetched by selecting this
channel. If the connection path shall be changed during the connection,
no disconnect is needed. A new 'C'-command will change the path without
a loss of data. But more than one connection to the same destination it
not possible. This can only be achieved by using different SSIDs.
A special version with 27 channels is existing for the use with mailboxes.
Only version 2 of the protocol is supported, connect request with version 1
will be rejected. Version 2 is the better solution for networks and provides
a better throughput on busy channels.
In version 2 after the last transmission a timer is started. After a
configurable time the remote station will be polled to assure that the
connection is still available. With the 'N'-command the maximum number of
retries can be specified. After this number of retries the connection will
be disconnected. This covers the case that the remote station silently will
disappear during a connection.
The values for 'F', 'I', 'N' and 'O' are stored seperatly for every channel.
They are initialized from the values of channel 0 after restart or
disconnect. Therefore these values can be changed during a connect to
different values without changing the values for other channels. After
disconnect the default values are available again. Executing a 'D'-command
on a not connected channel will set these values to the default values.
The 'M'-command allows to monitor all activity on the frequency. With the
given parameter the wanted information can be selected. The parameters
can be combined.
Parameter Packet-type
--------- -----------
N Monitoring off
I Information packets
U Unproto packets
S Supervisory packets
C Monitoring if connected
+ only packets to or from specific stations (max. 8)
- suppress packets to or from specific stations (max. 8)
The parameters '+' and '-' must not be combined. They must be entered as
last parameter in front of the callsigns. Specifying no callsigns will
delete the entire list.
A '*' indicates which station has transmitted the data. The type of the
packet can be retrieved from the following list.
Name Description
---- ------------
RRa Ready for next packet
RNRa Receiver busy
REJa Packet is rejected
UI Unproto frame (send to all)
DM No connection active
SABM Connect request
DISC Disconnect request
UA Confirmation of a request
FRMR Protocol error
Iab Information packet
?ccH Not defined type
Additional description:
a = Number of the next expected packet
b = Number of the packet
cc = Number in Hex-base
An additional character will give information about the used protocol-
version and the value of the poll/final and command/response bit.
= Version 1 without P/F bit
! = Version 1 with P/F bit
^ = Version 2 command packet without poll bit
+ = Version 2 command packet with poll bit
- = Version 2 response packet with final bit
v = Version 2 response packet without final bit
The protocol identifier (PID) will be displayed in Hex-base.
CAUTION:
Monitoring will only be active if more than 256 buffers are free in the
TNC. Otherwise using slow computers or programs will lead to no
available buffers on a busy channel.
Using the 'U'-command an automatic connect text can be activated. This
text will be sent if a remote station will start a connect. Normally
this text can contain your name, qth, locator, e.t.c. and you don't have
to enter it manually. This feature does not change any of your possibilties
of entering text or bulding up connections.
You can provide a simple mailbox by this feature, too. You can tell in the
connect text that all text entered by the remote station will be stored.
If you leave then your terminal program with channel 0 selected, the
information of all connections received in TNC-only mode will be stored
and can be retrieved after the activation of the program by switching
to these channels. If selected with the 'Z'-command the output can be
stopped with and continued with .
A new feature of the 'U'-command is parameter 2. If it is specified,
a packet with '//Q' at the beginning will start a disconnect. This is
useful, because the remote station will be reconnected to the last
digipeater and don't have to build up the whole path again.
This feature is only active in terminal mode.
The 'H'-command can activate a list of heard stations on the frequency.
The list implemented in TheFirmware is different to other implementations.
It is not a list of the last 20 heard stations because such a list is
not useful on a very busy channel. The implemented list is dynamical and
the maximum number of stations is limited by the RAM-memory or the given
maximum number (with the 'H'-command). For every callsign (including SSID)
the following values will be stored:
- Callsign and SSID
- Date and time when first heard
- Date and time when las heard
- Number of received I-frames
- Number of received RR-frames
- Number of received REJ-frames
- Number of received RNR-frames
Die digipeater path is not stored because of TheNet / NETROM digipeaters.
The number of received frames can be used for statistical investigations
concerning activity or quality of transmissions.
Because the list is a sequential list (dynamically allocated) for every
heard packet the list must be scanned. Therefore the speed of TheFirmware
is decreased by a large heard list. 'H 0' disables the update of the heard
list. The heard list is resident, it is not deleted after a restart, only
by a cold boot.
The 'H'-command is available in hostmode, too. But there are some things
which must be known. The first line will be returned with hostmode code
1 (success, message follows). The entire list will be returned on channel
0 like a header of a monitored packet (code 5 monitor data, null terminated,
Info follows). The last line will be returned with code 4 (monitor data,
null terminated). This handling is succesful with most of the existing
hostmode programs without a change.
TheFirmware provides a built-in software clock and calendar. All status
messages (connect, disconnect) and the monitored packets can be stamped
with date and time. The 'K'-command controls the stamping of messages,
the value 0 disables the feature, value 1 only enables the feature for
status messages and value 2 enables it for status messages and monitored
frames. A change of the value will be effective even for older messages
still waiting in the buffers of the TNC. Without parameter the current
date and time will be displayed.The date can be entered in european or
american format and the stamp will use this format. Date and time will
be deleted on a cold boot with QRES. After a restart the start time is
date and time when the TNC was last switched off. This allows to detect
a power failure during TNC-only mode. The software clock works almost
correctly without any corrections.
APPENDIX
--------
Short descriptions of all important changes:
1. Frame acknowledgement timer T1 (FRACK)
-----------------------------------------
There is not any longer a fixed FRACK-value, for every connection the
time between sending of a information packet and the receiving of the
acknowledgement is measured and will be used to calculate the current
value of the T1 timer.
The measured time RTT (round trip time) will be calculated to a SRTT
(smoothed round trip time) to reduce the changes of the T1-timer.
- increasing RTT: SRTT' = ( a1 x SRTT + RTT ) / ( a1 + 1 )
- decreasing RTT: SRTT' = ( a1 x SRTT + RTT ) / ( a2 + 1 )
SRTT is the value of the last calculation, RTT the measured time, a1 and
a2 are configurable parameters and SRTT' is the new value for the
smoothed round trip time.
The timer T1 is calculated from SRTT by:
T1 = a3 x SRTT
a3 is a configurable parameter.
At the beginning of a connection SRTT must be initialized, because no
measuring is available. This is done with the value (IRTT, initial round
trip time) provided with the 'F'-command (steps of 10ms). The RTT-
calculation begins after the the acknowledge (UA) of the remote station
is received. Using several digipeaters the T1 timer is calculated according
to the following formula:
T1 = (2 x "Number of digipeaters" + 1) x IRTT
The values a1, a2 and a3 can be changed with the commands '@A1','@A2' and
'@A3'. Digipeater using hop-to-hop acknowledge and digipeater fields in
the packet (Flexnet, Baycom) forced the using of the SRTT.
2. DWAIT suggested by DL4YBG
----------------------------
Before the transmission is started the slottime is waited in every case
and then the p-persitance-algorithm is started. This is applicable in
all modes except DAMA. In DAMA mode slottime is changed internally to 0
and persistance to 255 to allow a transmission immediately.
This modification will reduce the possibiliy of collisions on the
frequency.
3. Polling using I-Frames suggested by DK6PX
--------------------------------------------
If an information packet is not acknowledged by the remote station, a
RR-frame with poll bit set ist send (polling). If the information frame
only contains a few characters the I-frame will not be much longer than
the RR-frame. Therefore I-polling is introduced where not a RR-frame is
sent, but the I-frame with the poll-bit set. The maximum number of
characters in an I-frame when this feature shall be used can be configured
with command '@I'. If you don't want I-polling it can be disabled by
'@I 0'. In DAMA-mode I-polling is generally switched off.
4. Dynamic MAXFRAME suggested by DK6PX
--------------------------------------
Tests show that this feature decreases the performance on bad links
or on shortwave. Therefore it is removed in TF2.6.
5. DCD/PTT-deadlock
-------------------
An error concerning a deadlock of the TNC when special DCD- and PTT-
states occur are removed (information by Y51GE). Another error concerning
a blocking of DCD is solved,too.
6. DAMA-parameter
-----------------
After leaving the DAMA-mode the parameters P,W,B,@T2 will be restored to
their original values. A change of P and W in DAMA-mode will not change
the actual values. The entered values will get active if DAMA-mode is
finished.
7. Disconnect suggested by DL1MEN
---------------------------------
If the link setup is cancelled with the 'D'-command, a DISC-frame will
be sent. This is useful if only you were not able to receive the packets
of the remote station, but it has received the link setup and will send
poll packets until the maximum number of retries is reached.
8. Heard-list
-------------
The heard list is changed to overwrite the oldest entries, therefore the
heard list contains the last heard stations.
Compiled from various descriptions
of the authors ................................ DJ1OR september/1992
Updated for TF2.6 ............................. DB2OS july/1993
Translated to english ......................... DL4YBG september/1994
DESCRIPTION OF COMMANDS
=======================
CAUTION: Every software depends on a proper setting of all parameters.
The value of many parameters can change according to the used digipeater
and/or baudrate. Therefore please read and accept hints from your local
digipeater sysop. Further information can be found in your local packet
radio mailbox.
ESC A [0|1] Automatic insertion of LINEFEED-character after
CARRIAGE RETURN (1=Yes, 0=No).
Default: 1
ESC B [] If during this time no poll from the DAMA-master is
received, the DAMA-mode is switched off. B 0 disables
DAMA generally, although not needed, because DAMA is
detected automatically and if no DAMA-master is active,
the DAMA-mode is off. The display is in the following
format: "initial value (actual value)".
Example: "120 (93)" Default: 120
ESC C [Call] Starts a link setup (connect) on the current channel.
If you specify a digipeater path no 'v' or 'via' is needed.
While on channel 0 this command sets the destination of
UI-frames.
ESC D If a connection is active on the current channel, it
will be disconneted. If there are any unacknowledged frames
left, the disconnect is delayed until the last frame is
acknowledged. A direct disconnect can be forced with a
second 'D'-command.
If the 'D'-command is entered during link setup or during
disconnect, the TNC immediately returns to disconnected
state and sends a DISC-frame to cancel transmissions of
the remote station, if the TNC was not able to decode
frames of the remote station.
If the 'D'-command is entered in disconnect state, all
parameters are initialized to the default values stored
in channel 0.
ESC E [0|1] This command controls the ECHO of characters typed.
1=Yes, 0=No.
Default: 1
ESC F [] FRACK is the time between the transmission of an information
packet and the acknowledgement of the remote station.
Values >15 will be the initial round trip time (IRTT) and
the unit is 10 milliseconds.
For values <16 the unit is seconds and the value will be
translated to the IRTT by multiplying it with 100 and dividing
it through parameter A3.
Default: 250
ESC G [0|1] Not applicable in terminal mode, used for polling of
data in hostmode.
ESC H [] Configuration of the heard list.
Examples:
H - display of heard list
H 0 - disable update of heard list
H 1 - enable update of heard list
H 2 - erase heard list
H n - Set maximum number of calls in heard list
(n > 2)
The last heard calls will be stored, old entries will
be overwritten. The heard list is resident, it is not
deleted by reset or switching off.
CAUTION: If the heard list contains many entries, a restart
may take some time because of internal buffer linking
during startup.
Default: 0
ESC I [Call] Input of own callsign (MYCALL). The default value in the
EPROM is all spaces. After disconnect the callsign of channel
0 is copied to the actual channel.
CAUTION: Without a callsign the TNC will not transmit
anything.
ESC JHOST[0|1] This command switches between terminal- and hostmode.
The hostmode is used by special programs.
ESC K [] This command controls the clock, calendar and the stamp-
function.
Examples:
K - display stamp and date/time
K 0 - disable stamp
K 1 - enable stamp for status messages
K 2 - enable stamp for status messages and
for monitor frames.
K 20.02.88 - set date, european format
K 02/20/88 - set date, american format
K 17:36:00 - set time
Default: 0
ESC L [0..10] This command shows the link state of one or of all (no
parameter specified) channels. Following information will
be displayed: connect-path (callsign and digipeater path),
number of received frames, number of unsent frames, number
of unacknowledged frames and the retry counter. The currently
activated channel will be marked with a '+'.
ESC M [IUSCN+-]This command controls the display of monitor frames. The
parameters specifiy the type of frames which shall be
displayed.
Examples:
N no frame display
I information-frames
U unproto frames
S supervisory frames
C display during active connection
+ : only frames of these
stations
- : no frames of these
stations
A combination of '+' and '-' is not possible. If specified
'+' or '-' must be the last parameter before the callsign
list. Without a callsign list, the current list is deleted.
Default: UI
ESC N [0..127] Maximum number of retries (0 means try forever). This value
can be changed for each channel independently, but will be
restored to the value of channel 0 after reset or disconnect.
Default: 10
ESC O [1..7] Maximum number of outstanding packets (MAXFRAME). This value
can be changed for each channel independently, but will be
restored to the value of channel 0 after reset or disconnect.
Default: 2
ESC P [0..255] Value for p-persistance algorithm. In DAMA-mode a value of
255 will be used.
Default: 32
ESC QRES Cold boot, uses default values stored in EPROM.
ESC R [0|1] This command controls the digipeat function.
1=Yes, 0:No.
Default: 1
ESC S [0..10] Activation of a channel (0= unproto channel)
Default: 0
ESC T [0..127] Delay between start of transmission and start of data
(TXDELAY). The unit is 10 ms. Please adjust to the lowest
possible value.
Default: 25
ESC U [0|1|2] This command controls the connect text feature (CTEXT).
This text is sent if a remote station connects.
The text will remain stored even if the ctext mode is
changed. If mode 2 is selected and the terminal mode is
active, a packet received with '//Q' at the beginning will
disconnect the remote station. In hostmode this function is
disabled.
Examples:
U 1 Text enter CTEXT
U 1 CTEXT will be sent
U 2 (text) CTEXT and //Quit-function!
U 0 disable CTEXT
U display CTEXT
Default: 0
ESC V Displays the actual version of the software
ESC W [0..127] Value of the slot time of the p-persitance algorithm. The
unit is 10ms.
Default: 10
ESC X [0|1] This command allows to disable the transmitter.
0= disable, 1= enable.
Default: 1
ESC Y [0..10] Number of channel which will accept an incoming connect
request. The display format is "max. channels (used
channels)". Only works correct if the SSID are the same
on every channel.
Example: "4 (0)" Default: 4
ESC Z [0..3] With this command flow control and XON/XOFF-protocol can
be activated.
If flow control is activated no charcater is sent to the
terminal during data input.
If it is disabled all received data is sent immediately.
If XON/XOFF protocol is activated data output can be stopped
using and continued with .
Examples:
0 flow off , Xon/off off
1 flow on , Xon/off off
2 flow off , Xon/off on
3 flow on , Xon/off on
Default: 3
Additional commands are available which starts with '@':
ESC @A1 [] SRTT calculation: change/display value for a1. Default: 7
ESC @A2 [] SRTT calculation: change/display value for a2. Default: 15
ESC @A3 [] SRTT calculation: change/display value for a3. Default: 3
ESC @B Display of available TNC-buffers.
ESC @D [0|1] Disable/enable full duplex mode. Default: 0
ESC @I [] Change/display framelength for I-polling.
Default: 60
ESC @K Switch to KISS-mode.
ESC @M [0|1] 7-bit oder 8-bit terminal mode.
In 7-bit mode a control code conversion is active, too
which will display control codes with a leading '^'.
In 8-bit mode all control codes are sent without translation.
CAUTION: disable XON/XOFF in your terminal-program, otherwise
a XOFF will stop the data flow.
Although 8-bit mode is the default mode the real advantage
of TheFirmware is the *WA8DED HOSTMODE*. It is recommended
to use it together with a special terminalprogram instead of
using the terminal mode for binary transfers.
0=7-Bit; 1=8-Bit (only terminal-mode)
Default: 1
ESC @T2 [] Time between the receiving of a packet and the transmission
of the acknowledgement (timer T2).
Default: 150
ESC @T3 [] Time after which the connection is tested, if no data
transfer was done (still alive timer, timer T3).
Default: 18000
ESC @V [0|1] Test if entered callsign is a valid callsign
(1=Yes, 0=No).
Default: 0
Compiled from descriptions of
DB2OS, DF2AU und DC4OX ........................ DJ1OR september/1992
Updated for TF2.6 ............................. DB2OS july/1993
Translated to english ......................... DL4YBG september/1994