javAPRSSrvr IGate is an Android app designed to add APRS IGate functionality to an Android device running Oreo or later operating system.
This app is not designed to be a hands-on app. It is designed to run as a foreground service and supports UI apps such as APRSDroid.
The internal UI app (such as APRSDroid) connects to the server portion of javAPRSSrvr IGate as a local APRS-IS server so no modifications are necessary other than redirecting the client's APRS-IS connection.
javAPRSSrvr is described at APRS-IS javAPRSSrvr. More information on APRS-IS can be found at APRS-IS Web Site
Below is the Settings screen and each entry is described in detail below. Note that all SSIDs must be unique.
- *Callsign: Enter your licensed amateur radio callsign.
- *Passcode: Enter your APRS-IS passcode. javAPRSSrvr IGate requires that you be a licensed amateur radio operator.
If you do not have an APRS-IS passcode, you may email me directly with your Google Play email address, your licensed amateur radio callsign, your full name and mailing address.
- *Server SSID: Enter a one or 2 alphanumeric SSID for the server. This defaults to IG and is used to identify the server to APRS-IS.
- *APRS/DPRS: Switches between APRS mode (KISS TNC) and DPRS mode (D-STAR radio serial port)
- *IGate SSID:
- APRS mode: Enter a number from 1 to 15 or change to blank for zero. The default is 10. This is used to identify the IGate to RF users and to APRS-IS.
- DPRS mode: Enter a letter from A to Z or change to blank for space. This is used to identify the IGate to RF users and to APRS-IS and should be the same SSID as the radio.
- Local Client SSID (0=noSSID): This is the SSID of the local APRS client you are connecting to javAPRSSrvr IGate. If the local client does not have a SSID, enter 0. The default is empty to indicate no local client is attached.
- *IGate Path: This is the path used on RF. Default is WIDE1-1,WIDE2-1. (Disabled in DPRS mode)
- APRS-IS Server: This is the address and port of the upstream server. The following formats are allowed:
- WebSocket (not all APRS-IS servers support this): ws://FQDN[:port]/ or wss://FQDN[:port]/ (wss=secure)
- TCP: FQDN:port
Default is ws://srvr.aprs-is.net:8080/
-
Filter Command: This is used to tell the upstream server what filter to use.
I recommend f/IGATE-SSID/50 where IGATE-SSID is the your callsign and IGate SSID to provide all stations within 50 km of your location. Do NOT use the server SSID as the server never transmits a position; only the IGate transmits a position.
More filter commands can be found at APRS Filter Commands
- *Bluetooth TNC: This is the Bluetooth KISS TNC you will be using. The TNC must already be paired and placed into KISS mode before starting javAPRSSrvr IGate.
* indicates Required.
Available WebSocket servers at ws://srvr.aprs-is.net:8080 and wss://ametx.com:8888 Others are available, check with the individual server sysop.
Button Operation
There are 2 buttons that are very important to the operation of javAPRSSrvr IGate.
- Start
This buttons starts the IGate process.
- Shutdown
This button shuts javAPRSSrvr IGate down completely. This frees up all resources immediately. It does prompt before closing to ensure no accidental touches.
Connecting an UI App to javAPRSSrvr IGate
Because javAPRSSrvr IGate is based on javAPRSSrvr, it provides APRS-IS server ports for localhost attachment. It is limited to localhost to protect you from outside connections.
javAPRSSrvr IGate supports two ports, 10152 which is a full feed of every non-dupe packet that passes through it and 14580 which is a user-defined filter port. As of version 90,
the status port, 14501, is also capable of serving WebSocket and HTTP send-only local clients.
You can configure your UI client to connect to either port. If you wish to connect to port 14580, please see APRS Filter Commands for information on filters you can use.
Android Recommended Settings
Permissions (vary depending on Android version)
- Precise Location (while using the app): Required for IGate posits
- Bluetooth permissions: Required to connect to TNC/D-STAR radio
- Notification: Required to show app is running as a foreground service
- Foreground Service Location and Connected Device: Required for IGate to function while device is used for other apps
- Disable Battery Optimization: Required to prevent TNC/radio and/or network from disconnecting.
Different versions of Android have certain settings which could adversely affect javAPRSSrvrIGate. Specifically, anything that might interfere with it running as a foreground service
would cause it to cease funtioning as an IGate/server. For instance, in Android 13 you can go to Settings, Apps, javAPRSSrvrIGate and set Battery
to Unrestricted and turn off "Remove permissions if app is unused." Version 83 does properly restart the service if the OS kills it due to memory exhaustion and then restarts it. The
restart will fail, however, if Bluetooth or location are not enabled upon restart.
With the release of 4.3.3 v62, Notification permissions is required for Android 13 and higher. This ensures the Foreground Service notification is enabled reminding you that the
service is sending your location to APRS-IS when running. That is the only notification that javAPRSSrvrIGate generates.
Kenwood TH-D74 TNC Setup
The Kenwood TH-D74 must be set to KISS 12 Mode (F-5) and Menu/Interface/KISS (983) must be set to Bluetooth for javAPRSSrvr IGate to talk to it.
Of course, Bluetooth must be On and the radio must be paired to your device.
javAPRSSrvr IGate is GA released at the Google Play Store.
Privacy Policy
javAPRSSrvr does not collect any user data. Application malfunctions/errors are reported to the author. APRS-IS (APRS over the Internet Service) requires all IGates report
their position on a periodic basis. This means your position and any packets gated to APRS-IS will be visible to anyone monitoring APRS-IS worldwide.
javAPRSSrvrIGate generates a position packet and IGate status packet which is transmitted on RF via the Bluetooth TNC and via the Internet to the upstream server.
If you do not wish this information to be sent to APRS-IS, do not use the application.