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.

OrangePi Zero med SA818S-V radiomodul.

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 starkt, men WiFi kan användas istället)
  • UART-kabel (frivillig)
  • 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. Koppla in strömkabeln, om en seriekonsol önkas men en UART-kabel inte är tillgänglig så kan man nu ansluta USB-kabeln till en dator. Använd bara detta tills den initiala setupen är klar och du har tagit reda på ip-nummer så SSH kan användas istället, koppla istället in en riktig USB-strömadapter.
  4. Om seriekonsol ska användas, med UART-kabel eller USB, så kan man nu koppla upp en seriekonsol enligt 115200 8N1. Lämpligt program är PuTTY.
  5. Vänta några minuter, första uppstarten tar lite extra tid.
  6. Om inte seriekonsol används är det nu dags att koppla upp sig via SSH med PuTTY. Hitta ip-nummer till OrangePi, detta förklaras inte här.
  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. Anteckna vilket IP-nummer som används, kör ip a
  12. Kör kommandot apt-get update
  13. Kör kommandot apt-get -y upgrade
  14. Kör kommandot apt-get -y install armbian-config alsa-utils
  15. Starta konfigurationsprogrammet armbian-config
  16. Navigera Personal->Hostname och välj ett namn för systemet om något annat än orangepizero önskas.
  17. Navigera System->Avahi för att aktivera namn-annonsering på nätverket.
  18. Navigera System->Hardware, och välj analog-codec med mellanslag, och sedan Save.
  19. Välj Back, och sedan Reboot för att starta om.
  20. Logga in igen som root när systemet startat.

 

Ljudnivåer

  1. Starta alsamixer, mixern för uppspelningsljud visas
  2. Bra grundnivåer att utgå ifrån är Line Out = 35, DAC = 100, Line In = muted, Mic1 = muted, Mic2 = muted, DAC Reverse = unmuted.
    Växla mellan mute och unmuted med tangenten m.
  3. Tryck sedan på tangenten F4 för att växla till inspelningsmixern.
  4. Aktivera Mic1 genom att trycka på mellanslagstangenten, sätt Mic1 Boost till 0 och ADC Gain till 29.
  5. Stäng ner alsamixer genom att trycka på tangenten Esc.
  6. Spara nivåerna genom att köra 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. Kör usermod -aG audio direwolf
  11. Starta Direwolf automatiskt vid uppstart med systemctl enable direwolf
  12. Starta Direwolf systemctl start direwolf.
  13. 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