T2ICELAND

Got an aprsc running on my little dev box. It’s connected to the hub system of aprs2.net and is now running as an Tier2 server to the APRS-IS.

It *looks* like it working okay, have to monitor logs and load on the server for the next days. You can see the monitor page for the T2ICELAND as well as I added a link to it in the menu bar on my site. I’ll be running TF2SUT-2 via T2ICELAND for the next days and see if it will hold up.

Posted in Radio | Tagged , , , , | Leave a comment

Arduino TNC + Raspberry Pi + aprx

Alltaf er ég eitthvað að grúska heima fyrir og að þessu sinni er það Arduino TNC með RPI sem IGátt. Hvað þarftu?

  • Eitt stykki RPI
  • 4GB SD kort eða stærra.
  • Ethernet kapal (eða USB wifi fyrir RPI)
  • Eitt stykki Arduino Uno eða annað ámóta með Atmega328P.
  • VHF talstöð stillta á 144.800MHz
  • Tölvu með linux uppsettu, Debian 6 eða Ubuntu 12.04 eða annað sambærilegt hentar vel.
  • Minniskortalesara fyrir SD kort
  • Arduino TNC RX pakkann frá KI4MCW
  • Brauðbretti, veroborð eða ámóta.
  • Lóðbolta & lóðtin (bara ef þú ætlar að smíða þetta á veroborð/prentplötu)

Byrjum á að útbúa Arduino sem TNC.
1. Skref, rafbúnaður.

Fyrir þetta þarftu:

  • Arduino Uno
  • Linux tölvu
  • Brauðbretti eða Veroborð
  • Bertos Arduino TNC tengimyndina
  • VHF talstöð stillta á 144.800MHz
  • Íhluti:
  • 2x 1kOhm viðnám
  • 100nF þétti
  • 3.5 mm Mono jack tengi (eða annað tengi sem passar þinni VHF talstöð!)

Taktu brauðbrettið og víraðu arduinoinn upp eins og sést á tengimyndinni. Þar sem þetta er bara RX ætlum við ekki að nota PTT og Audio out þarftu bara að horfa í efsta hlutann á tengimyndinni. (Ég fer yfir bæði RX og TX með öðrum pistli síðar)

2. skref – Hugbúnaðurinn

Næst er að tengja Arduino í gegnum USB við vinnutölvuna þína. Þá skaltu sækja bertos_kiss_tnc_rx.tar.gz af vefsíðu KI4MCW. Þegar þú ert búinn að ná í það skaltu afþjappa því. t.d. með eftirfarandi skipun í þeirri möppu sem skjalið er í (t.d. /home/user/Downloads/)
# tar -xvf bertos_kiss_tnc_rx.tar.gz
Næst skaltu opna terminal ef þú hefur ekki þegar gert það. :)
(ctrl + alt + t)

# cd ~/Downloads/bertos_kiss_tnc_rx/

Þá skulum við kanna hvar Arduino er, oftast er hann undir /dev/ttyACM0
Getur kannað það með
# ls /dev/ttyACM*
/dev/ttyACM0
Ætti að koma upp, ef ‘no such file or directory’ kemur upp þá er arduino undir einhverju öðru eða ekki tengdur. Þú getur prófa að skrifa eftirfarandi og sjá hvort hann sé einhverstaðar annarstað.
# ls /dev/tty*
Tengdu og aftengdu Arduino og sjáðu hvort eitthvað bætist inní listann eða dettur út.

Ef þetta virkar skulum við næst henda hugbúnaðinum yfir á Arduino. (Þú þarf að hafa avrdude uppsettan)
Setjum upp avrdude á ubuntu/debian
# sudo apt-get install avrdude

í bertos_kiss_tnc_rx/ möppunni ætti að vera bash skrá sem heitir ‘p’ Það ætti að duga að keyra þá skrá.
# sh p
EÐA keyra eftirfarandi skipun í terminal í þessari möppu.
# avrdude -p atmega328p -c arduino -P /dev/ttyACM0 -U images/aprs.bin -v

Voila! Arduino er kominn með Bertos RX ef allt heppnaðist.

3. skref – VHF talstöð tengd við Arduino

Til að geta móttekið pakka þarftu VHF talstöð (helst amatör stöð). Stilltu hana á 144.800MHz.

Þú þarft að fá hljóðmerki út af stöðinni: Flestar talstöðvar koma með 3,5mm mono jack aftan á sér og þú getur búið til einfaldan kapal eða notað snúru með mono eða steríó tengi á öðrum enda. Á hinum endanum viltu bara hafa víra, jörð (yfirleitt skerming) og einn vír sem er endinn á jack tenginu. (e. Tip)

Tengdu þetta við 100nF þéttinn sem þú settir upp samkvæmt Bertos teikningunni.

Stilltu síðan Squelch á stöðinni alveg niður í 0, þá ættir þú að heyra suð í stöðinni, hækkaðu síðan styrkinn uppí c.a. 50%. Tengdu Jack tengið aftan í stöðina (eða sambærilegt tengi fyrir þína stöð)

Mundu að þú þarft að hafa stöðina tengda við loftnet. :)

Voila!

Raspberry Pi

1. Uppsetning Debian

Næst skulum við hefja uppsetningu á RPI. Ef þú ert þegar búinn að setja upp Raspbian á RPI og ert með það keyrandi getur þú sleppt fyrsta kaflanum og farið beint niður í kafla 2.

Náðu í nýjasta Rasbian stýrikerfið á vefsíðu RPI.
Settu SD kortið í kortalesarann og tengdu hann við tölvuna.
Við skulum afþjappa skránni
# unzip dagsetning-wheezy-rasbian.zip

‘df -h’ birtir upplýsingar um öll geymsludrif sem tengd eru tölvunni. (Það er mælst til þess að taka usb lykla, flakkara og annað ámóta úr sambandi rétt á meðan þetta er gert. Það er mjög auðvelt að hreinsa allt útaf viðkomandi drifi ef image skráin er sett á vitlaust drif!!!  Ég get tæplega ítrekað þetta nógu mikið!
Skrifið ‘df -h’ í terminal

Þá ætti að birtast eitthvað svipað þessu:

ulfr@ulfr-laptop:~/Downloads$ df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda1            456G  423G   11G  98% /
udev                 1.5G  4.0K  1.5G   1% /dev
tmpfs                605M  892K  604M   1% /run
none                 5.0M     0  5.0M   0% /run/lock
none                 1.5G  200K  1.5G   1% /run/shm
/home/ulfr/.Private  456G  423G   11G  98% /home/ulfr
/dev/sdc1            7.4G  1.8G  5.7G  25% /media/EOS_DIGITAL

Ég tók eitt af myndavélakortunum mínum í þetta. Því heitir það EOS_DIGITAL þarna. Þarna sést að kortið er undir /dev/sdc1 og er mountað undir /media/EOS_DIGITAL

Því næst gerum við:

# sudo dd if=~/Downloads/2013-02-09-wheezy-raspbian.img of=/dev/sdc bs=1M

Það kemur enginn progress listi, heldur verður bara að hinkra í rólegheitum. Þetta ætti þó ekki að taka lengur en nokkrar mínútur. (Tip: ctrl + t gefur status upplýsingar). Ef þetta virkar ætti eitthvað svona að koma upp:

1850+0 records in
1850+0 records out
1939865600 bytes (1.9 GB) copied, 229.252 s, 8.5 MB/s

Þegar þetta er klárt, þá er næsta skref að fjarlægja kortið úr lesaranum, færa það yfir í Raspberry Pi og prófa að ræsa apparatið.

2. Tengjast RPI og setja upp
Raspbian er með SSH þjónustu virka og því er nóg að skella Raspbanum í samband við Ethernet og prófa að tengjast. Raspbinn gerir ráð fyrir að DHCP sé virkt á staðarnetinu.

hostname á Raspbanum er raspberrypi.lan og ætti að duga að gera

# ssh -l pi raspberrypi.lan

til að tengjast. Lykilorðið er raspbery Virki það ekki, t.d. ef hostname virkar ekki af einhverjum orsökum, er hægt að nota eftirfarandi aðferð til að finna út ip tölu RPI.

Til að finna ip töluna, má nota nmap sem er öflugt tól til að skanna ip tölur og fleira. (man nmap)

# nmap 192.168.1.1/24 | less

Athugið að sumir routerar nota annað IP tölu range og því gæti þurft að gera

# ifconfig eth0 eða ifconfig wlan0

og sjá hvaða ip tölur eru í gangi á DHCP á Ethernet portinu. Stundum er sin hvor IP range fyrir ethernet og svo WLAN.

nmap listar væntanlega upp nokkrar mismunandi ip tölur, en við erum að leita að ip tölu sem hefur bara port 22 opið og ekkert annað.

Ef nmap er ekki uppsett á vélinni má sækja það með að nota skipunina

# sudo apt-get install nmap

Eftir að hafa tengst getur þú búið til annan notanda, skipt um lykilorð á pi notandanum eða bara haft þetta eins og þetta er.

Mér finnst betra að nota mitt eigið notendanafn. Það getur þú gert með

# sudo adduser notendafn

og fylgir síðan leiðbeiningum sem birtast á skjáinn, en betra er að bæta síðan nýja notandanum inní sudoers list.

# sudo visudo

Bættu þar inn línunni: ‘notendanafn ALL=(ALL) ALL’

Voila!

3. Eftirfarandi er fyrir þá sem nota stærri kort en 2-4GB. (Raspberry Pi styður allt að 32GB)

Nauðsynlegt er að lagfæra partition töfluna til að nýta allt SD kortið.

Eftir að þú hefur tengst RPI og verandi rótarnotandi skaltu gera eftirfarandi í terminal:

# fdisk /dev/mmcblk0

Veldu síðan ‘p’ Þá ætti þetta að birtast:

Disk /dev/mmcblk0: 7948 MB, 7948206080 bytes
4 heads, 16 sectors/track, 242560 cylinders, total 15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00014d34

Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880     3788799     1832960   83  Linux

Afritaðu þetta í textaskjal á tölvunni þinni.

Þetta eru partition töflurnar sem eru virkar. Hér þurfum við að eyða seinni töflunni og búa til aðra í hennar stað sem verður stærri.

Skrifaðu fyrri talnarununa hjá þér (í mínu tilfelli 122880)

Ýttu svo á ‘d’ til að eyða töflu og ýttu á enter.

Veldu síðan ‘2’ og ýttu á enter.

Síðan skaltu búa til nýja töflu með að styðja á ‘n’ og síðan ‘p’ (merkir primary) og síðan tölustafinn ‘2’ sem merkir partition nr. 2.

Nú þarftu að stimpla inn það númer sem þú skrifaðir hjá þér.

Veldu síðan ‘w’ til að skrifa aðgerðina og ‘q’ til að hætta.

Nú er best að endurræsa Raspbanum með

# shutdown -r now

Næsta skref er að logga sig inná raspbanna aftur og keyra:

# resize2fs /dev/mmcblk0p2

Þetta tekur smá stund en að því loknu getur þú notað allt minniskortið.

Athugaðu hvort allt hafi gengið eftir með því að keyra skipunina

# df -h

Filesystem      Size  Used Avail Use% Mounted on
rootfs          7.3G  1.4G  5.6G  21% /
/dev/root       7.3G  1.4G  5.6G  21% /
devtmpfs        212M     0  212M   0% /dev
tmpfs            44M  216K   44M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            88M     0   88M   0% /run/shm
/dev/mmcblk0p1   56M   19M   38M  34% /boot
Útkoman ætti að líta svona út.

Þá skulum við uppfæra Raspbann:

# sudo apt-get update && apt-get upgrade

4. Undirbúa RPI

Núna getum við farið að huga að því að tengja saman Arduino og RPI. Við þurfum í raun bara aprx, en ég set einnig upp apache2 og php5 og vim (ef þú fílar ekki vim sem ritil, slepptu honum úr bara)

# sudo apt-get install apache2 php5 vim

5. APRX

Við byrjum á að setja upp AX.25 stuðning, fyrst, gerumst rót.

# sudo su

# apt-get install libax25 libax25-dev ax25-apps ax25-tools

# cd /usr/src

Kíktu á vefsíðuna hjá aprx (http://ham.zmailer.org/oh2mqk/aprx/) og kannaðu hver nýjasti source pakkinn er, í mínu tilfelli er það 2.06.svn514

# wget ham.zmailer.org/oh2mqk/aprx/aprx-2.06.svn514.tar.gz

# tar -xvf aprx-2.06.svn514.tar.gz

# cd aprx-2.06.svn514/

# ./configure && make && make install

Voila! aprx komið inn!

6. Stillingar á aprx

Við skulum stilla aprx config skránna. Ég nota vim sem ritil, ef þú kýst frekar nano skaltu skipta út vim skipuninni fyrir nano. (apt-get install vim til að setja upp vim) Ég geri ráð fyrir að við séum enn rót.

# vim /etc/aprx.conf

Hún er frekar stór skráin, ég fer yfir það helsta til að koma þessu upp.
mycall    TF2SUT-2
server euro.aprs2.net
<interface>
serial-device    /dev/ttyACM0     57600    8n1     KISS
callsign            $mycall
txt-ok              false
</interface>
beaconmode aprsis # við viljum bara senda út beacon á internetinu, ekki RF.
cycle-size     20m #Við sendum út á 20mínútna fresti
beacon symbol “R&” lat “6406.95N” lon “02153.09W” comment “IGate Kopavogur http://birki.ulfr.net” # Þarna setjum við inn R& fyrir RX eingöngu, lat og lon eru hnit gáttarinnar og comment eru skilaboð sem fylgja með, má í raun vera hvað sem er, en er ágætt að nefna hvað þetta er, c.a. staðsetningu og einhverjar fleiri upplýsingar t.d. vefsíðu igáttarinnar.

Voila! config skráin tilbúin!

7. En það er meira.

Næst skulum við búa til stað fyrir loggana okkar.

# mkdir /var/log/aprx

og einnig skulum við búa til startup skriftu fyrir aprx: Þetta er skrifta sem fylgir venjulega með aprx, en þegar þetta er þýtt úr source fylgir hún ekki með.

# vim /etc/init.d/aprx

Afritaðu svo þetta fyrir neðan og settu í það skjal. (Eða ‘cd /etc/init.d && wget http://aprs.ulfr.net/aprx’ )

#! /bin/sh
### BEGIN INIT INFO
# Provides:          aprx
# Required-Start:    $syslog $local_fs
# Required-Stop:     $syslog $local_fs
# Should-Start:      ax25ifs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start and stop aprx
# Description:       Monitor and gateway radio amateur APRS radio network datagrams
### END INIT INFO

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="aprx igate"
NAME=aprx
DAEMON=/sbin/$NAME
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
        # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend
        # on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
        #
        # If the daemon can reload its configuration without
        # restarting (for example, when it is sent a SIGHUP),
        # then implement that here.
        #
        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        return 0
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  status)
       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
       ;;
  #reload|force-reload)
        #
        # If do_reload() is not implemented then leave this commented out
        # and leave 'force-reload' as an alias for 'restart'.
        #
        #log_daemon_msg "Reloading $DESC" "$NAME"
        #do_reload
        #log_end_msg $?
        #;;
  restart|force-reload)
        #
        # If the "reload" option is implemented then remove the
        # 'force-reload' alias
        #
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
        exit 3
        ;;
esac

:

Þá ættir þú að geta ræst og stöðvað aprx með skipuninni:
# sudo /etc/init.d/aprx stop (getur sleppt sudo ef þú ert enn rótarnotandi)

8. Log skrár

aprx býr til logskrár, við skulum bæta þeim inní logrotate.

# vim /etc/logrotate.conf

Neðst í skránna setjum við:

/var/log/aprx/aprx.log {
daily
rotate 8
}

/var/log/aprx/aprx-rf.log {
daily
rotate 8
}

Svona komum við í veg fyrir að Raspbinn fyllist af loggum, við snúum þeim daglega og hendum eftir 8 skipti.

Hvað svo?

9. Tengjum dótið og prófum!

Tengdu Arduino við RPI og sjáðu hvort raspbinn sjái Arduino.

Næst skaltu prófa að ræsa aprx með skipuninni

# aprx -dddv

Þú ættir að sjá að raspbinn nær sambandi við /dev/ttyACM0 og síðan ætti að koma upp að hann nái að tengjast euro.aprs2.net. Ef það gengur allt saman skaltu fara inná aprs.fi og skoða hvort kallmerkið þitt birtist! (t.d. TF2SUt-2 í mínu tilfelli. Það ætti að koma nokkurnveginn strax, en hinkrum samt í eina mínútu áður en við förum útí bilanagreiningu. Ef þetta virkar ekki, farðu vandlega yfir öll skrefin hér á undan. Ef þetta virkar samt ekki, prófaðu að kommenta hér fyrir neðan eða senda mér email. :)

Ef þetta virkar allt saman, skaltu slökkva á aprx með því að ýta á ctrl + c

Þá ætti aprx að stöðvast, því næst skaltu keyra skipunina:

# /etc/init.d/aprx start

til að keyra daemonin í bakgrunn, hann ræsir sig síðan sjálfur næst þegar þú endurræsir RPI.

10. Að lokum

Þetta ætti allt að virka nokkuð smurt, ef ekki, skoðaðu vel skrefin á undan. Hafðu endilega samband hér að neðan ef þú finnur ekki útúr þessu. Minni á aprstf póstgrúbbuna á yahoo. Hvað svo? Farðu að velta fyrir þér hvernig þú færð Raspbann og Arduino til að vera meira en RX IGátt, t.d. stafvarpi, eða eitthvað allt annað!

11. Bónus 

Afhverju setti ég upp apache og php5? Jú, til að sjá aðeins hvað er að gerast. Mér finnst gott að geta monitorað hvað það er sem igáttin er að móttaka. Vertu hefðbundinn notandi við eftirfarandi skipanir, t.d. pi

# mkdir /home/pi/www/

byrjum á því að búa til crontab fyrir aprx-rf.log

# crontab -e

# */5 * * * * cp /var/log/aprx/aprx-rf.log /home/pi/www/

Síðan skulum við búa til skriftu sem gerir eitthvað við rf.log

# vim /home/pi/www/index.php

Settu þar inn eftirfarandi:

<?php
/*
Lítil php skrifta sem parsar rf.log og hendir henni upp í lesanlegt form

*/

$ro = preg_replace(‘/\s+/’, ‘ ‘, $row[‘message’]);
echo $ro;

$row = 1;

if (($handle = fopen(“rf.log”, “r”)) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, “^”)) !== FALSE) {
        $num = count($data);
        echo “<p> $num RAW APRS Packet $row: \n”;
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . “<br /></p>\n”;
        }
    }
    fclose($handle);
}
?>
Síðan skaltu búa til eftirfarandi í /etc/apache2/apache

Ég er ekkert voðalega flinkur í php, en ef þú hefur betri hugmynd til að parsa þetta máttu láta mig vita. :)

Ef þú tengist http://raspberrypi.lan/ á localnetinu þá færðu upp hvaða pakkar hafa verið að koma inná aprx í gegnum rf. Sniðugt? Síðan er hægt að leika sér með þetta endalaust.

Þú þarft auðvitað að setja upp /etc/apache2/sites-enabled/ rétt (apache wiki hjálpar)

Allar betrumbætur vel þegnar!

Heimildir:

http://www.ke0md.com/2012/09/03/aprs-i-gatedigi-with-my-new-raspberry-pi/

http://ham.zmailer.org/oh2mqk/aprx

http://aprs2.net/

http://aprs.fi/

http://raspberrypi.org/

https://sites.google.com/site/ki4mcw/Home/arduino-tnc

http://www.bertos.org/use/examples-projects/arduino-aprs

Copyright notice: Það má nota þetta tutorial í hvaða tilgangi sem er, með eða án þess að geta heimilda.

Að lokum, myndir af RPI sem IGátt í mjög frumstæðari víringu… (Já, sd kortahaldan brotnaði í dag)

IMG_2892 IMG_2893

Posted in Radio | Tagged , , , , , | Leave a comment

Að setja upp APRSd

Viðbót: Eftir nokkrar prófanir og tilraunir undanfarna daga, hef ég gefist upp á aprsd sem neinu öðru en monitor tóli með foxdigi. Mæli með að fólk skoði frekar pistilinn minn um aprx og raspberry pi hér að ofan. Leiðbeiningarnar eru svipaðar fyrir aprx á i386 eða x64 en þó einfaldari. Foxdigi virkar illa sem gott TNC, mæli frekar með Arduino.

Smá leiðbeiningar um hvernig eigi að setja upp aprsd. Til að byrja með vil ég minna á http://aprs.ulfr.net/ þar sem ýmislegt sniðugt er að finna, hráa móttekna pakka sem nýtist við greiningu á aprs í loftinu og gefur betri hugmynd um hvað er að gerast en t.d. að skoða http://aprs.fi/
Þessar leiðbeiningar eru unnar af mér, Samúel Ú. Þór (TF2SUT) og gefa ekki endilega mynd af því hvernig *eigi* að setja upp aprsd, heldur er þetta byggt á trial n’ error og púsluspili af misvísandi upplýsingum. Ef þetta virkar ekki fyrir þig eða kveikir í stöðinni þinni, þá er það á þína ábyrgð.

Betrumbætur þegnar.

Fyrir þetta þarftu eftirfarandi:

  • Linux vél með debian, ubuntu, eða öðru *nix kerfi sem aprsd virkar á.
  • APRS TNC sem sendir út CMD útá serial. (T.d. Foxdigi, tinytrak eða sambærilegt.)
  • APRS uppsetningu (TNC tengt við VHF stöð)

Byrjum á því að setja upp forritið. Ég miða þetta við Debian 6, en þetta ætti að vera svipað á öðrum stýrikerfum. Opnum terminal (ctrl + alt + t).

# sudo apt-get install aprsd

Ef það heppnast þá ertu tilbúinn fyrir næsta skref, að stilla aprsd. Vanalega situr config skráin undir /etc/aprsd/aprsd.conf, ef hún er ekki þar, skaltu finna hana með ‘locate aprsd.conf’. Ef hún finnst ekki skaltu búa hana til undir /etc/aprsd/aprsd.conf

# sudo vim /etc/aprsd/aprsd.conf

Þá birtist risa skjal. Við skulum skoða þá parametra sem skipta máli, restin, bíðum við með þar til síðar.

Í Debian 6 er aprsd daemon ræst með: $ sudo /etc/init.d/aprsd start
Til að endurræsa aprsd daemon: $ sudo /etc/init.d/aprsd restart

En fyrst skulum við stilla config skránna. Hér erum við með kallmerkið TF2SUT-3 og því nota ég það hér að neðan, þú verður að sjálfsögðu að setja inn þitt eigið kallmerki og aðra valmöguleika sem eiga við.

# Heiti á Internetinu, ekki RF!
servercall TF2SUT-3

# Kallmerki á RF! (yfirskrifað af INIT.TNC, meira um það síðar)
MyCall TF2SUT-3

# Staðsetning, veit ekki alveg hvaða máli þetta skiptir eða hvar þetta kemur fram…
MyLocation Akranes_IS

# Netfang
MyEmail samuel@ulfr.net

# Radioviti út á Internetið, ekki RF!
NetBeacon 30 !6418.73NI02202.41W& Digipeater and IGate http://aprs.ulfr.net

# Hreinsum “history” í aprsd á 35 mínútna fresti
expire 35

# Stillum TNC baud hraða, port os.f.v
# Gæta að því að serial portið hafi rétt réttindaflögg.
# ‘sudo chmod 755 /dev/ttyS0’
# nothæfur baud hraði 1200,2400,4800,9600 and 19200.
#
tncport /dev/ttyS0 # /dev/ttyS0 er fyrsta serial portið, ef þú notar USB serial breyti gæti hann heitið eitthvað eins og /dev/ttyUSB0 eða ámóta.
tncbaud 4800
# Foxdigi notar 4800bps, flest önnur nota 9600bps eða hærra.

# Við viljum leyfa upplýsingar frá internetinu útá RF (til að leyfa skilaboð).
rf-allow yes

# Við lokum á pakka sem vilja ekki fara í gegnum IGate (RFONLY, NOGATE)
filterNoGate yes

#
# ‘yes’ = all sem TNC móttekur er sett í log: /var/log/aprsd/rf.log
# Passið að stilla Logrotate! Annars fyllið þið harða diskinn fljótlega!
# Sjá http://aprs.ulfr.net/logrotate.conf
# Sjá fleiri upplýsingar um gagnsemi rf.log á http://aprs.ulfr.net/
# Athugið að þetta er mjög öflugt tól til að sjá hvort allt sé með felldu
# í loftinu án þess að þurfa talstöð.
# ‘no’ = Einungis kallmerki stafvarpans/IGáttarinnar er sett í log.
logAllRF yes

# Við síum okkar eigið kallmerki frá því að fara á netið ef
# það heyrist aftur eftir að hafa farið í gegnum stafvarpa
igateMyCall no

# Passkóðinn þinn
# í terminal skrifaðu ‘aprspass Þittkallmerki’ og þá færðu
# þinn eigin passkóða. Set minn hér inn þar sem þetta er
# hálf gagnslaust tól hvort eð er…
pass 16547

# Server upplýsingar:
# Type er annaðhvort “SERVER” eða “HUB” Ekki nota SERVER nema þú viljir sérstaklega
# binda þig við einn ákveðin netþjón.
# DIR: “RO” eða “SR”  RO er móttaka frá Internetinu, SR er bæði móttaka og sending.
# Við notum rotary netþjón, sjá betur Tier2 server. Hægt er að setja inn marga þjóna
# en einn rotary netþjónn dugar.
Server euro.aprs2.net 14580 hub-sr filter r/64/-22/1200

# server HOSTNAME PORT TYPE-DIR

# Skilgreinum hvaða port aprsd hlustar á.
# Það þarf ekki að forwarda þessum portum út á netið (framhjá router)
# nema ætlunin sé að geta stýrt IGáttinni utan frá.
# Mæli samt frekar með SSH til að hafa áhrif á þjóninn beint.
# Read ports.html for more info.
#
rawtncport 14580
localport 14579
mainport 10151
mainport-nh 10152
linkport 1313
msgport 1314
udpport 1315
sysopPort 14500
httpport 14501
ipwatchport 14502
errorport 14503
omniport 14600

Þá er config skráin klár. En hvað svo? kíkjum á INIT.TNC og RESTORE.TNC.

Ég mæli með að þú opnir þessar skrár og setjir # (hashtag) fyrir framan allar skipanirnar, eða hreinlega breytir nöfnunum á þeim í t.d. org-INIT.TNC og org-RESTORE.TNC þannig að aprsd sé ekkert að vesenasts með þær. Við viljum halda stillingunum á módeminu algjörlega frá aprsd, að sinni amk. (Note: ég er ekki alveg klár á því hvað nákvæmlega init.tnc og restore.tnc eiga að gera, þær virðast ekki hafa nein sérstök áhrif á foxdigi og mér gengur erfiðlega að týna saman upplýsingar um þetta. HINSVEGAR, virðist foxdigi módemið mitt stundum “hanga” eftir að ég hef stoppað og ræst á ný aprsd. Til að komast hjá því að þurfa að endurræsa nota ég forritið minicom og endurræsi módemið með því að velja menuið (ctrl a og síðan z) og velja þar ‘x’. Frekari leiðbeiningar um minicom má sjá hér: http://www.ulfr.net/Inn/?p=217

Þá er næsta skref að endurrræsa aprsd og sjá hvort allt virki, til þess ræsum við aprsd ekki sem daemon í bakgrunni heldur beint.

$ sudo /etc/init.d/aprsd stop

$ sudo /usr/sbin/aprsd

Þá ætti að koma upp romsa á terminal sem sýnir hvað hann gera.

Reading /etc/aprsd/aprsd.conf
servercall TF2SUT-3
MyCall TF2SUT-3
MyLocation Akranes_Is
MyEmail samuel@ulfr.net
MaxUsers 150
MaxLoad 100000000000
NetBeacon 30 !6418.73NI02202.41W& Digipeater and IGate http://aprs.ulfr.net/
ackrepeats 2
ackrepeattime 5
expire 35
tncport /dev/ttyS0
tncbaud 4800
rf-allow yes
filterNoGate yes
history-allow yes
logAllRF yes
aprsPass yes
TncPktSpacing 1500
igateMyCall yes
pass 16547
server euro.aprs2.net 14580 hub-sr filter m/800
rawtncport 14580
localport 14579
mainport 10151
mainport-nh 10152
linkport 1313
msgport 1314
udpport 1315
sysopPort 14500
httpport 14501
ipwatchport 14502
errorport 14503
omniport 14600
NetBeacon is: TF2SUT-3>APD225,TCPIP*:!6418.73NI02202.41W& Digipeater and IGate http://aprs.ulfr.net/

Opening serial port device /dev/ttyS0
Setting up TNC
Internet to RF data flow is ENABLED
nIGATES=1UDP Server listening on port 1315

igate0=euro.aprs2.net
Connecting to IGATEs and Hubs now…
Server Started
NetBeacon every 2 minutes : TF2SUT-3>APD225,TCPIP*:!6418.73NI02202.41W& Digipeater and IGate http://aprs.ulfr.net/

MYCALL set to: TF2SUT-3
IGATE Login: euro.aprs2.net TF2SUT-3 16547
Connected to euro.aprs2.net 14580

Ef ekki kemur upp “Disconnected from euro.aprs2.net” þá ætti allt að vera í fínu lagi.

#
Server Up Time    = 1 minute  62
Total TNC packets = 3
UDP stream rate   = 0 bits/sec
Msg stream rate   = 0 bits/sec
TNC stream rate   = 0 bits/sec
User stream rate  = 0 bits/sec
Hub stream rate   = 0 bits/sec
Full stream rate  = 0 bits/sec
Msgs gated to RF  = 0
Connect count     = 0
Users             = 1
Peak Users        = 0
Server load       = 0 bits/sec
History Items     = 1
aprsString Objs   = 1
Items in InetQ    = 0
InetQ overflows   = 0
TncQ overflows    = 0
conQ overflows    = 0
charQ overflow    = 0
Hist. dump aborts = 0

Þetta ætti að koma upp og sýnir að eitthvað er að gerast, síðan er bara að kíkja á http://aprs.fi og skoða hvort radíóvitinn okkar birtist ekki þar sem TF2SUT-3 með path í gegnum APD225 via TCPIP*,qAI,TF2SUT-3,T2NUERNBG,T2HUB3,APRSFI-C2 eða viðlíka path. TCPIP merkir að það fór beint inná netið, en ekki útá RF. Ef ekki, þá þarf að skoða hvort innsláttarvilla hafi verið gerð. Ef þetta vefst fyrir þér, endilega skildu eftir línu hér að neðan eða sendu mér póst. Minni einnig á http://spjall.ira.is og aprstf póstgrúbbuna á yahoogroups.

Ef þetta virkar allt skaltu loka aprsd með því að ýta á ctrl + c (sumum terminal er það ctr + a +d á sama tíma) og síðan ræsa aprsd með init skriftunni.

$ sudo /etc/init.d/aprsd start

Vona að þetta gangi vel!

  Heimildaskrá: (ekki endilega í réttri tímaröð)

http://www.wa4dsy.net/aprs/aprsdDOC.html
http://www.aprs2.net/wiki/pmwiki.php/Main/FilterGuide
http://www.aprs2.net/mon.htm
http://www.ulfr.net/Inn/?p=217

Posted in Electronics, Radio | Tagged , , , , , , | Leave a comment

APRSd

Bætti aðeins við TF2SUT-3. Stefnan var að setja upp nýtt loftnet og tengja tölvu við módemið en úr varð að ég kom bara öðru í verk. Sem betur fer var það tölvan.

Því er http://aprs.ulfr.net og http://aprs.ulfr.net/rf.php komið upp. fyrri síðan segir til um stöðuna á þjóninum (uppfært handvirkt, en verður vonandi sjálfvirkt von bráðar) Seinni sýnir alla hráu pakkana sem TF2SUT-3 móttekur, ekki þá sem hann sendir á netið endilega, heldur þá sem hann móttekur í gegnum RF. Þetta getur því verið ágætis villuleitartól þegar maður er ekki alveg viss hvort ákveðnir stafvarpar eru að virka eðlilega.
RF.log er með sjálfvirka uppfærslu á 15mín fresti. Vélin sem safnar upplýsingunum er TF2SUT-3 og vélin sem sýnir þær á netinu er Frigg. (Tvær vélar á local neti)

Hugmyndir að betrumbót eða sniðugum fídusum er alveg vel þegin.

Viðbót:

Lagfærði rf.php og núna er hún uppfærð á 5mín fresti í stað 15. aprs.ulfr.net er með linka inná nokkrar undirsíður sem sýna stöðuna. (meðal annars rf.php) Bæti eflaust einhverju meira gagnlegu við þegar ég nenni.

Viðbót 2:

Bætti við config skránum mínum fyrir aprsd og FoxDigi, tenglar á aprs.fi og fleira gagnlegt. Þess má geta að TF2SUT-3 er núna orðið fullvirk IGátt.

Posted in Electronics, Radio | Tagged , , | Leave a comment