APRStt-V.TXT APRS Touch-Tone SPEC for Voice Systems 12 May 2008 ------------------------------------------------------------------------- WB4APR Revised 10 May 2008 for still simpler implementations at all repeaters REVISED 22 Sept 2005 for simpler implementation Original 08 Nov 2002 last updated for oroginal APRSdos implementation This major revision (simplification) of the APRStt spec has been made to clarify the simplest DTMF-to-APRS protocols for some very simple entry level applications. Just implementing the CALLSIGN format in Voice Repeater Controllers, Echolink and IRLP nodes or other DTMF listening devices on Ham radio can revolutionize ham radio connectivity. APRStt is a local Touchtone/Voice gateway from Voice systems (channels) with DTMF to the APRS channel. It allows anyone with a DTMF radio or HT to send his pre-stored DTMF memory with his callsign with the press of a single button. Any APRStt compatible voice repeater or Echolink or IRLP system or other APRStt device will convert that DTMF burst into an APRS packet and send it into the Global APRS network. This accomplishes the following: 1) Identifies the station by call, and date and time 2) Plots the station on the global APRS map near that repeater 3) The packet shows the FREQUENCY and TONE he is using 4) The packet can contain other info such as Echolink or IRLP node # APRStt was first demonstrated at Dayton 2002 and voice was added by RAC 2002 in Vernon B.C. That first system used a hardware DTMF chip, but today, an APRStt node can be implemented in just about anything including full software-only applications on a PC. APRStt DESCRIPTION: The full APRStt system is a complete two way system that enters APRS data using DTMF and lets the user receive APRS information by synthesized voice response. The purpose of this document, however is to document only the simplest CALLSIGN format that can by itself revolutionize ham radio connectivity. The abbreviated short format definintions of APRStt combined with the TTone memories built-in to most radios allows for nominal APRS operations with only a few key strokes. The following is the outline of the full APRStt spec. But only those sections MARKED(*) here are covered in this simplified document: * APRStt Introduction APRStt Description * APRStt KeyPad: Precursor Keys, Editing Keys APRStt Hashing, Responses, Nomenclature, etc * APRStt Callsigns CALLSIGN Format Variations Position Format Variations Message Format Variations Query Formats Special Data Example Icons Retries SPECIAL TRACKING APRS Tips for Special Events APRS Software Concepts APRStt DTMF Interface Schematic APRStt KeyPad: -------------- All APRStt formats are based on the universal DTMF pad to ALPHA format being used by radio operators and cell phones everywhere. The keys, 0-9, *,#, and A,B,C,D are used for all entries. +------------------+ This figure shows the standard Touch Tone Key pad | 1 2 3 A | with its standard Alphabetic alternate definitions. | QZ ABC DEF --> | These definitions match those on the Kenwood also | 4 5 6 B | used for APRS message entry. For Alphabetic text |GHI JKL MNO <-- | entry, the letter A would be one press of the "2" | 7 8 9 C | key, B would be "22" and C would be "222". To enter |PRS TUV WXY del | the digit "2" within text, it would be "2222". If | * 0 # D | two adjacent letters use the same key, then press | space OK! | the "A" key between them. The # key does all +------------------+ punctuation in the order ?!'.,-/ etc PRECURSOR "#" KEY: Since APRStt may share a radio channel with other DTMF functions (such as repeaters) and VOIP systems, APRStt has to have a leading key that these other systems will ignore. In most repeater controllers, this is the # key. Thus, we can use # as the start of all APRStt sequences to force the normal repeater to ignore the remainder of the APRStt sequence. EDITING KEYS: Although APRStt uses the four A, B, C and D keys as special format identifiers and editing keys, only the A and D key are relevant to this simplified callsign-only spec. A - As a leading digit, it signifies the start of a callsign. Within a string, it is a digit separator when sequential letters share the same key. B - As a leading digit indicates a manal posit format It is a backspace character if entered within a string on air C - As a leading digit, it indicates a message. Otherwise it is a CANCEL or ABORT for the whole APRStt string D - Is the OK, or ENTER key. APRStt FORMATS: Just like in APRS, there are only four basic formats, Call, Position, Message and Query. The sender's call is included in the CALL format to identify the sending station for either a position or a message. The position format can be used for not only station position, but also for objects. Messages can be between APRS stations or Email. Queries ask APRStt for information about other users. Each of these four entry formats begin with one of the four special DTMF keys "A","B", or "C" and they all end with a "D". CALLSIGN FORMAT: Only the simplest CALLSIGN format is included here, because that is all we need to basically get a station live into the APRS system. The repeater he comes through will generate the position, the frequency and tone and other local information. The simplest CALLSIGN format is simply: ##AxxxxxxxxxxxKD Where: # causes most repeater controllers to ignore the string A signifies it is a callsign. Xxxxx is the callsign in DTMF K is the checksum digit D is the end When translated to the APRS network, an SSID of -12 is used to clearly identify this station as a DTMF APRStt user only. If the user wants to force and SSID of 0 and has no other -0 callsigns on the air, then he can end his call string with the "0" key. VOIP or REPEATER CONTROLLER RESPONSES: Preferably on receip of a valid callsign DTMF string, the repeater or APRStt engine will respond with the callsign in CW or in voice. In voice, it should say: "Welcome XXXXXX". Here is how my WB4APR callsign looks in DTMF: #A9220427A770D The leading # causes repeater controller to ignore any other cmds The leading A key indicates it is an APRS Callsign 9 decodes as W 22 decodes as B 04 decodes as 4 (always include 0 infront of the digit) 2 decodes as A 7 decodes as P A preps the decoder to receive another 7 key 77 decodes as R 0 Is the checksum (9+22+4+2+7+77=40 ) D signals the end of the burst DTMF users only have to key this into their radios once and save it in a DTMF memory for simple identification when the user wants to report his presence. On receipt of an CALLSIGN-ONLY packet, the repeater will then generate a packet for either its serial port for an attached TNC to transmit on the APRS channel, or via TELNET into the global APRS system if the internet is available. The packet will look like this: WB4APR-15>APRStt,WIDE1-1:!DDMM.~~NdDDDMM.~~W$FFF.FFFMHz Tnnn Rxxm ... Where WB4APR is the DTMF callsign Where -15 is the default SSID for DTMF users Where APRStt is the APRS version identifier Where WIDE1-1 is the local 1 hop APRS path Where DDMM.~~ is the latitude of the repeater with 1mi ambiguity Where d is the default overlay char for the DTMF symbol Where DDDMM.~~ is the longitude with 1 mile ambiguity Where FFF.FFF is the repeater frequency in MHz Where Tnnn Rxxm is the tone and range in miles. This puts you on the worldwide APRS "map" as being in the area of this repeater or VOIP system and it also shows everyone what frequency and tone to use to contact you and it can also include any Echolink or IRLP node number, or even a reverse path phone number! See how these objects show up on an APRS map in the lower right area of this map: http://www.ew.usna.edu/~bruninga/aprs/aprstt-105.GIF APRStt SYMBOLS: There are two types of symbols in the APRStt system. One is the symbol used by the APRStt device or repeater itself. This is a green TT symbol. The users will all get a DTMF symbol but they can optionally select an overlay character. The following are common overlays. A 2 = Auto J 5 = Jeep B 22 = Boat M 6 = Mobile C 222 = Car P 7 = Portable E 33 = Echolink S 777 = Sailboat F 333 = Fixed T 8 = truck H 44 = House W 9 = WalkieTalkie I 444 = IRLP To indicate an overlay on your DTMF symbol, just add a *nnn at the end of your callsign field. Otherwise a default "D" overlay will be assigned. POSITION COMMENTS: Just like the position comments in the APRS radios, these same pre-defined comments can be originated by any APRStt DTMF user too. After sending his callsign, he can simply send the * indicating a SYMBOL is to follow and anadditional *n digits shown below. These are remembered by simply the abbreviations shown below: 0 Off duty 3 Returning 6 Priority 9 Custom 2 1 Enroute 4 Committed 7 EMERGENCY 2 In Service 5 Special 8 Custom 1 POSITION TEXT: Optionally you can add several letters of alphanumeric text on the end of your report as well. This free-text field is precceded with a "C" key and then the normal string of digits spelling out an alphanumeric string are used. For example: ...C4338063302803333D Would spell out to be "GET ME AT 3" and be captured on the global APRS system and available to mom or data via either RF or on the FINDU.COM or other APRS systems. POSITION FORMATS: These formats begin with the "B" key and allow precise position reporting in the vicinity of the local APRStt repeater if needed for special events. But they are beyond the scope of this simple CALLSIGN document. Please refer to the full APRStt spec. MESSAGE FORMATS: Messages all begin with the "C" key. But again are beyond the scope of this simple CALLSIGN-Only document. But to see the power of using DTMF messages from an HT at some special events, please see: http://www.ew.usna.edu/~bruninga/aprsevent.html QUERIES TO APRSTT: This is how the APRStt user can ask for APRS information from the APRStt engine. Responses from sophisticated APRStt implementations respond by voice. But simpler systems might only respond in CW which will be painful for most users and so this is best left for the scope of the full document. NEAREST POSITION QUERIES: Responds with the nearest XX type of APRS object in your vicinity. Beyond the scope... POSITION RELATIVE QUERIES: Responds with the nearest XX type of APRS object near a "target" object. You can change the target. But again, this is Beyond the scope... ICONS: APRStt can define any of the thousands of APRS symbols for the APRStt user. AN example might be to place a NET object on the map while a NET is in progress on a repeater. But again, this is beyond the scope of this simplified document. SPECIAL EMAIL FORMATS: Clearly you can send an Email by DTMF just like you send it form a D7 HT. But this is Beyond the scope... RETRIES: Once an APRStt engine converts from DTMF to APRS, it needs to send the resulting packet a few times to make sure it is not lost in a collision. This is simply done by sending the packet once, then again, 16 seconds later, and again 32 seconds later, then a minute later, and then 2 minutes later. SETTING UP AN APRSTT GATEWAY REPEATER OR DEVICE ----------------------------------------------- Since the only thing that comes in on DTMF is the callsign in this simple example, and what has to go out is a full APRS packet, the APRStt gateway device has to insert several items into the packet. So these items have to be configurable by the APRStt sysop: GATEWAY Data: *FREQUENCY (the frequency it is listening on) *CTCSS Tone (if any) *USER POSIT (the centroid of desired user positions) *AMBIGUITY (usually 1 mile. but 0.1 mile may be better at events *USER SYMBOL (the User's symbol on the map. See section below) *PATH (usually via WIDE1-1) *USER TEXT (any additional text on the end of the packets When a user DTMF identifier is heard, the APRStt will then decode the DTMF callsign and then use the above fixed data to build the resulting user packet and transmit it onto APRS. The packets header would look like this: CALLSIGN-15>APRStt,WIDE1-1 The packet data would look like this: :!DDMM.~~N/DDDMM.~~WtFFF.FFFMHz Tnnn Rxxm user text... AMBIGUITY: Such ambiguous positions are supposed to be plotted on the map in the vicinity of the indicated position, but randomized so that multiple such ambiguous users can all be seen and not plotted on top of each other. We will have to see how many of the various clients made these plots correctly. If not, we may have to have the APRStt gateway randomize the posit itself. Actually, this might be a good idea, since they could then be randomized vertically to make a nice list around the APRStt location. APRStt or DTMF USER SYMBOLS: I have proposed a revision to the APRS symbol spec that would free up a number of APRS symbol blocks. If we free up the Drizzle symbol, then we can use the #D symbol with up to 36 overlays to represent users gated to APRS via APRStt. The following APRS symbol representations would correspond to the examples above: AD = Automobile DTMF user BD = Boat DTMF user CD = Car DTMF user FD = Fixed DTMF user HD = House DTMF user ED = Echolink DTMF report ID = IRLP DTMF report JD = Jeep DTMF user RD = Repeater DTMF report etc APRStt PRESENCE ON APRS MAPS: In addition, the APRStt device also has to generate its own APRS position packet so that it also shows on the map. So these items also have to be configurable by the APRStt sysop: *APRStt actual location LAT/LONG *APRStt symbol (used in its own ID packet) *APRStt text...(included in its own ID packet) *APRStt Range (estimated useable range) These paramaters are used by the APRStt device to send out a local packet to place it on the map. This packet goes out once every 10 minutes DIRECT or LOCAL when it is not in use so that travelers can see it on their maps when they are in range, but when a local DTMF user identifies through this gateway, then this packet goes out an additional hop. The format of this APRStt's packet is the same one as used for FREQUENCY objects being promoted under the APRS local info initiative. Please see the web page: http://www.ew.usna.edu/~bruninga/localinfo.html The packet header would look like this: SYSOP>APRStt,WIDE1-1 The packet data would look like this: :;FFF.FFFtt*111111zDDMM.~~N/DDDMM.~~WrTnnn Rxxm text... This packet assures that APRS users can see not only the APRStt users on their maps, but also the location of the APRStt device that is gateing them. MILE-MARK POSITION REPORTING: This evolves from the Mile Mark position plotting built into APRSdos (and now UIview) that allows anyone to locate a mile mark on the map. In APRStt, the entry BMMRD#nn will place a station on the map in the vicinity of mile mark nn on road RD. FOr further detail, see the spec. Since APRStt is a local program, it only needs entries for roads within RF range of APRStt. In most cases, this is less than a half-dozen lines of data. de WB4APR, Bob