Have APRS but need an iGate to the APRS network? HSMM-Mesh(tm) to the rescue (again!)
This was built on a USB-modified node, due to the extra capacity in memory and storage. What I did was take my K5KTF-USB with 40GB harddrive and plug in a PL2303-compatible USB to serial adapter cable to the USB hub attached to the node. Then attached the other end to a Kantronics KPC3 (no +) that I picked up at a swap fest a while back, fairly cheap, using a DB9-to-DB25 adapter (KPC3 has a DB25 for its serial connection). ![](/images/stories/K5KTF-USB-KPC3.jpg)
I took an old audio cable that had a 1/8" phone plug on one end and cut the other end off. I then soldered the cut end to a spare DB9-mail connector I had scarfed off an old motherboard (yes, I steal parts off scrap motherboards....). Center conductor to Pin5, shield to Pin 9. That DB9 then plugs onto the DB9-female on the KPC3 for radio-to-TNC input. The phone plug into the EXT SPK jack on the radio. I turned the volume on the radio down until the RCV light on the TNC went out, then bumped it back up a hair till it came on again. Scientific enough :-)
The radio I used is my 1st FT-2800M that it appears the TX PIN diode died (spec'd at 25W, when the full output of the finals is 50W @ 2m? hmmmm). So since it wont TX, I figured it would be good for this use, as its receiver is really good. That is attached to a dual-band 3 section vertical about 10 feet AGL outside. I will probably get it up on the tower or a push-up pole soon. But for now, good enough for testing. ![](/images/stories/FT2800M.jpg)
Next I loaded the APRX v0.9 package compiled for use on OpenWRT/Broadcom/mipsel. Version 0.9 is a receive-only package. It will only take data from a TNC and send it to the APRS network via the internet. I have read that v2.0 is duplex (RX & TX), but at this time have not been able to find a package compiled for OpenWRT/Broadcom/mipsel. I have heard rumor that it may have too many dependencies or some such to be efficient enough for use on a node. Then with a bit of tweaking of the /etc/aprx.conf file (my Callsign, LatLon, the APRS icon of a satellite dish, etc), it was finally showing up on the APRS network, and then soon after started passing traffic (as shown easily when you mouse over local APRS clients/cookies by the line drawn to K5KTF-6) ![](/images/stories/K5KTF-9-6-link.jpg)
EXTREMELY simple to hook up ! The hardest part was getting the format of my LatLon string appropriate so that the APRS servers didnt complain. ![](/images/stories/K5KTF-6-info.jpg)
So to make things easy for anyone wanting to duplicate this, here is my /etc/aprx.conf file, with my stuff edited out and replaced with <CHANGE THIS> tags. There are more items you can play with, which I havent yet, but probably will at some point.
===================================================
# # Sample configuration file for the APRX -- an Rx-only APRS iGate # Chopped out extraneous comments to minimize size.... K5KTF #
mycall <YOUR-CALL-SSID> aprsis-server rotate.aprs.net 14580 #aprsis-heartbeat-timeout 600
# APRS-IS server may support some filter commands. Although this # program does not transmit out to RF, filter rules can be used to # ensure that there is sufficient dataflow from APRS-IS server to # this program that it very likely will not timeout within network # monitoring timeout.. # aprsis-filter "m/100 t/p"
# Additional APRS-IS servers can be entered, by repeating following # three configuration entries as many times as are needed. # #aprsis-server rotate.aprs.net 14580 #aprsis-heartbeat-timeout 120 #aprsis-filter "m/100 t/p"
# AX.25 filters block selected messages matching on selected regular # expressions. The expressions are case sensitive, and AX.25 address # elements are in all uppercase text. There can be unlimited number # of patterns, type fields are four: "source", "destination", "via", # and "data". These patterns can be used in addition to built-in # hard-coded reject rules listed in documentation. # #ax25-reject-filter source "^NOCALL" #ax25-reject-filter destination "^NOCALL" #ax25-reject-filter via "^NOGATE" #ax25-reject-filter data "^\\?"
# ax25-rxport limits reception on listed AX.25 ports (their callsigns), # if system happens to use AX.25 ports also for other purposes than APRS. # If this option is not used, all reception ports are accepted. # Number of port definitions here is unlimited. # #ax25-rxport NoCALL #ax25-rxport N0CALL
pidfile /var/run/aprx.pid rflog /var/log/aprx/rf.log aprxlog /var/log/aprx/aprx.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.5 MB per each interface talking APRS. # Things go BADLY WRONG if this file can not be created or # it is corrupted! # # Built-in default value is: /var/run/aprx.state # #erlangfile /var/run/aprx.state
# erlang-loglevel is config file version of the "-l" option # pushing erlang data to syslog(3). # Valid values are (possibly) following: NONE, LOG_DAEMON, # LOG_FTP, LOG_LPR, LOG_MAIL, LOG_NEWS, LOG_USER, LOG_UUCP, # LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4, # LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7. If the parameter value is # not acceptable, list of accepted values are printed at startup. # #erlang-loglevel NONE
# erlanglog defines a rotatable file into which erlang data # is written in text form. # #erlanglog /var/log/aprx/erlang.log
# erlang-log1min option logs to syslog/file also 1 minute # interval data from the program. (In addition to 10m and 60m.) # #erlang-log1min
##### Adjust the /dev/ to match your serial port on the mesh node ! radio serial /dev/usb/tts/0 9600 8n1 KISS callsign <YOUR-CALL-SSID>
# Additional/alternate options for the "radio" line. # # "initstring" is of two parts, the keyword, and then a string. # initstring "\xC0\xC0\xFF\xC0\r\nMO 0\rKISS $01\r" # # "callsign NAME" sets callsign used in statistics displays, # and when the message is sent to APRS-IS. # If none are given, then it will use physical port name. # # "timeout 900" sets a timeout monitor (in seconds) to make # reopen/reconnect if the (tcp) connection to radio has # failed somehow and nothing is heard. Local serial ports # do not (in general) need this. At APRS silent sites # this may cause repeated reconnects, but it should not # harm either. At busy sites this will handle reconnect # gracefully in case of network failures, and timeout # value can be shortened. # # "KISS" - plain basic KISS mode # "XORSUM" alias "BPQCRC" - KISS with BPQ "CRC" byte # "SMACK" alias "CRC16" - KISS with better CRC # "TNC2" - TNC2 monitor format
# The radio tcp option defines a connection to remote socket # beyond which is a binary transparent connection to a serial # port. The parameter fields: literal IP address (IPv4 or IPv6), # then literal port number, and finally protocol mode. # KISS-protocol parameters are same as with normal serial port. # #radio tcp 12.34.56.78 4001 KISS timeout 900 callsign N0CALL-12 #radio tcp 12.34.56.78 4002 TNC2 timeout 300 callsign N0CALL-11 #
# The netbeacon option. # Parameter string (in quotes) is sent to network (without quotes) # at varying intervals -- 1200-1800 seconds in between restransmits. # This interval is intentionally randomized. # # Multiple netbeacons are evenly distributed for each time period, # or at least 3 seconds apart. First netbeacon is sent to network # 30 seconds after connection to APRS-IS. # # There can be multiple netbeacon options. # The parameter sets can vary: # a) traditional "just a string" (but in quotes) # b) 'for nnn-n raw "string"' # c) 'for nnn-n symbol "R&" lat "ddmm.mmN" lon "dddmm.mmE" [comment "any text"] # The c) form flags on some of possible syntax errors in parameters. # It will also create only "!" type messages. # # Symbol R& is for "Rx-only iGate" # #netbeacon "!3051.90NR09787.89W&aprx over HSMM-Mesh - an Rx-only iGate running on HSMM-Mesh" ## The format for your Lat and Lon are DDMM.MMN and DDDMM.MMW for North America--so if you were 30 deg 50.55min would be 3050.55N and 09934.55W for -099*34.55' (west) ## This will also give you the parabolic dish icon - the / after the N for North and the ` (lower case ~ on your kbd) after W for West.
netbeacon for <YOUR-CALL-SSID> raw "!<YOUR-LATITUDE>N/<YOUR-LONGITUDE>W`APRX-HSMM-Mesh - an Rx-only iGate on an HSMM-Mesh node--APRS over 2.4Ghz!" #netbeacon for <YOUR-CALL-SSID> symbol "R&" lat "3031.13" lon "09752.71" comment "APRX-HSMM-Meshnode-iGate" ===================================================
Oh, yeah.... you might need this: RIGHT CLICK ME AND SAVE-AS to your PC <<the APRX IPK file --kudos to Rusty AE5AE for supplying. I will try and get this on the firmware package section of the server, so it will show up in the package list if you refresh to install directly.
|