Digi_ned

Introduction

Digi_ned is a rule based APRS digipeater written by Henk PE1DNN. It's released under GPLv2 licence which means that any modification is possible. I successfully compiled Digi_ned on the NSLU2 .

Digi_ned works with Kernel AX25 libs or with KISS mode. KISS mode is choosen because It's easyier to use, DIGI_NED handles a USB->RS232 adapter without any problems.

You can download source tarball here.

New Paradigm

Some digipeaters in Belgium are using New-Paradigm rules.

Here is the difference between old APRS rules and New Paradigm APRS rules

Old rule New rule Example Description
WIDEn-N REMOVED REMOVED REMOVED
TRACEn-N WIDEn-N WIDE3-3 Generic Alias
NONE BEn-N BE3-3 Belgium Wide Generic Alias
WIDE REMOVED REMOVED REMOVED
TRACE REMOVED REMOVED REMOVED
RELAY WIDE1-1 WIDE1-1 This alias acts like the old RELAY alias but works better

Migration to the New Paradigm was the main reason why we had to use smart digipeaters like Digi_ned. UI-DIGI is quite old and not flexible enough with these new rules.

Makefile

The makefile has to be modified to compile without errors. Just remove the dependencies declarations at the bottom of the file. Since we don't work with gccmakedep, just replace the Digi_ned Makefile with this one, and it should compile on your NSLU2.

Possible struct problem

When I use Digi_ned on the NSLU2, it segfaults when It gets messages like dx 1, mh 1 or anything like that.

On the ARM architecture, (char) type seems to be always unsigned, so I replaced the id field with a short int.

/* struct for storing messages for transmission */

typedef struct message_s {

    struct message_s  *next;                    /* pointer to next message   */

    digi_timer_t       timer;                   /* timer to start next try   */

    short              interval;                /* time between tries        */

    short              count;                   /* repeat count if not acked */

    short              port;                    /* port to transmit on       */

    short               id;                      /* message id or -1 for none */

    char               message[MSG_PREFIX_LENGTH + MAX_MESSAGE_LENGTH 

                                + MSG_SUFFIX_LENGTH + 1];

                                                /* message + space for '\0'  */

} message_t;

The message_t struct in digitype.h should look like this. Hope this mod will help to avoid this segmentation fault.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial 3.0 License