# # Simple sample configuration file for the APRX-2 -- an APRS iGate and Digipeater # # This configuration is structured with Apache HTTPD style tags # which then contain subsystem parameters. # # # For simple case, you need to adjust 4 things: # - Mycall parameter # - passcode parameter in APRS-IS configuration # - Select correct type of interface (ax25-device or serial-device) # - Optionally set a beacon telling where this system is # - Optionally enable digipeater with or without tx-igate # # # # Define the parameters in following order: # 1) ** zero or one # 2) ** zero or one # 3) ** there can be multiple! # 4) ** zero to many # 5) ** zero to many # 6) ** zero to many (at most one for each Tx) # # # Global macro for simplified callsign definition: # Usable for 99+% of cases. # mycall PE1RXF-1 # # Global macro for simplified "my location" definition in # place of explicit "lat nn lon mm" at beacons. Will also # give "my location" reference for "filter m/100". # #myloc lat ddmm.mmN lon dddmm.mmE # # The aprsis login parameter: # Station callsignSSID used for relaying APRS frames into APRS-IS. # Use this only to define other callsign for APRS\-IS login. # #login OTHERCALL-7 # login defaults to $mycall # # Passcode for your callsign: # Unique code for your callsign to allow transmitting packets # into the APRS-IS. # #passcode 19123 # APRS-IS server name and optional portnumber. # # WARNING: Do not change from default port number [14580] # unless you are absolutely certain you want # something else, and you allow that something # else also affect your tx-igate behaviour! # #server rotate.aprs2.net #server euro.aprs2.net #server asia.aprs2.net #server noam.aprs2.net #server soam.aprs2.net #server aunz.aprs2.net # Some APRS-IS servers tell every about 20 seconds to all contact # ports that they are there and alive. Others are just silent. # Default value is 3*"heartbeat" + some --> 120 (seconds) # #heartbeat-timeout 0 # Disabler of heartbeat timeout # APRS-IS server may support some filter commands. # See: http://www.aprs-is.net/javAPRSFilter.aspx # # You can define the filter as single long quoted string, or as # many short segments with explaining comments following them. # # Usability of these filters for a Tx-iGate is dubious, but # they exist in case you for example want to Tx-iGate packets # from some source callsigns in all cases even when they are # not in your local area. # #filter "possibly multiple filter specs in quotes" # #filter "m/100" # My-Range filter: positions within 100 km from my location #filter "f/OH2XYZ-3/50" # Friend-Range filter: 50 km of friend's last beacon position # passcode 19123 server rotate.aprs2.net 14580 # pidfile is UNIX way to tell that others that this program is # running with given process-id number. This has compiled-in # default value of: pidfile /var/run/aprx.pid # pidfile /var/run/aprx.pid # rflog defines a rotatable file into which all RF-received packets # are logged. The host system can rotate it at any time without # need to signal the aprx that the file has been moved. # rflog /var/log/aprx/aprx-rf.log # aprxlog defines a rotatable file into which most important # events on APRS-IS connection are logged, namely connects and # disconnects. The host system can rotate it at any time without # need to signal the aprx that the file has been moved. # aprxlog /var/log/aprx/aprx.log # dprslog defines a rotatable file into which most important # events on DPRS receiver gateways are logged. # The host system can rotate it at any time without need to # signal the aprx that the file has been moved. # #dprslog /var/log/aprx/dprs.log # erlangfile defines a mmap():able binary file, which stores # running sums of interfaces upon which the channel erlang # estimator runs, and collects data. # Depending on the system, it may be running on a filesystem # that actually retains data over reboots, or it may not. # With this backing store, the system does not loose cumulating # erlang data over the current period, if the restart is quick, # and does not stradle any exact minute. # (Do restarts at 15 seconds over an even minute..) # This file is around 0.7 MB per each interface talking APRS. # If this file is not defined and it can not be created, # internal non-persistent in-memory storage will be used. # # Built-in default value is: /var/run/aprx.state # #erlangfile /var/run/aprx.state # *********** Multiple definitions can follow ********* # ax25-device Lists AX.25 ports by their callsigns that in Linux # systems receive APRS packets. If none are defined, # or the system is not Linux, the AX.25 network receiver # is not enabled. Used technologies need at least # Linux kernel 2.4.x # # tx-ok Boolean telling if this device is able to transmit. # #Main interface on internal radio ax25-device $mycall tx-ok true # transmitter enable defaults to false #telem-to-is true # set to 'false' to disable #Secondary interface on external radio callsign PE1RXF-2 ax25-device PE1RXF-2 tx-ok true #Third interface (internal LoRa radio) callsign PE1RXF-3 ax25-device PE1RXF-3 tx-ok true # # The TNC serial options. Parameters are: # - /dev/ttyUSB1 -- tty device # - 19200 -- baud rate, supported ones are: # 1200, 2400, 4800, 9600, 19200, 38400 # - 8n1 -- 8-bits, no parity, one stop-bit, # no other supported modes # - "KISS" - plain basic KISS mode # - "XORSUM" alias "BPQCRC" - KISS with BPQ "CRC" byte # - "SMACK" alias "CRC16" - KISS with real CRC # - "FLEXNET" - KISS with real CRC # - "TNC2" - TNC2 monitor format # - "DPRS" - DPRS (RX) GW # # # serial-device /dev/ttyUSB0 19200 8n1 KISS # #callsign $mycall # callsign defaults to $mycall # #tx-ok false # transmitter enable defaults to false # #telem-to-is true # set to 'false' to disable # # # serial-device /dev/ttyUSB1 19200 8n1 TNC2 # #callsign $mycall # callsign defaults to $mycall # #tx-ok false # TNC2 monitor can not have transmitter # #telem-to-is true # set to 'false' to disable # # # serial-device /dev/ttyUSB1 19200 8n1 DPRS # callsign dprsgwcallsign # must define actual callsign # #tx-ok false # DPRS monitor can not do transmit # #telem-to-is true # set to 'false' to disable # # # tcp-device behaves identically to local serial port, but allows # access to remote TCP/IP sockets. A common application is remote # KISS modems connected to Ethernet-to-serial adapters from suppliers # such as Lantronix. # It's important that this remote socket is a raw TCP socket and not # handle any byte codes as command escapes. # # tcp-device hostname portnumber mode # - hostname may be a domain name, IPv4 address, or a IPv6 address # - portnumber is any valid TCP port (1-65535) # - mode is the same as serial-device (KISS, TNC2, etc.) # # # tcp-device 127.0.0.0 8616 KISS # callsign $mycall # callsign defaults to $mycall # tx-ok true # transmitter enable defaults to false # #telem-to-is true # set to 'false' to disable # # *********** Multiple definitions can follow ********* # # # Beacons are sent out to radio transmitters AND/OR APRSIS. # Default is "both", other modes are settable. # #beaconmode { aprsis | both | radio } #beaconmode both # # Beacons are sent from a circullar transmission queue, total cycle time # of that queue is 20 minutes by default, and beacons are "evenly" # distributed along it. Actual intervals are randomized to be anything # in between 80% and 100% of the cycle-size / number-of-beacons. # First beacon is sent out 30 seconds after system start. # Tune the cycle-size to be suitable to your number of defined beacons. # #cycle-size 60m # # Basic beaconed thing is positional message of type "!": # # WIDE beacon at t+0m #beacon via "DB0PBG-5" symbol "X#" lat "5302.78N" lon "00707.91E" comment "Experimental Fill-In Digi (meezenest.nl/pe1rxf)" #beacon file /home/marcel/ham/aprs_utils/beacon_active.txt # local beacon at t+20m #beacon symbol "X#" lat "5302.78N" lon "00707.91E" comment "Experimental Fill-In Digi (meezenest.nl/pe1rxf)" #local beacon at t+40m #beacon interface PE1RXF-2 symbol "R&" lat "5302.78N" lon "00707.91E" comment "APRS RX iGATE 432.500MHz https://meezenest.nl/pe1rxf" #beacon interface PE1RXF-3 symbol "L&" lat "5302.78N" lon "00707.91E" comment "LoRa RX iGATE https://meezenest.nl/pe1rxf" #beacon interface APRSIS symbol "R&" lat "5302.78N" lon "00707.91E" comment "RX iGATE (144.800/432.500/LoRa) https://meezenest.nl/pe1rxf" #beacon symbol "R&" $myloc comment "Rx-only iGate" # #Following are basic options: # 'symbol' no default, must be defined! # 'lat' coordinate latitude: ddmm.mmN (no default!) # 'lon' coordinate longitude: dddmm.mmE (no default!) # '$myloc' coordinate values taken from global 'myloc' entry, # and usable in place of explicit 'lat'+'lon'. # 'comment' optional tail part of the item, default is nothing # # Sample symbols: # R& is for "Rx-only iGate" # I& is for "Tx-iGate" # /# is for "Digipeater" # I# is for "Tx-iGate + Digipeater"" # #Additional options are: # 'srccall' parameter sets claimed origination address. # 'dstcall' sets destination address, default "APRXnn" # 'interface' parameter picks an interface (must be "tx-ok true" type) # 'via' sets radio distribution pattern, default: none. # 'timefix' On APRS messages with HMS timestamp (hour:min:sec), the # system fixes appropriate field with transmit time timestamp. # # Message type is by default '!', which is positional no timestamp format. # Other possible formats are definable with options: # 'type' Single character setting type: ! = / @, default: ! # 'item' Defines a name of Item (')') type beacons. # 'object' Defines a name of Object (';') type beacons. # # 'file' option tells a file at which a _raw_ APRS message content is # expected to be found as first line of text. Line ending newline # is removed, and no escapes are supported. The timefix is # available, though probably should not be used. # No \-processing is done on read text line. # # 'exec' option tells a computer program which returns to stdout _raw_ APRS # message content without newline. The timefix is # available, though probably should not be used. # No \-processing is done on read text line. # # The parameter sets can vary: # a) 'srccall nnn-n dstcall "string" symbol "R&" lat "ddmm.mmN" lon "dddmm.mmE" [comment "any text"] # b) 'srccall nnn-n dstcall "string" symbol "R&" $myloc [comment "any text"] # c) 'srccall nnn-n dstcall "string" raw "string"' # # The a) form flags on some of possible syntax errors in parameters. # It will also create only "!" type messages. The dest parameter # defaults to "APRS", but can be used to give other destinations. # The via parameter can be used to add other keywords, like "NOGATE". # # Writing correct RAW format beacon message is very hard, # which is evidenced by the frequency of bad syntax texts # people so often put there... If you can not be persuaded # not to do it, then at least VERIFY the beacon result on # web service like findu.com, or aprs.fi # # Do remember that the \ -character has special treatment in the # Aprx configuration parser. If you want a '\' on APRS content, # then you encode it on configuration file as: '\\' # # Stranger combinations with explicite "transmit this to interface X": # #beacon file /tmp/wxbeacon.txt #beacon interface N0CALL-3 srccall N0CALL-3 \ # raw "!0000.00NR00000.00E&Rx-only iGate" #beacon interface N0CALL-3 srccall N0CALL-3 \ # raw "!0000.00NI00000.00E&Tx-iGate" #beacon interface $mycall symbol "R&" $myloc \ # comment "Rx-only iGate" #beacon interface $mycall symbol "I&" $myloc \ # comment "Tx-iGate" #beacon exec /usr/bin/telemetry.pl #beacon timeout 20 exec /usr/bin/telemetry.pl #beacon interface N0CALL-3 srccall N0CALL-3 \ # timeout 20 exec /usr/bin/telemetry.pl # # beaconmode aprsis cycle-size 10m beacon srccall PE1RXF-1 symbol "R&" lat "5302.78N" lon "00707.91E" comment "APRS RX iGATE 144.800MHz https://meezenest.nl/pe1rxf" beaconmode aprsis cycle-size 10m beacon srccall PE1RXF-2 symbol "R&" lat "5302.78N" lon "00707.91E" comment "RX iGATE 432.500MHz https://meezenest.nl/pe1rxf" beaconmode aprsis cycle-size 10m beacon srccall PE1RXF-3 symbol "L&" lat "5302.78N" lon "00707.91E" comment "LoRa APRS RX iGATE 433.775MHz https://meezenest.nl/pe1rxf" beaconmode radio cycle-size 30m beacon interface PE1RXF-3 symbol "L&" lat "5302.78N" lon "00707.91E" comment "LoRa APRS RX iGATE 433.775MHz https://meezenest.nl/pe1rxf" # *********** definition(s) follow ********* # # The system will always send telemetry for all of its interfaces # to APRSIS, but there is an option to define telemetry to be sent # to radio channel by using following sections for each transmitter # that is wanted to send out the telemetry. # # transmitter - callsign referring to # via - optional via-path, only 1 callsign! # source - one or more of callsigns for which # the telemetry transmission is wanted for # # # transmitter $mycall # via TRACE1-1 # source $mycall # # *********** definition(s) follow ********* # # The digipeater definitions tell transmitters that receive # AX.25 packets from possibly multiple sources, and then what # to do on the AX.25 headers of those messages. # # There is one transmitter per digipeater -- and inversely, there # can be at most one digipeater for each transmitter. # # In each digipeater there is at least one , usually same # as the transmitter. You may use same on multiple # s. Using multiple instances of same on # a single does not crash the system, but it can cause # packet duplication in case of non-APRS protocols (like AX.25 CONS) # # Use only at most two levels of viscous-delay in your . # Immediate sending is by "0", and a delayed sending is any value # from 1 to 9. This system does not correctly support other than # immediate sending and one level of delay. # # Note: In order to igate correct when multiple receivers and # transmitters are used on single channel, the # definitions of each radio port must have associated # "igate-group N" parameter which has N of value 1 to 3. # See the aprx-manual.pdf for details. # (Default software compilation allows you to have up to # three channels of APRS operation.) # transmitter $mycall # #ratelimit 60 120 # default: average 60 packets/minute, # # # burst max 120 packets/minute # #srcratelimit 10 20 # Example: by sourcecall: # # average 10 packets/minute, # # burst max 20 packets/minute # source $mycall relay-type directonly # # relay-type digipeated # default mode is "digipeated" viscous-delay 5 # 0 = no viscous delay for RF->RF digipeating # # ratelimit 60 120 # default: average 60 packets/minute, # # # burst max 120 packets/minute # ## filter a/la/lo/la/lo # service area filter # filter DB0PBG, DL0PBS en DB0LER erhuit (locale digipeaters die telemetrie uitzenden) om onnodig dataverkeer te vermijden #filter -b/DB0PBG* #filter -b/DL0PBS* #filter -b/DB0LER* # Forward enkel PE1RXF* (bij wet verboden om als relais voor derden te fungeren) filter b/PE1RXF* # ## filter -b/CALL # always block these # # # Diversity receiver which combines to the primary # # Tx/Rx transmitter. There can be as many of these # # as you can connect on this machine. # # # # source RXPORT-1 # # #relay-type digipeated # default mode is "digipeated" # # viscous-delay 0 # no viscous delay for RF->RF digipeating # # ratelimit 60 120 # default: average 60 packets/minute, # # # burst max 120 packets/minute # ## filter a/la/lo/la/lo # service area filter # ## filter -b/CALL # always block these # # # APRSIS source adds a TX-IGATE behaviour source APRSIS relay-type third-party # Must define this for APRSIS source! via-path WIDE1-1 #default: none msg-path WIDE1-1 #default: none # # viscous-delay 5 # Recommendation: 5 seconds delay to give # # # RF delivery time make itself known. # # ratelimit 60 120 # default: average 60 packets/minute, # # # burst max 120 packets/minute # ## filter a/la/lo/la/lo # service area filter # ## filter -b/CALL # always block these # # # # DPRS source adds a DPRS->APRS RF gate # # interface DPRS # # ratelimit 60 120 # default: average 60 packets/minute, # # # burst max 120 packets/minute # # relay-type third-party # Must define this for DPRS source! # #