www.439100.ro

Nod portabil RoLink dotat cu GPS


*** Nu te descurci să faci instalarea manual? Nicio problemă! Click aici ***

Dacă foloseşti un nod RoLink bazat pe Orange Pi Zero şi SA818, poţi utiliza o imagine preconfigurată cu softul necesar pentru tot ce ai nevoie (SVXLink, Direwolf, Web Dashboard)

  • Descarcă fişierul de aici, dezarhivează şi citeşte informaţiile din fişierul text.
  • Fă-ţi un cont (dacă nu ai deja) pe reflector, aici
  • Configurează opţiunile pentru APRS şi verifică dacă apari pe hartă, aici sau aici
  • Stai informat despre activităţile din RoLink pe canalul de Telegram
  • Vizitează-ne pe pagina de Facebook


În cele ce urmează, o să vă prezint modul cum este configurat și funcționează nodul portabil RoLink ce are atașat un sistem GPS. A fost testat și verificat de către mine cu ocazia mai multor călătorii și mi s-a părut interesant.

Modulul USB GPS se gaseste la următoarea adresă: https://t.ly/wWHXN și arată astfel:

Pe un sistem Orangepi zero cu imagine preconfigurată RoLinkX, (ATENTIE! se lucreaza cu userul root) se trece sistemul din ro în rw și se instalează următorele pachete:

apt install gpsd gpsd-tools direwolf

Daca avem deja modulul GPS, putem verifica functionarea acestuia cu comanda:

cgps -s

Daca totul este in regula, vom avea urmatorul tabel:

Daca nu apare niciun parametru in tabel, trebuie verificat daca sistemul vede receptorul; ne uitam cu comanda:

dmesg |grep -i usb

si ar trebui sa avem:

3.421818] usb 6-1: new full-speed USB device number 2 using ohci-platform
[ 3.648888] usb 6-1: New USB device found, idVendor=1546, idProduct=01a7, bcdDevice= 1.00
[ 3.648945] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.648969] usb 6-1: Product: u-blox 7 - GPS/GNSS Receiver
[ 3.648987] usb 6-1: Manufacturer: u-blox AG - www.u-blox.com
[ 11.297455] cdc_acm 6-1:1.0: ttyACM0: USB ACM device
[ 11.297820] usbcore: registered new interface driver cdc_acm
[ 11.297841] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Daca identificam dispozitivul atasat ttyACM0 inseamna ca totul este in regula. Daca nu, vedeti ca nu cumva sa folositi un cablu lung ce are cadere mare de tensiune pe el; cel mai bine este sa folositi pentru inceput receptorul infipt direct in orangepi. Atentie insa la pozitionarea receptorului, care are antena pe partea cu led-urile. Led-ul rosu indica alimentarea, si mai este un led verde care functioneaza intermitent atunci cand receptorul s-a “fixat”. Daca cgps ne arata ceva de genul:

unde la status avem NO FIX inseamna ca nu avem receptie si trebuie sa ii schimbam locul. Sper ca este clar ca in casa nu vom avea nimic receptionat.

Pentru ca direwolf să funcționeze fără placă de sunet, tebuie să adăugăm o placă de sunet virtuală:

modprobe snd-aloop
Comanda o adaugăm în /etc/modules, astfel încât să se încarce la fiecare repornire:

nano /etc/modules

În ultima linie adăugăm:

snd-aloop

apoi salvăm (CTRL+o, ENTER, CTRL+x) și mergem mai departe cu configurarea direwolf. Pentru asta edităm:

nano /etc/direwolf.conf

și adăugăm următoarele linii:

ADEVICE plughw:1,0

GPSD localhost

MYCALL YO0XXX-15
MODEM 1200
DWAIT 30
SLOTTIME 3
PERSIST 220
TXDELAY 120
TXTAIL  5

TBEACON sendto=IG overlay=R symbol="V0" altitude="1" comment="Nod portabil cu gps " commentcmd="/usr/local/bin/temp.sh"
SMARTBEACONING 50 0:30 5 0:60 0:10 30 255 

DEDUPE 28

IGSERVER aprs.439100.ro
IGLOGIN YO0XXX-15 12345

IGTXVIA 0 WIDE1-1

IGTXLIMIT 6 10

Userul și parola se pun în functie de indicativul folosit. Indicativul trebuie intodus cu litere mari. Parola aprs-is este generata de un algoritm implementat pe diverse site-uri si este numerica. Daca ati folosit deja APRSDroid, o puteti folosi pe aceea.

Adăugam scriptul de temperatură:

nano /usr/local/bin/temp.sh

în care punem:

#!/bin/bash
temp=$(cat /sys/class/thermal/thermal_zone0/temp)
temp_int=`expr $temp / 1000`
echo " CPU Temp: $temp_int°C"

Facem scriptul executabil:

chmod 777 /usr/local/bin/temp.sh

Functionarea direwolf se poate testa cu comanda:

/usr/bin/direwolf -c /etc/direwolf.conf

Ar trebui să arate ceva de genul:

[rx>ig] #
GPSD: Location fix is now 2D.
GPSD: Location fix is now 3D.
[ig] YO0XXX-15>APDW16:!4450.39NR02453.70E0360/000/A=000910Nod portabil cu gps CPU Temp: 40°C
rx_to_ig_allow? 3188 "YO0xxx-15>APDW16:!4450.39NR02453.70E0360/000/A=000910Nod portabil cu gps CPU Temp: 40°C"
rx_to_ig_allow? YES, no dedupe checking

Dacă până aici totul este în regulă, putem pune sistemul să porneasca automat la butare.

nano /lib/systemd/system/direwolf.service

în care adăugăm (sau inlocuim -adica stergem tot ce este acolo si punem ce e mai jos- in cazul in care avem ceva deja):

[Unit]
Description=DireWolf is a software "soundcard" modem/TNC and APRS decoder
Documentation=man:direwolf
AssertPathExists=/etc/direwolf.conf
After=syslog.target network.target

[Service]
User=root
SupplementaryGroups=dialout audio

ExecStart=/usr/bin/screen -S direwolf -D -m /usr/bin/direwolf -q d -d ii -d fff -c /etc/direwolf.conf -t 0
ExecStop=/usr/bin/screen -S direwolf -X quit

Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

…. și un alt fișier care îl pornește întârziat:

nano /lib/systemd/system/direwolf.timer
[Timer]
OnStartupSec=60

[Install]
WantedBy=multi-user.target

adăugam permisiunile:

chmod 755 /lib/systemd/system/direwolf.service

și comenzile de actualizare a sistemului pentru pornirea automată:

systemctl daemon-reload
systemctl enable direwolf.timer
systemctl start direwolf.service

Putem urmări live consola direwolf folosind screen:

screen -r direwolf

De acolo se iese apăsând combinatia CTRL+a și apoi d. Dacă ieșim cu CTRL+c, direwolf se va opri și apoi va reporni automat dupa 10 secunde.

Spor la teste,

Cătălin – YO7GQZ

Leave a Comment

Your email address will not be published. Required fields are marked *