Av SA6JOF för SK6QA.

Introduktion

Här är en beskrivning på hur man kan skapa sig en nätverkskopplad AX.25 TNC med hjälp av en OrangePi Zero och programmet Direwolf. Med rätt konfiguration kan enheten även användas som fristående APRS igate eller digipeater.

Direwolf är en TNC implementerad i mjukvara och har APRS funktioner inbyggt, såsom möjligheten att agera Digipeater och Igate. För att använda Direwolf som en TNC kan man ansluta till den med KISS- eller AGW-protokollen över nätverk.

OrangePi Zero är en billig enkortsdator som har det som behövs för att vara lämplig i amatörradiosyfte, dvs in- och utgångar för ljud och GPIO för PTT, samt nätverksanslutning. Den är jämförbar med de enklare sorterna av Raspberry Pi som många nog känner till redan. Som operativsystem kör vi Armbian Linux som är anpassad för just denna typen av små enkortsdatorer.

Förberedelser

Utrustning

  • OrangePi Zero
  • microSDHC-kort, 16 eller 32 GB
  • Kortläsare för microSDHC-kort
  • Micro-USB sladd för strömförsörjning och adapter som ger minst 5V 1A, t.ex. en gammal mobilladdare.
  • Nätverkskabel ansluten till lokalt nätverk (rekommenderas, men WiFi kan användas istället om UART-kabel finns)
  • UART-kabel (frivillig, men rekommenderas)
  • Radio med lämpligt kablage för ljud in/ut och PTT

 

Flasha SD-kort

  1. Installera balenaEtcher från https://www.balena.io/etcher/
  2. Ladda ner senaste Armbian Linux för OrangePi Zero från https://redirect.armbian.com/orangepizero/Bullseye_current
  3. Skriv Armbian-installationen till SD-kortet med balenaEtcher.

 

PuTTY inställningar

Om PuTTY används som SSH-klient så rekommenderas dessa inställningar:

  • Terminal->Keyboard->Function keys = Xterm R6
  • Window->Translation->Allow ACS line drawing in UTF = enabled

Armbian config

  1. Stoppa i SD-kortet i OrangePi, se till att det är ordentligt intryckt.
  2. Koppla in nätverkskabeln och/eller UART-kabeln. Se URL för UART-interface: https://linux-sunxi.org/Xunlong_Orange_Pi_Zero#Adding_a_serial_port
  3. Om UART-kabel används så kan man nu koppla upp en seriekonsol enligt 115200 8N1. Lämpligt program är PuTTY.
  4. Koppla in strömkabeln.
  5. Vänta några minuter, första uppstarten tar lite extra tid.
  6. Om inte UART används är det nu dags att koppla upp sig via SSH med PuTTY. Hitta ip-nummer till OrangePi.
  7. Logga in med user: root lösenord: 1234 och följ instruktionerna för att sätta nytt lösenord och ny användare.
  8. På frågan ”Set user language based on your location? [Y/n]” svara n.
  9. På frågan ”Please enter your choice:” svara 153.
  10. Om WiFi krävs för Internet-access så konfigureras detta nu, se kapitel WiFi.
  11. Kör kommandot apt-get update
  12. Kör kommandot apt-get -y upgrade
  13. Kör kommandot apt-get -y install armbian-config alsa-utils
  14. Starta konfigurationsprogrammet armbian-config
  15. Navigera Personal->Hostname och välj ett namn för systemet om något annat än orangepizero önskas.
  16. Navigera System->Avahi för att aktivera namn-annonsering på nätverket.
  17. Navigera System->Hardware, och välj analog-codec med mellanslag, och sedan Save.
  18. Välj Back, och sedan Reboot för att starta om.
  19. Logga in igen som root när systemet startat.
  20. Starta ljudmixern och justera in och ut nivåerna med alsamixer.
  21. När lämpliga nivåer är funna så spara dessa med alsactl store.

GPIO

För att åtgärda rättigheterna för GPIO så vi inte behöver köra som root.

  1. Kör groupadd -g 997 gpio
  2. Kör usermod -aG gpio USER, där USER är din användare.
  3. Kör nano /etc/udev/rules.d/80-gpio.rules
  4. Lägg in följande två rader:

    SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value ; chmod 660 /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value'"


    SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
  5. Starta om, reboot

Testa GPIO

Testar GPIO 6 som output.

echo 6 > /sys/class/gpio/export

echo out > /sys/class/gpio/gpio6/direction


echo 0 > /sys/class/gpio/gpio6/value


echo 1 > /sys/class/gpio/gpio6/value


echo 6 > /sys/class/gpio/unexport

Direwolf

  1. Logga in som root.
  2. Kör kommandot apt-get -y install direwolf
  3. Skapa konfigurationsfilen till Direwolf med nano /etc/direwolf.conf.
  4. Lägg in följande konfiguration i filen:
    ADEVICE plughw:0,0
    CHANNEL 0
    MYCALL N0CALL-2
    MODEM 1200
    PTT GPIO -6
    DCD GPIO 11
    AGWPORT 8000
    KISSPORT 8001
    # Digipeater settings
    #PBEACON delay=1 every=60 overlay=S symbol="igate" overlay=T lat=58^07.28N long=11^47.55E power=15 height=6 gain=6 comment="Fill-in Digi and IGate 15W" via=WIDE1-1,WIDE2-1
    #DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE
    #DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$ TRACE
    # Igate settings
    #IGSERVER euro.aprs2.net
    #IGLOGIN N0CALL-2 00000
    #PBEACON sendto=IG delay=0:30 every=60:00 symbol="igate" overlay=T lat=58^07.28N long=11^47.55E power=15 height=20 gain=6 comment="Fill-in Digi and IGate 15W"
    #IGTXVIA 0 WIDE1-1
    #IGTXLIMIT 6 10
    #IBEACON SENDTO=IG
  5. Redigera till lämpliga värden beroende på användningsområde, minst MYCALL måste ändras. Se Direwolf User Guide för mer information.
  6. Spara Ctrl+o och avsluta Ctrl+x.
  7. Starta Direwolf och verifiera att det fungerar. direwolf -c /etc/direwolf.conf.
  8. Avsluta Direwolf med Ctrl+c.
  9. Kör usermod -aG gpio direwolf
  10. Starta Direwolf automatiskt vid uppstart med systemctl enable direwolf
  11. Starta Direwolf systemctl start direwolf.
  12. Provanslut till Direwolf från t.ex. Pinpoint, använd KISS mode.

WiFi

På grund av en del problem med WiFi på OrangePiZero så behöver vi sätta ett statiskt ip om WiFi ska användas. Annars kommer enheten få nytt ip efter varje omstart.

  1. Kör nmtui-connect och anslut till ditt WiFi.
  2. Kör armbian-config.
  3. Navigera till Network->IP->wlan0->Static och fyll i uppgifterna.

Referenser

https://github.com/wb2osz/direwolf

http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-LTS.html

https://www.balena.io/etcher/

https://redirect.armbian.com/orangepizero/Bullseye_current

https://linux-sunxi.org/Xunlong_Orange_Pi_Zero

https://www.chiark.greenend.org.uk/~sgtatham/putty/

https://github.com/wb2osz/direwolf/raw/master/doc/User-Guide.pdf

https://github.com/wb2osz/direwolf/raw/master/doc/Raspberry-Pi-APRS.pdf

https://github.com/wb2osz/direwolf/raw/dev/doc/Successful-APRS-IGate-Operation.pdf