<-[[.:]] ====== VHF APRS iGate ====== ===== Hardware ===== |Platform|Raspberry Pi| |Software|aprx 2.9.0| |Radio Hardware|FT-1500M| |Frequency|144.800MHz| |Callsign|GM4SLV-2| ===== Software ===== iGate Software : [[https://thelifeofkenneth.com/aprx/|aprx]] or [[https://github.com/ha5di/DIXPRS|Dixprs]] ==== Update May 2025 ==== **dixprs** is no longer maintained, and after re-installing a fresh OS on my igate Pi I couldn't find the details for installing it, as the old google site [[https://sites.google.com/site/dixprs/]] that had the details has disappeared from the internet. === Additional info === The Wayback Machine has some copies of the old google site for dixprs - here's one of them: [[https://web.archive.org/web/20201009100911/https://sites.google.com/site/dixprs/installa]] This might give enough information - but it looks as though it's more trouble than it's worth, when ''aprx'' works perfectly well. ++++ Dixprs installation | Installation Preparation DIXPRS is distributed in form of Python scripts, which can be run on any OS which meets requirements below. There is a precompiled WIN32 executable available also, see WINDOWS section later. It requires Python 2.6.x or 2.7.x installed. It is not compatible with older versions nor Python 3.x Python is usually installed on most modern LINUX systems. If not, check availability with distros package manager. DIXPRS requires SQLite3. Usually it is part of Python installation by default. If not, install with your package manager. For WINDOWS it is available at http://python.org/ DIXPRS also requires pyserial module to handle serial interface. If not installed already and not available in the disribution's repository, download from http://pyserial.sourceforge.net/pyserial.html Finally open a terminal window (or DOS window if installing DIXPRS source on WINDOWS), start Python and try to import sqlite3 and serial modules: As on the picture, no error message displayed. LINUX with AX.25 stack On LINUX DIXPRS can communicate to a KISS TNC directly via a serial interface. However it is adviced to use TNC's and modems via AX.25 stack. It makes other type modems, like USCC card, BAYCOM modem, etc. usable with DIXPRS. It requires an additional Python module installed, developed for DIXPRS, called pyax25. Download pyax25.tar.gz and extract to a temporary folder. Then enter ./compile_ax25.py build ./compile_ax25.py install Note: procedure requires libax25, Python development files and basic development toolchain with GCC installed. Check installation. Open a terminal, start Python and type import _ax25 If everything is OK, only prompt displayed, no error message. DIXPRS installation - LINUX Download dixprs-xxx.tar.gz and extract to a folder - /usr/local/dixprs is a good choice to make installation of 3rd-party packages like munin plugins easier. Customize configuration file config.txt and start program: ./dixprs It is a good practice to run DIXPRS in a screen terminal. In this case you can see what is going on and can disconnect terminal any time without stopping it. If you are not familiar with the screen utility, read this great article http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/ DIXPRS can be run as a daemon using tools like daemonize or daemontools available in repository of most distros. DIXPRS installation - WINDOWS binary Download dixprs-xxx-win32.zip and extract to a folder - C:\dixprs or C:\Program Files\dixprs is a good choice. Customize configuration file config.txt and start program: dixprs.exe Configuration Study supplied sample configuration files and use as a template to make your own. By default DIXPRS is looking for config.txt file. You can specify a different file with a command line argument: dixprs -c or dixprs --config= ++++ ++++ an ax_start.sh with the dixprs screen command | #!/bin/bash logger "AX-Start" logger "kissattach..." sudo /usr/sbin/kissattach /dev/ttyAMA0 1 10.0.0.1 #kissparms -p 1 -f n -l 50 -r 32 -s 320 -t 400 logger "kissattach ok" logger "ifconfig" sudo /sbin/ifconfig ax0 10.0.0.1 netmask 255.255.255.0 sudo /sbin/ifconfig ax0 hw ax25 GM4SLV up logger "ifconfig ok" logger "mheardd" sudo /usr/sbin/mheardd logger "mheard ok" logger "ax25d" sudo /usr/sbin/ax25d logger "ax25d ok" #logger "aprx" #sudo /sbin/aprx #logger "aprx ok" screen -c /etc/screenrc -dmS dixprs /usr/local/dixprs/dixprs.py -c /usr/local/dixprs/config.txt #sleep 10 #screen -S dixprs -x -X screen bash -c 'python /home/gm4slv/selcall.py; exec bash' ++++ The software is still available on github [[https://github.com/ha5di/DIXPRS]] I've gone over to **aprx** which is still //alive// and easily installed. Using Linux AX25 network device ++++ /etc/ax25/axports | # /etc/ax25/axports # # The format of this file is: # # name callsign speed paclen window description # 1 GM4SLV-2 19200 236 2 VHF APRS (1200 bps) ++++ Everything starts by a script, with options commented out as necessary to start whichever software is required. The script (belongs to root) is run at boot time via ++++ root's crontab | # m h dom mon dow command @reboot sleep 30 && /root/ax_start.sh > /dev/null 2>&1 ++++ ++++ ax_start.sh | #!/bin/bash echo "kissattach /dev/ttyAMA0 1 10.0.0.2" /usr/sbin/kissattach /dev/ttyAMA0 1 10.0.0.2 echo -e "Kissattach complete\n\r" echo "ifconf ax0 10.0.0.2 netmask 255.255.255.0" /sbin/ifconfig ax0 10.0.0.2 netmask 255.255.255.0 echo -e "ifconfig 1 complete\n\r" echo "ifconfig ax0 hw ax25 GM4SLV-2 up" /sbin/ifconfig ax0 hw ax25 GM4SLV-2 up echo -e "ifconfig 2 complete\n\r" # starting mheard daemon if [ -x /usr/sbin/mheardd ]; then echo "Starting Mheard Daemon" /usr/sbin/mheardd fi #/usr/sbin/ax25d echo "starting aprx." /usr/sbin/aprx -f /etc/aprx.conf echo -e "aprx start complete \n\r" ++++ ++++ Aprx Config file : | ############################################################# # # mycall GM4SLV-2 myloc lat 6017.31N lon 00125.51W passcode 19626 server rotate.aprs.net 14580 filter "m/150" pidfile /var/run/aprx.pid rflog /var/log/aprx/aprx-rf.log aprxlog /var/log/aprx/aprx.log # #ax25-device $mycall #tx-ok true # ax25-device GM4SLV-2 tx-ok true beaconmode radio cycle-size 20m #beacon interface $mycall dstcall BEACON via WIDE1-1 exec /usr/bin/uptime beacon interface $mycall via WIDE1-1,WIDE2-2 symbol "/-" $myloc comment "Shetland I-Gate" #beacon interface $mycall via WIDE1-1,WIDE2-2 raw ">APRX" beaconmode aprsis cycle-size 30m beacon symbol "/-" $myloc comment "Shetland I-Gate" transmitter $mycall source $mycall filter "-t/t" filter "t/*" source APRSIS relay-type third-party via-path WIDE1-1 msg-path WIDE1-1 filter "-t/t" filter "t/*" regex-filter data ISBeacon ++++ ++++ Dixprs Config File | [GENERAL] # Mandatory parameters # Your callsign with SSID CALLSIGN=GM4SLV-2 # Degrees; West is negative, East is positive LONGITUDE=-1.4251 # Degrees; South is negative, North is posittive LATITUDE=60.2885 # Optional parameters # Station height abvove the see level in meters; no default #ASL= # Owner name and contact; no default OWNER=John GM4SLV # Spool directory to import packets; no default SPOOL=/home/gm4slv/spool # Station symbol; default is S# SYMBOL=/- # UDP port base number; default is 31110 #UDPBASE= # Beacon frequency in minutes; default is 30 #BCNTIME= # Beacon text; %v replaced with actual version string; default is %v # Used as default for ISGW and RADIO BCNTXT= %v # Select km/mi on monitor and in DX list; default is y (km) METRIC=n # Max number of digis passed for local stations # Used as message gating condition for gating to Rf # Default value is 2 #LOCALHOPS= # Range in km within messages gated to Rf # If defined, checked after hop count (local) check # No default #MSGRANGE= ################################################################# # # # IS gateway settings; remove this section to disable GW # # # ################################################################# [ISGW] # Mandatory parameters # Domain name of IS server to connect host=rotate.aprs2.net #host = 192.168.21.101 # Optional parameters # Port number; default is 14580 #PORT=2023 # Filter; default is r/@/150 # @ is replaced with station position FILTER=m/200 ################################################################# # # # WRB server settings; remove this section to disable it # # # ################################################################# [WEBSERVER] # Mandatory parameters # WEB server port, no default port=9999 ################################################################# # # # # Radio port configuration settings; repeat section for # # multiple ports # # # ################################################################# [RADIO] # Mandatory parameters # Interface type INTERFACE=AX25 # Device; as listed by ifconfig; it is nbot the ax.25 port name! DEVICE=ax0 # Optional parameters # Modem speed, default is 1200 #SIGNALRATE=1200 # Enable/disable NWS WX bulletin and object gating from IS to Rf # Disabled by default #GATENWS= # Enable/disable BOM WX bulletin and object gating from IS to Rf # Disabled by default #GATEBOM= # Descripton of port; no default DESCRIPTION=144.800MHz VHF 1200bd # Via used to send locally generated packets; default is WIDE1-1,WIDE2-2 AXVIA=WIDE2-2 # Digipeaters processed with WIDEn-n algorithm; default is WIDE1,WIDE2 WIDEN=WIDE1,WIDE2 # Blacklisted stations; they are not digipeated, not gated; default is NOCALL,N0CALL #BLACKLIST= # PHG string, do not mix with range; no default #PHG=4137/ # Range value in miles, do not mix with PHG; no default #RNG= # Enable/disable transmission; change it to PTTON=1 to enable trasmission; default is no PTTON=1 # Gate locally generated frames to IS gateway; default is no # Useful for rx-only radio ports # Experimental, use carefully #GATELOCAL= # Gate digipeated frames to IS gateway; default is no # Experimental, use carefully #GATEDIGI= # Beacon text; %v replaced with actual version string; default is %v #BCNTXT= # Enable/disable digipeater; default is enabled #DIGIPEATER= # Modem/TNC setup parameters 0...255; no defaults # Use to setup modem/TNC by DIXPRS #TXD= #PPERSIST= #SLOTTIME= #TXTAIL= #DUPLEX= # Below these are the traffic shaping settings for gating messages # From IS to Rf # # For advanced users only; do not change if you do not know how # traffic shaping works and if you do not have good reason !!! # Traffic shaping high treshold, default is 0.75 #TRAFFICHIGH= # Traffic shaping low treshold, default is 0.5 #TRAFFIClow= # Traffic shaping transmission delay, default is 5.0 sec #TRAFFICDELAY= # Comma separated list of addresses to send receveid/transmitted frames # in hostip:port format. No default. UDPCC=192.168.21.107:5050 ++++ ===== Hardware ===== I use a [[https://tnc-x.com/TNCPi.htm|TNC-Pi]] attached via the GPIO serial port connections. Something had to be done to stop the serial port having a Linux Console attached, in the boot configuration, but it's been many years and I can't remember the details. **I've found it** * Edit ''/boot/cmdline.txt'' and remove the phrase ''console=serial0,115200'' * Edit ''/boot/config.txt'' and add the line ''enable_uart=1'' ===== See Also ===== The iGate appears on [[https://aprs.fi/info/a/GM4SLV-2|aprs.fi]] as GM4SLV-2. //[[gm4slv@gm4slv.plus.com|John Pumford-Green]] Wed May 4 10:33:37 2022// Page Updated : ~~LASTMOD~~ {{tag>radio pi aprs linux}}