Sisällysluettelo |
Tästä sivusta on suomenkielinen versio Aprx — this page is English version of Finnish page Aprx.
Aprx was originally a receive-only APRS iGate (see APRS iGate properties) software, now extended to do digipeating, and Tx-iGate. It works on any UNIX-like systems with minimal requirements of system services, or system libraries beyond basic POSIX libc.
There are readily usable binary packages for some Fedora and Debian environments. Other platforms should be easily compilable for, and it is tested for compilation and use at times also on BSD family of systems.
The software is to be installed on a suitable UNIX-like system, and its configuration file is then to be adjusted. Then it can:
This software is intended for very limited resources environment, like small embedded-like machines barely able to run the operating system with TCP/IP networking.
A receive-only Rx-iGate does not need any sort of licenses in most parts of the world where radio amateur hobby is permitted to begin with.
On version 2, the Aprx has gotten ability to do APRS Digipeater function, Aprx Tx-iGate, as well as a variation of that called Viscous APRS Digipeater, which is excellent choice for a Fill-In digipeater like on a mobile station. Viscousness means that it will listen for other copies of same packet for a small configurable number of seconds, and if it hears same packet only once, it will do normal digipeating for it.
The software is downloadable at:
Manual is downloadable at:
Originally this software was written for the need of densifying receiver network feeding things to APRS-IS network, and the software did only things necessary for a receive-only APRS iGate. New version can also do stand-alone Digipeat of APRS packets as well as digipeat and Rx-/Tx-iGate.
The basic design criteria have also included something called minimum technology, whereby the software does not need any external software or libraries in order to function. However when additional technology is available, some are being used (like Linux kernel AX.25 network, POSIX Threads, etc.) This also minimized system resource requirements, which in case of APRS iGates do include networking, but can be done with very small machines, like Linux with 8 MB RAM. Also the software should be able to function on any minimally compliant POSIX system.
Important goal has been to keep R/W memory footprint as small as possible, and on general purpose i386 Linux a single radio port iGate+digipeater is now around 250 kB of R/W memory allocations. Of those around 100 kB are directly for the Aprx's own usage. Rest is probably glibc's use.
For Rx-iGate use the minimum configuration with tunable parts highlighted:
mycall OH2XYZ
<aprsis>
server rotate.aprs.net 14580
<aprsis>
<interface>
serial-device /dev/ttyS0 19200 8n1 KISS
</interface>
For a stand-alone APRS Digipeater the configuration would be:
mycall OH2XYZ
<interface>
serial-device /dev/ttyS0 19200 8n1 KISS
</interface>
<digipeater>
transmitter $mycall
<source>
source $mycall
</source>
</digipeater>
A stand-alone Digipeater can be made into Digi + Rx-iGate by adding the <aprsis> block on its configuration.
As this software must operate in extremely memory limited systems, its writers have seen no need to make any memory hungry configuration tools, and instead the installer must be able to edit the text format configuration file by means of some simple editor (like nano) existing in the system, or perhaps downloading the file from external editor.
Observed to work:
"Should work":
(in other words: any POSIX compliant system should work)
There is no integrated installation package for all the systems in the world, but things should not be too difficult to cook up your own.
It listens on radio modems speaking so called KISS protocol on any system attached serial ports. The modems can also speak of so called TNC2 monitor format:
Supports also AX.25 protocol in a machine, where such exist (mainly Linuxes) and radio modems attached on it.
Simplest way to configure Rx-iGate is to define following on configuration:
mycall OH2XYZ <aprsis> server rotate.aprs.net 14580 <aprsis> <interface> serial-device /dev/ttyS0 19200 8n1 KISS </interface>
The Tx-iGate is implemented as a possible data source for a digipeater transmitter. The APRS Tx-iGate:
Adding APRS Tx-iGate on Aprx configuration is a matter of adding suitable <source> block on digipeater configuration:
<aprsis>
server rotate.aprs.net 14580
#filter b/a0good # Tx-iGate everything always from this call
</aprsis>
<digipeater>
transmitter $mycall # radio port
<source>
source $mycall # radio port
</source>
<source>
source APRSIS
relay-mode 3rd-party
viscous-delay 5
#filter b/a0good # Tx-iGate everything always from this call
#filter -b/aa0bad # Tx-iGate never anything from this call
</source>
</digipeater>
The digipeater functionality handles standard AX.25 1.x/2.0 digipeating with additional specialities for APRS. This permits the digipeater to pass along other traffic in addition to APRS, like TCPIP, AX.25 CONS, etc.
By default the system treats WIDE as TRACE, and inserts digipeater's transmitter identity on each packet it sends out. It can be configured to "classical WIDE", as well as adding other keywords that are treated as WIDE or TRACE.
This software has some unique complex capabilities:
On Linux systems the system does also understand machine internal AX.25 network, and radios attached on it.
System defaults all call-signs to be what "MYCALL" configuration entry sets, however to refer on multiple interfaces in like <digipeater> definitions, they each will need unique call-signs. Those call-signs need not to be strictly AX.25 conformant if they have no transmitters, in particular the SSID part can be any one or two character upper-case alphanumeric string. (The call-signs are converted to upper-case if they are entered lower-case or mixed-case.)
There are lots of rumours about APRS radio channel occupancy, but very little measured hard facts. To help on this issue, the Aprx-program has a radio channel occupancy measurement estimator calculating the number of received bytes from radio and making some fuzzy guesses on how much more time transmitters did spend on channel before and after each packet.
The Aprx-program will also send telemetry packets about each receiver which can then be graphed at APRS-IS, like happens with http://aprs.fi/telemetry/OH2RDK-5?range=week
With digipeater enabled, this telemetry shows also number of transmitted packets.
By default the system is telemetering all radio ports to APRS-IS, through which each port behaviour can be viewed via telemetry browsing service as http://aprs.fi/
Optionally for installations used as pure digipeater without internet connection to APRS-IS, the telemetry data can also be sent over radio port:
<telemetry>
transmitter $mycall
via TRACE1-1
source $mycall
</telemetry>
See details in aprx-manual.pdf
When an Aprx server node has multiple transmitters associated on it, each that is wanted to digipeat out something will need a digipeater definition, and they act individually!
One can use this to build:
Special function mode is called "viscous digipeater", which puts received APRS packets on a short term delay storage (configurable from 1 to 9 seconds, 5 is usually a good value to use), and it counts all instances of that same packet heard from from radio. If the count at the end of this viscous delay is just 1, then that packet is digipeated.
See Viscous APRS Digipeater for an illustrative transmission monitoring graphs of normal digipeater vs. viscous digipeater.
Usually the freshest pre-compiled binary packages have been made for a Debian Etch (4.0) series i386 systems, and they work on most of newer Debian derivative systems, like Ubuntus.
# dpkg -i aprx_1.99.382-1_i386.deb
The default installation package will place /etc/aprx.conf and all other necessary startup files and scripts into the system, however the defaults are such that the system will not start with them automatically.
You will need to do:
aprx-manual.pdf to guide you to edit the /etc/aprx.conf file
/etc/default/aprx
Then the program will start and stop with commands:
# /etc/init.d/aprx start # /etc/init.d/aprx stop
At Debian, doing the installation does often mean that system asks you essentially: "May I overwrite configuration files?" There you will always reply "N", unless you want to do all configuration work all over again.
See examples at aprx-manual.pdf file.
When you have edited the configuration to be more suitable to your environment, try it with the program like this:
# aprx -d -f /etc/aprx.conf
(this program terminates with Control-C)
If it doesn't spew any "ERROR:" texts, then at least it passes the configuration reading machinery.
Shut down possible earlier running copy of the program:
# /etc/init.d/aprx stop
Start it fresh:
# /etc/init.d/aprx start