APRS nader bekeken

aprs

APRSAPRS nader bekeken

Onder die titel heb ik in den lande een reeks lezingen gegeven om mede amateurs in te wijden in de geheimen van APRS. Met de ervaringen van de laatste dagen is het onderwerp ineens weer actueel geworden. Naar aanleiding van een aantal vragen zal ik hier nog eens beknopt uit de doeken doen hoe een en ander in zijn werk gaat.

 

Zoals de meesten van jullie wel zullen weten is APRS de afkorting van Automatic Position Reporting System. Het is een real-time informatievoorziening: als er iets wijzigt, zie je het meteen. Oorspronkelijk was het bedoeld voor een beperkt geografisch gebied, bijvoorbeeld een rampgebied waarin support units konden worden weergegeven (Objects). Houd hierbij steeds in het achterhoofd dat het in Amerika ontwikkeld is waar men veel meer op draadloze communicatie leunt – zeker bij rampen, waar ze daar in grossieren – dan bij ons.

APRS is gebaseerd op het Packet Radio protocol. Het grote voordeel is dat geen kennis van de topologie van het netwerk noodzakelijk is. Anders dan bij Packet, waar je je gateways moet kennen, is dat bij APRS dus niet zo. Om dit te kunnen realiseren maakt APRS gebruik van de AX.25 UI-frames. Vrij vertaald: AX.25 is de amateur versie van het X.25 protocol (vandaar AX.25), en daar gebruikt men de Unnumbered Information frames van. Zeg maar een soort broadcast: je stuurt het de ether in zonder te weten of en door wie het ontvangen is. Er is dus geen adressering: iedereen mag het opvangen. Dat kan op twee manieren: de ALOHA manier of de CSMA methode. ALOHA was de oude manier waarop ook de eerste ethernetten werkten. Je had geen benul van wat er op je communicatie kanaal gebeurde: als je wat te zeggen had dan boerde je je zegje de kabel op, of in dit geval de ether in. Bij een weinig gebruikt informatiekanaal gaat dat meestal goed. Maar naarmate het informatiekanaal intensiever gebruikt wordt, wordt de kans op een "collision", een botsing tussen twee zenders dus, steeds groter. De informatie gaat dan verloren en beide zenders moeten het bericht herhalen. Of, in geval van APRS, gaat het gewoon verloren.

De meer intelligente methode is dan ook CSMA. Carrier Sense Multiple Access. Ofwel: we zijn ons nu wél bewust van wat er op het informatiekanaal gebeurt: we luisteren (sense) naar de draaggolf (carrier). Is de draaggolf weg, dan is het informatiekanaal vrij en kan je zelf zenden. Maar omdat, als iedereen aan het wachten was, je natuurlijk weer een collision (botsing) krijgt als na het stoppen van de zender iedereen tegelijk gaat zenden, wordt er na het stilvallen van het informatiekanaal een random tijd gewacht tot de zender in de lucht komt. Multiple access: meerdere gebruikers op hetzelfde informatiekanaal. De meeste transceivers werken nu zo: luisteren of er gezonden wordt en als dat zo is, wachten op het verdwijnen van de draaggolf, vervolgens een random tijd wachten en als het dan nog steeds stil is, mag je zenden. Dan kan het nog steeds wel mis gaan, maar de kans is aanzienlijk verkleind.

Voor het bepalen van de positie wordt gebruik gemaakt van een GPS. De positie informatie wordt dan via Digitale Repeaters, de zogenaamde Digipeaters, verspreid. Deze positie informatie kan dan weer zichtbaar gemaakt worden op kaarten. APRS wordt echter niet alleen maar gebruikt om een positie weer te geven. APRS wordt ingezet bij speciale gebeurtenissen, noodtoestanden (vooral weer in Amerika), het geven van weersinformatie, "tracken" (volgen) van stations maar ook voor het versturen van korte berichten. Het is dus meer dan alleen maar een positie rapportage systeem.

Nu het belangrijkste: Binnen APRS bestaat een hierarchie. Sommige stations zijn belangrijker dan anderen. Deze hierarchie bestaat uit drie lagen: De Digipeater stations, de Relay stations en de Mobiele/portable stations. Hoe dit verder werkt zullen we zo zien. Maar eerst even iets over de gebruikte frequenties. Iedereen kent natuurlijk de 2m frequentie 144.800. In de tijd dat de D-amateurs in dat stuk 2 meter nog geen digitale uitzendingen mochten doen, is de frequentie 430.5125 ook in gebruik genomen voor APRS. In vrijwel heel Europa is 144.800 standaard. Daarnaast wordt er nog gebruik gemaakt (alweer in Amerika) van 10.151MHz in LSB met 300 Baud en van 29.250MHz met de gebruikelijke 1200 Baud. Er zijn stations die packets tussen deze banden uitwisselen, de zogenaamde Gateways. Wat op 70cm gebeurt wordt ook op 2m uitgezonden en vice versa. Er zijn dus wel koppelingen tussen de twee netten.

Aan de roepnaam zie je vaak nog een nummer geplakt met een streepje ertussen. Dat noemt men de SSID: de Secondary Station IDentifier. Het geeft aan wat voor soort station je bent. De Nederlandse afspraken zijn als volgt:

  • Geen toevoeging: een basisstation of relay digi. (Als ik mijn QTH op de kaart zet, doe ik dat door als symbool een huisje te kiezen. Ik zet dan alleen mijn call neer. Ben ik een relay, dan gebruik ik als symbool een ster met een R erin, maar nog steeds geen toevoeging)
  • -1: 70cm digi
  • -2: 2m digi
  • -5: maritiem mobiel
  • -7: portable station (portofoon)
  • -9: auto (mobiel)

Weer even terug naar de hierarchie. Hoe is APRS opgebouwd: Op hoge, centraal gelegen locaties stelt men een Digipeater op. De afstand tussen twee Digipeaters moet minimaal 50km bedragen. Waarom zal ik zo beschrijven. Dat betekent dat er in Nederland maar plaats is voor een stuk of 8 digipeaters! Daarnaast kan een basisstation een Relay zijn. Deze herhaalt dan weer de packets van mobiele stations als deze in de buurt zijn. Hoe je gerelayeerd wordt, hangt af van wat je in je unproto path hebt staan. Dat is een instelling in je APRS software. Je unproto path begint altijd met AP, bijvoorbeeld APT311, APK101. In veel software is dat al voor je opgelost. Daarna kan je instelling generiek of specifiek zijn. Generiek is bijvoorbeeld RELAY, of WIDE3-3. Specifiek is een call van een specifieke digi. Ik kom daar zo nog even op terug.

Vervolgens na de AP komt dan de configuratie van wat je met je signaal wilt bereiken. Er waren historisch een aantal mogelijkheden:

  • WIDE
  • TRACE
  • WIDEn-n waarbij n maximaal 7 is
  • TRACE-n-n waarbij n maximaal 7 is
  • RELAY
  • WIDE1-1

Om een paar dingen maar gelijk duidelijk te maken: WIDE en TRACE worden zonder toevoeging niet meer gebruikt. Dat stamt nog uit de tijd van de domme digipeaters. Je ziet het nog in oude aanbevelingen: WIDE,WIDE3-3 bijvoorbeeld. NIET doen. Gaat ook niet meer werken.

Wat betekenen die toevoegingen aan WIDE en TRACE? Nou, het volgende: als je WIDE3-3 in je Unproto Path zet, dan zal elke digipeater waar jouw pakketje langskomt, het laatste getal aftellen totdat 0 bereikt is. Dus na de eerste digipeater is je pakketje WIDE3-2 geworden, dan WIDE3-1 en tenslotte WIDE3. En dan stopt het herhalen. Heb je 3 hops gehad, dan heeft je pakketje dus ongeveer 150km afgelegd. Meer dan genoeg om een internet gateway te bereiken. Het heeft dus totaal geen zin om WIDE7-7 in je Unproto Path te zetten. Waarom moeten ze in Oost-Duitsland en midden Frankrijk weten waar jij rijdt? Niet doen dus. 3-3 is meestal meer dan genoeg.

Dan hebben we nog TRACEn-n. Dat is eigenlijk een speciale uitvoering van de WIDEn-n: bij gebruik van een TRACE wordt bij elke digipeater waar je pakketje langskomt, de call van de desbetreffende digipeater aan het pakket toegevoegd. Voorbeeld:

PA3CNO->APT311,WIDE1-1,TRACE3-3
PA3CNO->APT311,PD0PYL*,TRACE3-3
PA3CNO->APT311,PD0PYL*,PA5JB*,TRACE3-2
PA3CNO->APT311,PD0PYL*,PA5JB*,PI1FLD*,TRACE3-1
PA3CNO->APT311,PD0PYL*,PA5JB*,PI1FLD*,PA2CQP*

Wat je nu ziet gebeuren is dat het packet steeds langer wordt! Het gevolg daarvan is, dat ook de zender steeds langer in de lucht moet zijn om al deze informatie uit te zenden. TRACEn-n moet je dus alleen gebruiken om te testen, maar absoluut niet in een operationele situatie! Je verstopt het hele informatiekanaal ermee. Nog een nieuwtje: een packet wordt maximaal 7x gerelayeerd. Het is dus totaal zinloos om Unproto Paths als "WIDE7-7,TRACE7-7" in te stellen. En dat komt echt voor… Fout (NOOIT een TRACE in een operationele opstelling, en 14 hops gaat het niet worden) en zinloos: waarom zou je 700km ver zichtbaar willen zijn…

Heb je een basisstation, dan zou je kunnen besluiten om je pad specifiek te maken. Wat betekent dat: in plaats van gelijk met een WIDE te beginnen, zet ik er bijvoorbeeld een call in. Ik zit midden tussen PE1PYT in Delft en PA5JB in Leiderdorp. Als ik WIDE3-3 in mijn basisstation zet, is de kans dat beide stations mij ontvangen erg groot. Omdat beiden digipeaters zijn, zullen ze beiden mijn packet relayeren. Met een mogelijke collision tot gevolg. Dus wat maak ik van mijn Unproto Path:

PA3CNO->APT311,PA5JB,WIDE3-3

Doordat ik als eerste de call van PA5JB erin heb staan, zal alleen hij mijn packet relayeren, waarna het verder gaat als WIDE3-3. PE1PYT reageert immers niet op PA5JB in het path. Zo kan ik mijn packet dus een bepaalde kant op sturen.

Nu wat instellingen voor de vaste stations. In de UIVIEW software zit een veld dat "alias" heet. Daar specificeer je waar je eigen station naar luistert. Ben je een gewoon basisstation, dan is je alias tenminste je eigen call. Daarnaast zet je erbij wat je verder nog relayeert. En daar is nu in de regio wat verwarring over ontstaan. Vroeger zette een mobiel station allereerst RELAY in zijn Unproto Path. Een basisstation had in zijn alias zijn eigen call en RELAY staan. Hoort een basisstation dan een mobiel station, dan zal hij die relayeren. Een Digipeater had zijn eigen call, RELAY en WIDE in zijn alias staan. Maar daar is de laatste jaren discussie over ontstaan. Een mobiel station dat door een Digipeater ontvangen werd, werd door de RELAY in de alias van de digipeater dus herhaald. Het RELAY werd gestript en de rest van het packet ging door. In mijn geval bleef dan WIDE3-3 over. De eerstvolgende digipeater in zicht van deze digipeater reageert op de WIDE3-3 en maakt daar netjes WIDE3-2 van. Maar dat packet komt ook weer terug op de digipeater die als eerste mijn RELAY ontving. Maar omdat de RELAY niet in zijn downcounter staat, herhaalt hij het packet weer! Dat gaf aanleiding tot nogal wat problemen. Daarom is er al langer een voorstel om RELAY te vervangen door WIDE1-1. Ik schreef daar al over in november 2006. Maar toen werd er nogal lacherig over gedaan… In dat artikel staat waarom RELAY vervangen moet worden door WIDE1-1. Iets wat kennelijk PE1LNO in Leiden in zijn alias heeft staan, en Jan PD0HNI ook. Het vervelende is dat nog niet iedereen dat heeft. Volgens onze kapiteins is het in Friesland nog ouderwets RELAY wat de klok slaat. Ik heb vandaag mijn Unproto Path veranderd in WIDE1-1,WIDE3-3 en het is nog nooit zo goed gegaan.

Wil je bijdragen aan het APRS netwerk, zet dan een basisstation in de lucht en zet in de alias je eigen call en WIDE1-1. Benoem jezelf nooit tot digipeater zonder overleg met je "buren". Het enige wat je bereikt is dat je alle verkeer in de regio dan zelf gaat herhalen, waarmee je de effectief te overbruggen afstand voor je mede-amateurs verkleint in plaats van vergroot! Jouw digipeater zal immers netjes 1 aftrekken van het packet, en daarmee sterft het eerder uit op zijn weg. Bovendien veroorzaak je collisions omdat je in het zicht van twee digi's packets gaat zitten herhalen die de digi's zelf ook al opnieuw uitzenden. Niet doen dus. Met een Relay digi help je mobiele amateurs wél zonder problemen met digi's te veroorzaken.

Resumerend: Instellingen voor je Unproto Path:

  • Mobiel: WIDE1-1,WIDE3-3
  • Basis: WIDE3-3

Een Digipeater bepaalt het herhalen van een packet op basis van hoeveel er al afgeteld is. Dan nog instellingen voor je alias:

  • Mobiel: <CALL>
  • Basis: <CALL>,WIDE1-1
  • Digipeater: <CALL>,WIDE

Waarbij <CALL> je eigen call is, zonder de haken er omheen. Wellicht dat basisstations voorlopig zowel WIDE1-1 als RELAY nog in de alias kunnen zetten. Het helpt degenen met een oude instelling. Het beste is natuurlijk om landelijk op WIDE1-1 over te stappen. Veel plezier met APRS en heb je nog vragen: pa3cnopi4raz.nl">Mail me!