APRS repeater PIC18F26K22-vel

Előszó:

Az internet mindent elsöprő előretörésével azt hittük, hogy a packet rádiónak leáldozott a csillaga. Bob Bruninga - WB4APR szerencsére ezt másképpen látta, és a 80-as évek végén kidolgozta az APRS protokollt, aminek jelentése Automatic Position Reporting System. A protokoll neve azt sugalja, hogy ez a rendszer csak helyzetünk megadására szolgál. Valójában azonban ettől ez sokkal összetettebb és sokkal sokoldalúbb. Ennek a protokollnak a segítségével a helyzetünk megadásán túl küldhetünk meteorológiai információkat, telemetria adatokat, személyes üzeneteket, de ezen felül segítséget nyújthat katasztrófa elhárítás, segélynyújtás és egyeb hasznos tevékenységek esetén. Az egész rendszer alapjául az AX.25 packet rádió protokoll szolgál. Ebben az esetben csak az UI keretek használatosak. Az APRS nem egy hálózat. Itt nem kell utakat kiépíteni. És mivel csak UI keretek vannak használva, nem is kell fölkapcsolódani semmilyen hálózatra. Elég elküldeni az információnkat, és ha egy digitális átjátszó elérhetőségi körzetében vagyunk, akkor a rendszer a csomagunk vétele után az összes többi feladatot elvégzi. Az egész rendszer 3 fő részre bontható:
1. Felhasználók berendezései - tracker, meteorológiai állomás, telemetriai mérő állomás, stb.
2. digitális átjátszók, amelyek az elsődleges adatokat veszik, és szükség esetén továbbítják a rendszerben
3. internet kapuk, amelyek átmenetet kápeznek a rádióamatőr rendszer és az intenet között, lehetővé téve hogy az információ eljusson küldetési helyére. Legtöbb esetben valamilyen honlapra, amely aztán az információkat értelmezhető formában a térképen megjeleníti.
Mivel az APRS rendszer számára Európában egységesen a 144,800 MHz -es frekvencia van kijelölve, nem kell a frekvencia koordinálással sem bajlódni (térkép).



Hardware:

A PIC16F876A-val készült digipeater kapcsán több visszajelzést is kaptam azzal kapcsolatban hogy a vétel csak nagyon jó minőségű, tiszta jel mellett megfelelő. Mindenki visszasirta a jó öreg TCM3105-öt. Úgy döntöttem, hogy adok még egy esélyt ennek a modem IC-nek, ezért terveztem egy teljesen új digipeatert. Mivel a hangfrekvenciás jel dekódolását a modem IC végzi, nem volt fontos a pontos időzités, ezért megengedtem magamnak azt a luxust, hogy nem assemblerben irtam a programot. Ennek a kényelem mellett nagy előnye, hogy nem volt gond új funkciókat beleimplementálni, viszont hátránya hogy igy már nem fért bele a 16F876A-ba (a 18F26K22-be is csak éppenhogy). Azért választottam a  PIC18F26K22-t mert a 28 lábú processzorok közül ennek van a legnagyobb memóriája, és az ára is elfogadható. Mivel a mai mikroprocesszorok sok mindent tartalmaznak, az egész berendezés összesen 3 IC-t (plusz stabilizátor), 2 kristályt, 5 csatlakozót és néhány apró alkatrészt (ellenállás, kondenzátor, dióda) tartalmaz. A stabilizátor IC talán egy kicsit luxus ide, de annyit tudni kell, hogy 1A áramig képes stabilizálni és nem kell hűteni. Az én dobozomba nem fért be hűtő, azért választottam ezt az áramkört. Akinek van hely, az tehet analóg stabilizátort is, de ha GPS vevő is csatlakoztatva van akkor már egy termetes hűtőbordára lesz szükség (ami már egy esetleges telepes üzemnek sem tesz jót). Mivel a 28 lábú IC csak a memória mérete miatt lett választva, maradt jónéhány bemenete amin keresztül egyes paramétereit meg lehet változtatni. Az egyes JUMPERok funkciói:
    P1   - tápfeszültség a GPS vevő részére
    P2   -
Tracker üzemmód
    P3   - Impulzus számláló bemenete 0-5V
    P4   - KISS üzemmód - pillanatnyilag nem működik
    P5   - MIC-E be/ki                    BIT0 -telemetria
    P6   - HOLD TIME ki/be     
    BIT1 -telemetria
    P7   - EN ROUTE                    BIT2 -telemetria
    P8   - IN SERVICE                  BIT3 -telemetria
    P9   - telemetria mód - tracker üzemmódban bekapcsolja a magasság adását is
    P10 - PTT a mikrofon bemeneten keresztül (kézi rádiók)
    P11 -
bemenet alacsony impedanciás (kézi rádiók)
    P12 - analóg bemenetek
    P13 - hőmérő (DS1820, DS18S20,DS18B20)
Hogy a programnak legyen elég ideje mindenre, be van kapcsolva a processzorban a belső PLL, igy a 10 MHz-es kristály valójában 40 MHz-es órajelet jelent.

Software:

A software több fő funkciós egységből tevődik össze:

    Parancs-értelmező A program alapvető része, ezen a modulon keresztül tudunk komunikálni magával a programmal. Ez a modul értelmezi a begépelt szöveget, és a tartalmának megfelelően elvégzi a kiadott parancsot.

    A rádión jövő adatok vétele. Ez a modul veszi a bejövő jeleket, kezeli az NRZI kódolást, és a beszúrt biteket. A megtisztitott ASCII karaktereket elhelyezi egy átmeneti tárolóba. A programnak ezen a részén múlik a siker. Ha a vett jelek jól vannak feldolgozva, a többi az már csak játék az adatokkal.

    Monitor - ennek a modulnak a feladata, hogy megjelenitse azt, ami a csatornán
történik. Hat lehetséges módban működhet:
ALL - mindent kiküld a soros portra
RCV - csak a vett adatokat küldi a soros portra
XMIT - csak az adásra kerülő adatokat küldi a soros portra
OFF - semmit sem küld
GON - (GATEWAY ON) bekapcsolása eseten a soros portra a beérkezett vagy elküldött csomag nyers formátuma kerül. Ha egy NULLMODEM kábellal összekötünk két TNC-t, és az egyiken
a KISS a másikon pedig ezt az üzemmódot aktiváljuk, akkor egy GATEWAY-t kapunk. Ezzel átjárót biztosithatunk két csatorna, vagy két sáv között.
GOF - a GATEWAY üzemmód kikapcsolása

    Trace - a csatornán folyó forgalom nyers megjelenitése - a vett adatokat hexadecimális formában küldi a soros portra. Ennek három lehetseges változata van:
RCV - csak a vett adatok
XMIT - csak az adásra kerülő adatok - ilyenkor nem kapcsol adásra, csak kiküldi a soros porton keresztül azt a szöveget, amit egyébként adásra küldene
OFF - alapbeállitás - normális üzem

    Beacon - ez a programrész adja hirül a világnak, hogy a berendezés be van kapcsolva. Két fajta üzenetet lehet beállitani a BTEXT 1 az az üzenet, amit a digipeater a beállitott időközönként elküld. Ha beállitunk egy BTEXT 2 üzenetet is, akkor a TAIL paranccsal megadott alkalommal ezt a második szöveget küldi. Pl.:
Ha a TAIL 5 akkor
    !4815.91N/01949.21Ey BCDIGI v.4.3 Qth Filakovo                                                                                                                              BTEXT 1
    !4815.91N/01949.21Ey BCDIGI v.4.3 Qth Filakovo
    !4815.91N/01949.21Ey BCDIGI v.4.3 Qth Filakovo
    !4815.91N/01949.21Ey BCDIGI v.4.3 Qth Filakovo
 
  !4815.91N/01949.21EyPHG32304/A=000577 BCDIGI v.2.2  APRS Repeater with PIC18F26K22 - http://www.om3bc.com              BTEXT 2
A BTEXT 1 gyakoriságát a BEACON EVERY n, a BTEXT 2 ismétlődését a TAIL EVERY n paranccsal határozhatjuk meg. Az első esetben az n az időt jelenti percekben, értéke 0 és 99 között változhat, a második esetben az n értéke 0 és 9 között lehet. A 0 mindkét esetben azt jelenti, hogy az a beacon szöveg le van tiltva - nem kerül adásra. Ugyan ezt érjük el a BEACON OFF vagy TAIL OFF paranccsal is.
A beacon szövegében hőmérsékletre, futási időre és feszültségre utaló parancs is lehet, aminek a jelentése:
    \t  - pillanatnyi hőmérséklet
    \s - az utolsó 15 perc átlaga
    \h - az utolsó 15 perc maximális értéke
    \l -  az utolsó 15 perc minimális értéke
    \a - pillanatnyi hőmérséklet  - 3 karekter hosszú egész szám formájában
    \u - az U1 bemenet feszültsége vagy a T1 hőmérséklet
   
\v - az U2 bemenet feszültsége vagy a T2 hőmérséklet
    \w - az U3 bemenet feszültsége vagy a T3 hőmérséklet
    \x - az U4 bemenet feszültsége vagy a T4 hőmérséklet
    \y - a T5 hőmérséklet
    \r - az utolsó újrainditástól eltelt idő
    \z - program verzió száma
    \f - fordulatszám
A t, s, h, l és a parancs csak a P13-as csatlakozóra kötött hőmérőre érvényes. Hogy az egyes bemenetek feszültséget vagy hőmérsékletet mérjenek, azt a DEFS paranccsal kell meghatározni. A T1, T2, T3, T4 és T5 mindig a pillanatnyi hőmérsékletet mutatja. A hőmérséklet mértékegységét (Celsius - Farenheit) a TEMP C vagy TEMP F paranccsal lehet meghatározni. A kiküldött hőmérséklet után a mertékegység is megjelenik. A feszültség mérésének esetén olyan feszültségosztót kell alkalmazni, ami garantálja, hogy a processzor bemenetére a legnagyobb feszültség mellett sem jut több mint 4V. A \r parancs azt az időt jeleníti meg, ami a TNC utolsó indításától telt el.A \f paranccsal a számláló értékét tehetjük be a beacon szövegbe. Ennek a számlálónak a bemenete a P3-as csatlakozó, és a megjelenő érték a bemenetre adott impulzusok számának a fele. Ez a bemenet elsősorban a PC-kben használt ventilátorok fordulatszámának mérésére alkalmas, ahol a megjelenő érték megegyezik a ventilátor percenkénti fordulatszámával. (bekötés: fekete-föld, piros-12V,sárga-P3-2láb.) A beaconban sugárzott hőmérséklet és feszültség teljesen független a telemetria részben leírtaktól.
A beacon szövegre az
APRS rendszer leirásában megadott szabályok érvényesek.

    Calibrate- ezzel a parancssal lehet ellnőrizni - esetleg kalibrálni a rádió oldali sebességet. Elinditva, a processzor 27-es lábán 600Hz-es négyszög jelnek kell megjelenni. Ezt a frekvenciát az U(p) vagy a D(own) parancssal lehet korrigálni. Kilépni az E(nd) parancssal lehet. A tapasztalat azt mutatja, hogy kalibrálásra nincs szükség. Ezzel a paranccsal lehet a rádiót folyamatos adásra kapcsolni, ami lehetővé teszi a löket beállítását.

    Digipeat - ennek a programnak a feladata, hogy a berendezés megfelelően épüljön be az APRS rendszerbe. Működése nagyvonalakban a következő: Értelmezi a rádión vett adatokat. Ha a saját hivojelét megtalálja az átjátszók listájában, az egész csomagot eldobja (nehogy hurok alakuljon ki). Ha WIDE-t talál, akkor csökkenti a WIDE SSID-jet. Ha az SSID nulla, akkor lecseréli a saját hivójelére. Ha nem, akkor a WIDE elé beszúrja a saját hivójelét. Ez után az egész csomagot elküldi. Ha már a vett csomagban is nulla az SSID értéke a legmagasabb WIDE-nak is, akkor a csomagot nem továbbitja. A digipeater részére a DCALL hivójel paranccsal meg lehet adni azon hívójelek listáját is, amelyekre az átjátszónak nem kell reagálni. Ilyen eset lehet például, ha valamelyik szomszédos átjátszó rosszul lett fölparaméterezve, és fenn áll a veszély hogy hurok alakul ki. A program folyamatosan figyeli a csomagok feladóját is. Ha azt tapasztalja, hogy valamelyik csomag több úton is eljuk hozzá, akkor csak az első alkalommal ismétli meg a csomagot. Erre olyankor van szükség, ha az átjátszó több másik átjátszót is hall. Ebben az esetben nincs szükség hogy ugyan azt a csomagot minden esetben megismételje. A következő paraméter a FILL in digi. Ha ezt bekapcsoljuk, akkor az átjátszó csak azokat a csomagokat ismétli meg amelyek közvetlenül a feladótól érkeztek. Ez előnyös lehet, ha az átjátszót specifikus helyek - pl. völgyek lefedésére használjuk. Kimondottan illendő bekapcsolni tracker üzemmód esetén.
Ha a DIGIpeat OFF parnccsal at átjátszót nem tiltjuk le, akkor az mint tracker, mint telemetria üzemmódban működik.

    Tracker - a programnak ez a része egy teljesen önálló egység. A P8-as JUMPER zárása után egy teljes értékű követőt kapunk. Ilyenkor a berendezés a soros porton keresztül kommunikál a GPS vevővel (vigyázni kell a csatlakozó megfelelő bekötésére). A beállitott paraméterek és a vett adatok alapján a sebesség függvényében, vagy meghatározott időnként elküldi a pillanatnyi poziciót. Ezt teheti úgy hogy a nyers adatokat (RMC,GLL,GGA) egyszerűen elküldi feldolgozás nélkül, vagy az APRS MIC-E specifikációnak megfelelően feldolgozza, és tömöritett formában küldi el (ajánlott forma - kevesebb adat nagyobb valószinűséggel megy át hiba nélkül). Ezt a P5-es JUMPERral választhatjuk ki (alapértelmezett - nincs jumper - a MIC-E formátum). A küldés gyakoriságát a P6 befolyásolja. Zárt állapotban a HOLD OFF paraméternek megfelelő időközönként küldi az adatokat, ide ne állitsunk 30-nál kisebb értéket. Az idő itt másodpercekben értendő. Ezt lehetőleg csak teszteléshez vagy gyalogtúrákon használjuk, ne szemeteljük tele a sávot, főleg ha már percek óta egy helyben állunk. A HOLD OFF idő értéke 10 és 99 között lehet. Ha a JUMPER nyitott, akkor a sebességekhez tartozó idők:
0                    4                  11                 24                  50               80                  120                          km/h
        256                200               120                60                  30                20                    10                mp
A soros csatlakozótól jobbra lévő 2 LED ilyenkor azt jelzi van e kapcsolat a GPS vevővel. Ha a vett adatok CRC-je rendben van, akkor a felső LED világit. Ha a GPS vevő megtalálta a pillanatnyi helyzetünket (ez vevőtől függően eltarthat egy darabig), akkor a másik LED is kigyullad, ezzel jelezve hogy a GPS vevővel minden rendben, és a készülék kész a pozíció továbbítására. Természetes módon amig ez az állapot be nem áll, a tracker nem küld semmilyen adatot a rádión keresztül. Ha a trackert nem autóban használjuk, akkor választhatunk a grafikus jelek táblázatából más azonositó jelet is, ezt előre be kell irni a paraméterek közé. A P7 és P8 JUMPERekkel akár menet közben is megjelölhetjük hogy éppen mit csinálunk. (Csak MIC-E módban.) A két JUMPERral ez a négy lehetőség választható: haza felé tartok (returning), szerviz (in service), úton vagyok (en route) és szolgálaton kivül (off duty). Az alapértelmezett (nincs JUMPER) az úton vagyokot jelenti, mivel nagy valószinüséggel ez a leghasználatosabb (az in service-t senkinek sem kivánom).

    Telemetry - ebben az üzemmódban telemetrikus adatokat tudunk továbbitani. A hardware 5 analóg, vagy hőmérséklet és négy 1 bites jel továbbitását teszi lehetővé. A telemetria üzemmódba a TELEMETRY ON parancs kiadása, vagy a P9-es jumper zárása után jutunk. A parancs-értelmező tovabbra is müködik, ezért az egyes paramétereket ebben az üzemmódban is megváltoztathatjuk. Részletesebb leirás itt találhato: http://www.aprs.net/vm/DOS/TELEMTRY.HTM . A PARM, UNIT, EQNS hossza maximum 80 a BITS hossza maximum 50 karakter lehet. Először az U1-től az U5-ig terjedő bemenet kerül adásra a definícióban megadott módon (feszültség - hőmérséklet). Utána következik a 8 bit, amiből a felső 4 mindig 0, az alsó 4 pedig a P5, P6, P7, P8 állapota (zárt =0, nyitott =1). A telemetria két adása közötti időt a BEACON EVERY n, azt, hogy a paramétereket milyen gyakran adja, azt a TAIL EVERY n paranccsal lehet beállitani. Normális estben csak az adatok kerülnek adásra T#sss,111,222,333,444,555,xxxxxxxx formátummal. A TAIL paranccsal meghatározott időközönként a PARM, UNIT, EQNS és BITS szöveg is adásra kerül. Az egyes csomagok közötti idő ilyenkor kb 5 másodperc. Hogy az egyes poziciókban analóg jel, vagy egy DS1820-as hőmérő van, azt a DEFS paranccsal hatarozzuk meg. Ennek formátuma a következő: DEFS 12345. Például: DEFS AA00T, ami azt jelenti, hogy az első két bemenet (U1 és U2) analóg feszültség, a következő kettő nincs használva, és az utolsó a hőmérő. Ha az első két bemenet közül valamelyikre (vagy mindkettőre) szintén hőmérőt kötünk, akkor a parancs DEFS TT00T (AT00T, TATAT, stb) ilyenkor azonban nem szabad megfeledkezni a 4,7k -os ellenállásról, ami a hőmérő működéséhez nélkülözhetetlen (viszont feszültség mérésnél kimondottan előnytelen). Ha aktiváljuk a nyers adatok küldését (RDATA ON), akkor a feszültség értéke 0 és 999 között változik, a hőmérséklet értéke: n = (hőmérséklet + 50)*2  (hogy az érzékelő teljes tartományában pozitiv számot kapjunk). Az ehhez tartozó EQN: 0,0.5,-50. Amikor a telemetriai adatokat tartalmazó csomag cimzettje mi vagyunk, akkor ez a csomag nem kerül adásra, viszont a csomag információs tartalma megjelenik a soros porton Ilyenkor a monitorozast is előnyös kikapcsolni a MON OFF paranccsal. Ebben az esetben a soros portra csak a telemetriai adatok kerülnek, igy azok egy számitógéppel könnyen feldolgozhatóak.

A program beállitásakor ezeket a paramétereket kell megadni, vagy ezekből a lehetőségekből lehet választani:

Filter ON/OFF - ON esetén csak a nyomtatható karektereket küldi a soros portra
ECHO ON/OFF - ON esetén vissza küldi a soros porton kapott karaktert.
TEMP C/F - hőmérséklet mértékegysége
TXDelay - a PTT aktiválása és az első adat közötti idő 10ms-ban
PERSistence - csatorna foglaltságának figyelése
TXTail - az utolsó adat és a PTT deaktiválása közötti idő - ennyi FLAG-et küld a csomag vegén - legkisebb lehetséges értéke 2
GPS $GPRMC/$GPGGA/$GPGLL - melyik nyers csomagot küldje tracker üzemmódban - MIC-E üzemmódban mindig az RMC-t használja
TRace RCV/XMIT/OFF - követési mód teszteléshez
MONitor ALL/RCV/XMIT/GON/GOF/OFF - a csatorna monitorozása
DIGIpeat ON/OFF - átjátszó be/ki kapcsolása
FILLindigi ON/OFF - bekapcsolt állapotban csak a forrastól származó csomagokat ismétli (a már ismételt csomagokat nem)
SUPPress ON/OFF - engedélyezi vagy letiltja a többszörös packetok adását
CONverse ON - interaktív üzemmód bekapcsolása (kikapcsolni a CTRL C paranccsal lehet)
CALibrate ON - a rádió oldali csatorna sebességének a kalibrálása
BEACON EVERY n - hány percenként kerüljön a beacon adásra
TAIL EVERY n - TNC üzemmódban minden n.-edik beacon lesz a BTEXT 2-ben meghatározott, egyébként a BTEXT 1 megy ki. Tracker üzemmódban minden n-edik pozicióhoz hozzá van fűzve a TTEXT-ben megadott szöveg.
SYMBOL - ennek segitségével lehet meghatározni, milyen szimbólum jelenjen meg. (pl. a www.aprs.fi honlapon.)
HOLDOFF n - ha nem a sebesség függvényében akarjuk küldeni a poziciónkat, akkor ezzel a paraméterrel lehet beállitani a küldés gyakoriságát, ahol n az idő másodpercekben.
UCAL n - Az U1 jelzésű analóg bemenet kalibrálása - feszültséget kapcsolunk az U1 jelzésű analóg bemenetre esetleg ellenállás osztón keresztül
(a processzor lábára max. 4V kerülhet!). Egy voltmérővel megmérjük a feszültséget, majd a valós értéket beírjuk az UCAL parancs mögé. A processzor kiszámolja az értékhez tartozó állandót, és az állandó értékét megjegyzi.
VCAL n - Az U2 jelzésű analóg bemenet kalibrálása - ugyanaz érvényes mint az UCAL-ra.
WCAL n - Az U3 jelzésű analóg bemenet kalibrálása - ugyanaz érvényes mint az UCAL-ra.
XCAL n - Az U4 jelzésű analóg bemenet kalibrálása - ugyanaz érvényes mint az UCAL-ra.
SERCOM - a soros port sebessége TNC üzemmódban - a lehetséges értékek: 48 (4800), 96 (9600), 192 (19200), 384 (34800), 576 (57600) és 115 (115200) Bd
GPSCOM - a soros port sebessége GPS üzemmódban - ugyan az érvényes mint az előző esetben
UNProto - a címzett hivójele - ebben az esetben APBC31 (PIC processzor) + a szoftware száma VIA átjátszók, amiből maximum 3 lehet (általában WIDE1-1, WIDE2-2, WIDE3-3) például: UNPROTO APE220 Via WIDE1-1 Via WIDE2-2 Via WIDE3-3.
MYCall - saját hivójel (kötelező)
BTEXT 1 az első beacon szöveg - ezt adja gyakrabban. A hossza max 200 karakter.
BTEXT 2 a második beacon szöveg, hossza szintén max 200 karakter
TTEXT ezt a szöveget adja tracker üzemmódban minden a TAIL paranccsal megadott n-edik pozició után. Itt is meg lehet adni hőmérsékletet és feszültséget is. Hossza maximum 100 karakter
DCALL - letiltani kivánt hivójel - összesen 10 hivójel irható be. Minden hivójelet külön paranccsal kell beirni. A DCALL RESA paranccsal lehet kitörölni az összes hivójelet a DCALL RESn paranccsal pedig a lista n-edik hivójelét.
PARM - telemetria üzemmód - paraméterek
UNIT - telemetria üzemmód - egységek
EQNS
- telemetria üzemmód - átszámitási állandók
BITS
- telemetria üzemmód - az 1 bites bemenetek aktiv állapota + a projekt neve
DEFS
- a bemenetek definiálása
RDATA ON/OFF - ha ezt a funkciót bekapcsoljuk, akkor a telemetria adatok feldolgozás nélkül kerülnek elküldésre. Az érték átszámitását az EQNS alapján a szerver végzi
PARAM ON/OFF - ON esetén a paraméterek, OFF esetén a BTEXT 1 kerül adásra
Az utolsó és lényeges parancs a HELP. Végső elkeseredésünkben ezzel kérhetünk segitséget.
Elég csak a parancs nagybetűs részét beirni.

Az átjátszót távolról rádión keresztül is föl lehet paraméterezni. Baj esetén ha nincs módunk az átjátszó közelébe jutni, akkor ez lehet az egyedüli segítség. Ehhez az szükséges, hogy a REMOTE parnccsal állitsuk be a jelszót. Ez bármilyen 10 karakter hosszú szöveg lehet. Alapértelmezett a 0000000000. Ezt a jelszót a távirányító és távirányított TNC-ben is be kell állitani. A távirányitás úgy történik, hogy a saját TNC-kben az UNPROTO hivójelnek a távirányitani kivánt TNC hivójelét irjuk. A saját TNC-nkben kiadjuk a CONVERSE ON parancsot. Ezzel interaktiv üzemmódba kerülünk, ami annyit jelent, hogy a nálunk begépelt szöveg változtatás nélkül adásra kerül, úgy hogy a cimzett az UNPROTO hivójel a feladó  pedig mi vagyunk. A két hivójel után az adatmező elején van a jelszó, utána szóköz majd maga a begépelt szöveg, ami lehet a parancs és a hozzá tartozó paraméter. Ilyenkor ugyan úgy dolgozhatunk, mintha egyenesen a soros portra lennénk kapcsolódva. Egyedül a DISP és a HELP parancs nem működik, ugyanis a válasz nem férne bele egyetlen csomagba.. A CONVERSE üzemmódból a CTRL C paranccsal jutunk ki.

A lapon található 5 csatlakozó - soros port, rádió, tápfeszültség, hőmérő, analóg bemenet.
A csatlakozók bekötése:
Soros port:
                    2 - TxD
                    3 - RxD
                    4 - +5V (rövidre zárt JUMPER esetén)
                    5 - GND
                    9 - +5V
(rövidre zárt JUMPER esetén)
Rádió:
                   1 -
+12V be (megtáplálás)
                   2 - Audio ki
                   3 -
GND
                   4 - GND
                   5 -
Audio be
                   6 - PTT
Táp:
                   Külső érintkező - GND
                   Belső érintkező - +8V -tól  +24V -ig
Hőmérő: DS1820
                   1 - +5V
                   2 - DQ
                   3 - GND
Analóg bemenet:
                   1 - GND
                   2 - U1/T1 (U) bemenet
                   3 - U2/T2 (V) bemenet
                   2 - U3/T3 (W)bemenet
                   3 - U4/T4 (X) bemenet
                   6
- U5/T5 (Y) bemenet
                   7 - +5V

Az állapotok kijelzésére 4 LED dióda van a lapon. Ezek funkciói a következők:
                   D5      - DCD
                   D6      - GPS adatok valósak
                   D7      - készülék bekapcsolva/GPS adatok jönnek
                   D8      - PTT
 

Ajánlom, hogy állitsunk minél nagyobb sebességet a soros porton, mivel a processzor egyszerre csak egy perifériával tud foglalkozni. Ha túl lassú a komunikáció a soros porton, nincs elég ideje, hogy nagy forgalom mellet minden csomagot dekódoljon. Nálam a soros port sebessége 38400-ra van állitva, így még sűrű forgalom mellet sem veszítek csomagokat. Természetesen még ettől is jobb megoldás, ha a monitorozást a MON OFF paranccsal kikapcsoljuk. Amikor átjátszóként használjuk a berendezést, amúgy sem szükseges, hogy mindent kiküldjön a soros portra. Erre csak akkor van szükség, ha valami miatt bele akarunk hallgatni a forgalomba. Ha még aprólekosabban akarjuk látni, hogy mi történik a csatornán, akkor a TRace paranccsal átkapcsolhatjuk a megjelenitést. Ilyenkor az adatok nem ASCII, hanem Hexadecimális formában jelennek meg.
A készülék gyakorlatilag semmilyen beállitást nem igényel, egyedül a kimenő illetve bejövő hangfrekvenciás jel szintjét kell beállitani. A készüléket vagy külön tápegységről vagy a rádió csatlakozóján keresztül a rádióból lehet megtáplálni. Ha nincs hozzákötve GPS vevő, akkor a fogyasztása elhanyagolható.


  A beültetett lap - mérete 50x120 mm

a NYÁK lap (valódi méret 50x120 mm, vigyázat, rajz tükrözve van a "vasalásos" módszerhez):


Program:

TNC firmware

A TNC konfigurálása

Bekapcsolás után, ha a terminál program is helyesen van beállitva (38400Bd), akkor az alábbi szöveget kell látnunk:

APRS DIGIPEATER V 3.4
BY OM3BC FOR PIC18F26K22
Type HELP for Info
Temperature Sensor DS1820 Connected

cmd >

Irjuk be a HELP parancsot, és a megjelenő segitség alapján próbáljuk meg beállitani a TNC-t. Ha beirjuk a DISP parancsot, akkor megjelenik az éppen aktuális beállítások listája. Nálam ez van beállítva:

disp
Repeater running: 0 h.
Filter ON
ECHO ON
TEMPerature C
PERSistence 64
SLOTtime 30
TXDELAY 35
TXTAIL 2
GPS $GPRMC
TRace OFF
MONitor RCV
DIGIpeat ON
FILL in digi OFF
SUPPress ON
RDATA OFF
PARAM OFF
BEAcon Every 15
TAIL Every 5
SYMBOL />
HOLDoff 30
SERCOM 38400 Bd
SERGPS 4800 Bd
UNProto APBC30 V WIDE1-1 V WIDE2-2
MYCall OM3BC-2
DEAD CALLS
DEFS ATTAT
BTEXT 1 !4816.72N/01950.34E#PHG32304/A=000974 BCDIGI v.\z Qth Filakovo
BTEXT 2 !4816.72N/01950.34EyPHG32634/A=000974 BCDIGI v.\z APRS Repeater with PIC18F26k22 - http://www.om3bc.com
TTEXT Opel Astra mobil

OK
cmd>

Bekapcsolt telemetriánál a vége lehet valami hasonló:
PARM :OM3BC-2 :PARM.Bat_A,Temp1,Temp2,Bat_B,Temp3,NC,NC,NC,NC,Camra,Chassis,Sun,Door
UNIT :OM3BC-2 :UNIT.Volts,Celsius,Celsius,Volts,Celsius,nc,nc,nc,nc,OPEN!,on,on,high
EQNS :OM3BC-2 :EQNS.0,1,0,0,1,0,0,1,0,0,1,0,0,1,0
BITS :OM3BC-2 :BITS.00001111,TEST PROJECT

A beacon text hőmérséklettel és feszültségekkel:
BTEXT 1 !4815.91N/01949.21EyPHG32304/A=000577 APRS Repeater with PIC18F26K22 Temp. \t in Filakovo U1: \u Volt, U2: \v Volt Runtime: \r h.

Nálam az egész szerkezet igy néz ki:
HAMMOND 1455C1202 dobozban:



doboz nélkül:



Befejezésül:

    Több hasonló berendezésnek a leirását is áttanulmányoztam, és amit érdekesnek találtam, azt megpróbáltam beépiteni ebbe a programba. A 64kB-os memóriából már csak kb. 1,5kB üres ezért már túl nagy bővitésre nem lehet számitani. A leirás eléggé szűkszavú, de a főbb információk azért megtalálhatóak benne.
    A program egészen biztosan nem hibátlan (Hurphy törvénye itt is érvényes, miszerint tökéletes program nem létezik, ha mégis találkozol eggyel, azt biztosan nem te írtad.), viszont folyamatosan fejlődik. Ha valaki úgy gondolja, hogy észrevételeivel segítheti a munkámat, akkor az észrevételeit írja meg az e-mail címemre, amit a honlapon megtalál.
Az építéshez sok sikert!
    A rajzok, valamint a processzorban található program a szerző szellemi tulajdona. Kereskedelmi hasznositása csak a szerző irásos belegyezésével megengedett!