[aprssig] Aprx v2 beta, now with Viscous Digipeater

Matti Aarnio oh2mqk at sral.fi
Thu Oct 22 10:51:47 EDT 2009

On Thu, Oct 22, 2009 at 08:36:02AM -0500, Jason KG4WSV wrote:
> I have to say that every time I see "viscous" in a digipeating context
> I read "vicious". (:

Pronouncing it is even quite close to each other.

> Nice work, although I would like to see it ported to a microcontroller
> so that any old (KISS capable?) TNC can be upgraded.

The algorithm is rather simple for lone one-arm system:

  - At packet arrival, check if it has been seen before (Standard APRS Dupe Check)
    - Increment observation count for every match
    - Discard the lattest arrival, if count is over 1.
  - Hold received packets in probation queue for 5 seconds (the viscous delay)
  - If observation count for the packet is just 1 after the probation delay,
    then digipeat it with normal digipeat algorithm.

So it needs memory for that 5 second (10 second at most) queue of
waiting packets, and one counter byte (one bit minimum: 0 = seen once,
1 = seen again, regardless of how many times).

So who has sourcecode for UIDIGI?

One should realize that we can get ARM processors with megabytes of flash
and RAM embedded on a DIP-40 form-factor card.  So what do you want?
It would not be difficult to make a new "processor", but it probably
would be cheaper to make whole new TNC.

I have a bit more complex versions of this for multi-receiver/multi-
transmitter/multi-queue/multi-viscousness system implemented in Aprx v2.

It was fun weekend to map around 250 different event sequence, and
how each should be treated.  In the end the C code to make it is
less than 100 lines long, and half of it are comments, like any decent
programming should be.

> -Jason
> kg4wsv

  73 de Matti, OH2MQK

More information about the aprssig mailing list