[Xastir] When your only tool is a hammer- using linux to send aprs packets

Curt, WE7U curt.we7u at gmail.com
Sun Mar 7 02:01:02 EST 2010


On Sat, 6 Mar 2010, Joseph Miller wrote:

> I am looking for the easiest tool (hopefully already written) to send a beacon
> payload to the aprs system via linux.

> I have been playing with the "beacon" command but cannot seem to configure it to
> have it read by the aprs digi that I am adjacent to.

Everybody must be busy this weekend.  I expected to see a response
or two to your message here.  I'll stick with my earlier answer and
suggest that "beacon" and/or Perl would be your best bets.


> Another (simpleminded) approach would be to generate a new aprsd.conf file with
> a tnc beacon text that is specific to the packet that is to be transmitted, then
> start and stop aprsd.

That seems overkill.


> Maybe I am just not using "beacon" correctly for it to send an APRS packet. I
> have my call sign (KI7WV-2) as "Source Callsign" and "APRS>WIDE2-3" as
> destination callsign.

I don't currently have AX.25 networking running here but could do so
for testing if necessary.  I haven't tested that since upgrading the
Linux here so it would be a good thing to test anyway.

I looked at the man page for "beacon" just now.  Try this instead:

     beacon -s -c "KI7WV-2" -d "APRS WIDE2-2" <port> "message"

Notice the spaces between callsigns in the -d portion and the change
from wide3-2 to wide2-2.  Generally on APRS you'll want your
destination to start with "AP" for the other stations to recognize
it, so that was right-on as you had it.

You can run "listen" in another xterm to watch the packets go by.
This might be useful to see what's happening.  As I recall I had to
run "listen" as the root user for it to work correctly.

Once you have the beacon command working to your satisfaction, you
could write a simple Perl script to call it with the proper backoff
timing.  Give me a yell if you have trouble.

Since the "-t interval" timing for "beacon" is in minutes, you
probably want to use the "-s" (single-shot) option instead and have
the Perl script do all the timing for you.

You could choose to snag the source code for "beacon" and add an
exponential backoff timing parameter to the command, perhaps with an
initial and a maximum timing parameter for it.  Something like:

     -e 20 300

for 20 seconds initially and backing off exponentially to a
steady-state value of 300 seconds.  Maybe another parameter for
maximum transmits to do?  You could submit the patch to the AX.25
maintainers who could choose to accept or reject it.  Even if
accepted it could take years to see it updated in all of the Linux
distributions.

Good luck and let us know how it works out.  If you write something
in Perl that you think is useful, tell us about it here.

-- 
Curt, WE7U.                         <http://www.eskimo.com/~archer>
    APRS:  Where it's at!                    <http://www.xastir.org>
   Lotto:  A tax on people who are bad at math. - unknown
Windows:  Microsoft's tax on computer illiterates. - WE7U.
The world DOES revolve around me:  I picked the coordinate system!"



More information about the Xastir mailing list