UIDIGI EPROM

Programming Information for APRS®


This page was intended to help those programming UIDIGI firmware with APRS friendly settings. Since the firmware settings can be very confusing to many of us, I decided to make an attempt to explain each of the settings. If you see anything I have done that needs to be corrected, please send me a message at n8deu@amsat.org. These settings are by no means the final word in every installation. They are settings we use on our UIDIGI systems in North Alabama and others who have requested UIDIGI firmware burned into an EPROM.

UIDIGI is firmware designed for the TNC2 (or TNC2 clone) packet controllers by Marco Savegnago, IW3FQG. This firmware converts a TNC2 into an APRS packet digipeater with advanced functions not found on other TNC's. The UIDIGI firmware really breathes new life into an old TNC2 Packet Node Controller and makes it a modern day APRS digipeater.

APRS ® is a registered trademark of Bob Bruninga, WB4APR.

If you need help programming an EPROM, I have the capability to burn EPROM's. Drop me a message and I will try to help you get started or program an EPROM with your specific settings.


Setting the UIDIGI firmware parameters for version 1.8 beta 6

 

DigipeaterCallsign

// Set the digipeater ax.25 address callsign (with SSID if necessary)

DigipeaterCallsign = UIDIGI

 

The DigipeaterCallsign should be set to the callsign that will identify your digipeater. If you have multiple digipeaters using your callsign, then you may choose to use a unique SSID settings from 1 to 15. In my case I have multiple digipeaters, so I have decided to use N8DEU-4 for this example. You would use your own callsign for this setting.

DigipeaterCallsign = N8DEU-4

 


DigipeaterAlias

// Set the digipeater address alias (without SSID if necessary)

DigipeaterAlias = UIDIGI

 

This default setting can be left unchanged. The standard digipeater aliases such as RELAY, WIDE, or TRACE are handled later in the configuration file. If you have a specific need or want to give the digipeater an alias associated with its location (ie MTSANO, HSV, etc) you can program that information using this parameter.

 


BeaconDestination

// Destination ax.25 address of beacon

BeaconDestination = APZ186

 

The BeaconDestination is the AX.25 destination address field. It is typically set to represent a particular software package and version number that makes it identifiable to all on the network. There has been no specific software version type designator given to UIDIGI. Thus, the APZxxx identifier is used to represent the type as Experimental as set forth in the APRS Protocol Reference available at www.tapr.org.

 


AuxDestination

// Destination ax.25 address of aux input device string

AuxDestination = AUX

 

Please consult the UIDIGI documentation supplied with the firmware. The AUXxxx parameters are used to support and route a raw string received on the serial port (i.e. GPS, Weather Station, etc).

 


Beacon1Path

// AX.25 Beacon 1 path

Beacon1Path = WIDE,WIDE

 

The user has the flexibility to change the default settings for the 3 beacon paths available. I chose to use no path for this setting so the Beacon1Text is only transmitted locally every 10 minutes as set by the Beacon1Interval parameter.

We leave this entry blank in our area so that the digipeater on transmits to its local coverage area without bring digipeated by other area digipeaters.

Beacon1Path = 

 


Beacon2Path

// AX.25 Beacon 2 path

Beacon2Path = WIDE3-3

 

The user has the flexibility to change the default settings for the 3 beacon paths available. I chose to use the default WIDE3-3 for this setting so the Beacon2Text is transmitted via this path every 30 minutes as set by the Beacon2Interval parameter. Since all the digipeaters in my surrounding area support the WIDEn-n function. It works good for us. If you are in an area that does not have many WIDEn-n digipeaters you may choose to use WIDE,WIDE,WIDE for better coverage.

 


Beacon3Path

// AX.25 Beacon 3 path

Beacon3Path = WIDE7-7

 

The user has the flexibility to change the default settings. We do not use the default setting for this parameter since it causes a little unnecessary congestion in this part of the country. Your needs and intentions may be different, but we use TRACE3-3 so the Beacon3Text will be transmitted every hour as set by the Beacon3Interval parameter.

We use the following beacon path for trace identification at longer interval times:

Beacon3Path = TRACE3-3

 


AuxPath

// AX.25 Aux path

AuxPath =

 

Please consult the UIDIGI documentation supplied with the firmware. The AUXxxx parameters are used to support and route a raw string received on the serial port (i.e. GPS, Weather Station, etc)

 


NorthPath

// North Path

NorthPath =

 

This path is used when the destination field of a packet contains the special SSID routing information. Set the path that will direct traffic to the northern direction. We do not use the North, South, East, or West settings at this location, but you may want to set them accordingly in your specific area.

We do not utilize this feature.

 


SouthPath

// South Path

SouthPath =

 

This path is used when the destination field of a packet contains the special SSID routing information. Set the path that will direct traffic to the southern direction. We do not use the North, South, East, or West settings at this location, but you may want to set them accordingly in your specific area.

We do not utilize this feature.

 


EastPath

// East Path

EastPath =

 

This path is used when the destination field of a packet contains the special SSID routing information. Set the path that will direct traffic to the eastern direction. We do not use the North, South, East, or West settings at this location, but you may want to set them accordingly in your specific area.

We do not utilize this feature.

 


WestPath

// West Path

WestPath =

 

This path is used when the destination field of a packet contains the special SSID routing information. Set the path that will direct traffic to the western direction. We do not use the North, South, East, or West settings at this location, but you may want to set them accordingly in your specific area.

We do not utilize this feature.

 


BudList

// BudList Calls (up to 8, default none)

BudList =

 

The buddy list is a misnomer. It should really be called the enemy list, because the digipeater will ignore packets from a callsign in this list. This includes all SSID's of the callsign. We do not have these kind of buddies in our area, so we do not use this setting. If you have a need to ignore packets from any station, then you can add them to this list

 


UIDigiCall

// UI Generic Calls (up to 8)

UIDigiCall = RELAY, WIDE, TRACE

 

The UIDigiCall setting contains the basic path identifiers that will be recognized and repeated by the digipeater. You can add any specific path identifiers that may be unique to your area in this list in addition to those listed by the default setting.

We use the following settings to add identifiers to cover the entire state (AL) and our local area (HSV):

UIDigiCall = RELAY, WIDE, TRACE, HSV, AL

 


UIFloodCall

// UI Flood Call

UIFloodCall = WIDE

 

The default setting supports the WIDEn-n digipeating method. It will digipeat any new WIDEn-Nn packet and subtract 1 from the SSID until the SSID reaches 0. The digipeater keeps track of what it digipeated for the period specified by the DuplicateSuppression setting (25 seconds by default) and will not digipeat a duplicate of this packet if it is heard withing this time frame. The reduces the number of unnecessary digipeats in areas with several digipeaters within radio range. This setting could also be changed to "HOP" to support other specific functions like HOPn-Nn which has been suggested for the BeaconNet experiments used on frequencies aside from APRS in the Amateur Radio Service.

For example, if a packet were sent via WIDE3-3, the following would result:

N8DEU>BEACON,WIDE3-2:

N8DEU>BEACON,WIDE3-1:

N8DEU>BEACON,WIDE3:

 

Of course, the above example shows the method called NOID where the digipeater call sign is not added to the path as it is digipeated. This is a benefit of the UIDIGI firmware.

 


UITraceCall

// UI Trace Call

UITraceCall = TRACE

 

UITRaceCall works much like the UIFloodCall or WIDEn-N algorithm with the exception that the TRACE routine will insert it's digipeater call in the path in front of the TRACEn-N as it subtracts 1 from the SSID until it reaches 0.

For example if a packet is sent via TRACE3-3 the following would result:

N8DEU>BEACON,W4LAW-2*,TRACE3-2:

N8DEU>BEACON,W4LAW-2*,N4NEQ-3*,TRACE3-1:

N8DEU>BEACON,W4LAW-2*,N4NEQ-3*,W4SBO-7*,TRACE3:

 


TxDelay

// Txdelay (default 30 = 300)

TxDelay = 30

 

TxDelay specifies the length of time to wait to send data after the PTT (Push-to-Talk) line has been activated. The pupose is to give the radio enough time to come up to power and stabilize on the frequency before actually sending the data. Flags are transmitted during the delay period prior to data.

TxDelay is specified as " n x 10mS". The default setting of 30 is actually 300mS (30 x 10mS). This setting is very dependent on the radio equipment you are using. If the transmitter uses a mechanical relay, then it will probably need set between 30-50 (300-500mS). A relay makes a clicking sound when you activate the transmitter. Most of today's equipment do not use mechanical relays. Instead, they use electronic switching that is much faster. For this type of equipment, you can set TXDelay between 10-30 (100-300mS). Be very careful with this setting. If the delay is not set long enough for the transmitter to activate, your digipeater will not work reliable because packets will be dropped. The default setting is good in most cases. If you are not sure, use the default.

Do not set TxDelay too low, because some people use squelched audio on their radio's. They need enough TxDelay from your digipeater for their squelch to open and allow data to be decoded. If your TxDelay is too fast, they may never decode packets from your digipeater because their squelch circuit is slow. Again, the default setting helps avoid this problem.

 


PreemptCalls

// Preempt calls (default none)

PreemptCalls =

 

If Preempt is enabled, call signs added to this list will be preempted. This is not used for most APRS applications unless there is a specific need to route traffic. If any call signs appear in this list, the digipeater can digipeat it even if it is not the next path to be digipeated in the sequence of events.

This is an experimental parameter.

We do not use the Preempting feature.

 


PreemptAdd

// Preempt add (default none)

PreemptAdd =

 

If Preempt is enabled, paths added to this list will be appended to the preempted call sign processed. This is not used for most APRS applications unless there is a specific need to route traffic.

This is an experimental parameter.

We do not use the Preempting feature.

 


FullDuplex

// Fullduplex (default 0)

FullDuplex = 0

 

FullDuplex should never be used on a simplex channel as utilized in the APRS application. FullDuplex should only be used when separate or crossband channels are utilized. This parameter would be used only for special applications.

We use the default setting as shown.

 


PPersistance

// PPErsistence (default 64)

PPersistance = 64

 

This is an AX.25 link layer parameter. There should be no need to change the default unless you have a specific application.

 


SlotTime

// Slottime (default 10)

SlotTime = 10

 

This is an AX.25 link layer parameter. There should be no need to change the default unless you have a specific application.

 


Frack

// Frack (default 5)

Frack = 5

 

This parameter controls the Frame Acknowledgment timeout. It does nothing for UI frames. It comes into the picture for timing when you are remotely connected to the digipeater in the sysop mode which is a connected mode of operation versus UI.

Use the default setting.

 


Maxframe

// Maxframe (default 4)

Maxframe = 4

 

This parameter sets the limit of unacknowledged frames. It does nothing for UI frames. It comes into the picture for control when you are remotely connected to the digipeater in the sysop mode which is a connected mode of operation versus UI.

Use the default setting.

 


Retry

// Retry (default 10)

Retry = 10

 

This parameter sets the number of retries for unacknowledged frames. It does nothing for UI frames. It comes into the picture for control when you are remotely connected to the digipeater in the sysop mode which is a connected mode of operation versus UI.

Use the default setting.

 


RespTime

// RespTime 2 (default 100)

RespTime = 100

 

This parameter sets the minimum response time for acknowledgement frames. It does nothing for UI frames. It comes into the picture for control when you are remotely connected to the digipeater in the sysop mode which is a connected mode of operation versus UI.

Use the default setting.

 


LinkCheck

// Link Check (default 18000)

LinkCheck = 18000

 

This parameter specifies the time-out for the sysop mode if no activity is heard within the period specified.

We use the default setting.

 


Beacon1Interval

// Beacon 1 interval (default 600)

Beacon1Interval = 600

 

This parameter determines how often the Beacon1Text is transmitted via the Beacon1Path. The default setting should be fine, but it can be changed.

 

We use the default setting.

 


Beacon2Interval

// Beacon 2 interval (default 1800)

Beacon2Interval = 1800

 

This parameter determines how often the Beacon2Text is transmitted via the Beacon2Path. The default setting should be fine, but it can be changed.

 

We use the default setting.

 


Beacon3Interval

// Beacon 3 interval (default 3600)

Beacon3Interval = 3600

 

This parameter determines how often the Beacon3Text is transmitted via the Beacon3Path. The default setting should be fine, but it can be changed.

 

We use the default setting.

 


Beacon1Offset

// Beacon 1 offset (default 0)

Beacon1Offset = 0

 

Consult the documentation for the use of this feature.

 

We use the default setting.

 


Beacon2Offset

// Beacon 2 offset (default 0)

Beacon2Offset = 0

 

Consult the documentation for the use of this feature.

 

We use the default setting.

 


Beacon3Offset

// Beacon 3 offset (default 0)

Beacon3Offset = 0

 

Consult the documentation for the use of this feature.

 

We use the default setting.

 


AuxRate

// Aux Beacon interval (default 0)

AuxRate = 0

 

Please consult the UIDIGI documentation supplied with the firmware. The AUXxxx parameters are used to support and route a raw string received on the serial port (i.e. GPS, Weather Station, etc)

 


DuplicateSuppression

// Duplicate Packet Suppression Interval second (default 28)

DuplicateSuppression = 25

 

The setting specifies the time period to ignore duplicate packets. The default text setting indicates the default is 28 but the actual default setting is set to 25.

We use the following setting for this parameter, in case somebody has their beacon rate set to 30 seconds to control aggressive user beacons:

DuplicateSuppression = 28

 


LoopSuppression

// Loop Packet Suppression Interval Mask (default 3)

// 0x01 = Do not repeat frame with source address equal to digipeater call or alias

// 0x02 = Do not repeat frame with the digipeater call in the already digipeated via list

LoopSuppression = 3

 

This parameter is used to activate 1 or 2 UI loop suppression techniques. The default setting activates both loop suppression features to prevent duplicate digipeating of the same packet.

We use the default setting.

 


HandleUISSID

// Treat different SSID in destination call (default 1)

HandleUISSID = 1

 

We use the default setting.

 


ReplyToQuery

// Reply to Query (default 1)

ReplyToQuery = 1

 

This parameter controls whether the digipeater responds to ?APRS? queries. The default setting enables the digipeater to response to the ?APRS? query.

We use the default setting.

 


UIFLOODOptions

// UIFLOOD Algorithm flag (default 0)

// bit 0 make call substitution after the last WIDEn-n digied

// bit 1 insert callsign before WIDEn-n

UIFLOODOptions = 0

 

This parameter controls how the the UIFloodCall is processed. The default setting of 0, emulates the NOID process. This means the WIDEn-n SSID is decremented and no call sign substitution is performed on the WIDEn-n path.

For example if a packet were sent via WIDE3-3, the following would result:

N8DEU-4>BEACON,WIDE3-2:

N8DEU-4>BEACON,WIDE3-1:

N8DEU-4>BEACON,WIDE3:

 

The path does not grow and no call sign substitution is performed. This is the preferred process using the WIDEn-n path as it reduces the amount of bandwidth utilized on a simplex channel. This is a benefit of the UIDIGI firmware.

We use the default setting.

 


UITRACEOptions

// UITRACE Algorithm flag (default 0)

// bit 0 make call substitution after the last TRACEn-n digied

UITRACEOptions = 0

 

With the default setting the TRACE routine will insert it's digipeater call in the path in front of the TRACEn-Nn as it subtracts 1 from the SSID until it reaches 0. The packet path will grow, showing all the digipeaters that have responded along the path.

For example if a packet is sent via TRACE3-3, the following would result:

N8DEU>BEACON,W4LAW-2*,TRACE3-2:

N8DEU>BEACON,W4LAW-2*,N4NEQ-3*,TRACE3-1:

N8DEU>BEACON,W4LAW-2*,N4NEQ-3*,W4SBO-7*,TRACE3:

 

The default setting is recommended.

 


UIDIGICallSubstitution

// Make call substitution when repeat frames addressed to UIDIGI Callsign

// default (1)

UIDIGICallSubstitution = 1

 

We use the default setting.

 


UIPID

// PID of processed frames (default 240)

UIPID = 240

 

Do not change this setting unless you have a specific reason or requirement.

We use the following setting to allow all packets to use the digipeater:

UIPID = 0

 


PreemptedDigipeat

// Preempt Digipeater (default 0)

PreemptedDigipeat = 0

 

We use the default setting.

 


SysopPassword

// Sysop Password up to 80 char

SysopPassword = qazwsxedcrqazwsxedcrqazwsxedcrqazwsxedcrqazwsxedcrqazwsxedcrqazwsxedcrqazwsxedcr

 

I highly recommend that you change the SysopPassword setting unless you like unsuspecting people changing the settings on your UIDIGI for you.

 


InfoText

// Digipeater Info Text up to 80 char

InfoText = UIDIGI 1.8 BETA 6

 

The default setting is fine unless you like to customize a little. See the tip on text formatting in the Beacon1Test parameter on how we format our messages to fit the Kenwood TH-D7 and TM-D700 displays.

Below is a sample of the InfoText setting for our local digipeater:

InfoText = Huntsville Alabama  Madison Co - UIDIGI 1.8 Beta 6

 


Beacon1Text

// Digipeater Beacon 1 Text up to 70 char

Beacon1Text = !0000.00N\00000.00W.PHG0000/APRS DIGIPEATER (UIDIGI 1.8) 1

 

The default has a couple issues that need to be resolved so that your Digipeater symbol and overlay appear properly.

 

An example of my Beacon1Text follows:

Beacon1Text = !3447.87NU08638.39W#PHG5630/WIDEn-n   Huntsville Alabama

 

Note that the "\" after the latitude has been changed to a "U".

Note that the "." after the longitude has been changed to a "#".

These 2 changes will meet the APRS Protocol to display a Digi Star with the letter "U" overlayed on the symbol. This will set your UIDIGI system apart from all other digipeater types and signify that it handles the NOID operation properly for UIFLOOD.

 

A tip on text formatting:

I have a few comments about the formatting of the text that follows the last "/" in the string. The Kenwood D7A and D700 both have 10 character displays that show incoming data from the message field. The D7A has 2 lines and the D700 has 3 lines of 10 characters that can be displayed on the screen for incoming data. With this in mind, I typically pad the text with spaces so the data looks nice for these displays. See the uidigi.txt sample file. With 3 spaces after the WIDEn-n, my D7A would show 2 lines and my D700 would show 3 lines of data with one word per line in this example.

 


Beacon2Text

// Digipeater Beacon 2 Text up to 70 char

Beacon2Text = !0000.00N\00000.00W.PHG0000/APRS DIGIPEATER (UIDIGI 1.8) 2

 

We use the following settings:

Beacon2Text = !3447.87NU08638.39W#PHG5630/WIDEn-n   Huntsville Alabama

 


Beacon3Text

// Digipeater Beacon 3 Text up to 70 char

Beacon3Text = !0000.00N\00000.00W.PHG0000/APRS DIGIPEATER (UIDIGI 1.8) 3

 

We use the following settings:

Beacon3Text = >Huntsville Alabama Madison Co - UIDIGI 1.8b6

 


This page was last updated on 28-Apr-2002