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 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
- Installera balenaEtcher från https://www.balena.io/etcher/
- Ladda ner senaste Armbian Linux för OrangePi Zero från https://redirect.armbian.com/orangepizero/Bullseye_current
- 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
- Stoppa i SD-kortet i OrangePi, se till att det är ordentligt intryckt.
- 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
- 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.
- 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.
- Vänta några minuter, första uppstarten tar lite extra tid.
- 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.
- Logga in med user: root lösenord: 1234 och följ instruktionerna för att sätta nytt lösenord och ny användare.
- På frågan ”Set user language based on your location? [Y/n]” svara n.
- På frågan ”Please enter your choice:” svara 153.
- Om WiFi krävs för Internet-access så konfigureras detta nu, se kapitel WiFi.
- Anteckna vilket IP-nummer som används, kör
ip a
- Kör kommandot
apt-get update
- Kör kommandot
apt-get -y upgrade
- Kör kommandot
apt-get -y install armbian-config alsa-utils
- Starta konfigurationsprogrammet
armbian-config
- Navigera Personal->Hostname och välj ett namn för systemet om något annat än orangepizero önskas.
- Navigera System->Avahi för att aktivera namn-annonsering på nätverket.
- Navigera System->Hardware, och välj analog-codec med mellanslag, och sedan Save.
- Välj Back, och sedan Reboot för att starta om.
- Logga in igen som root när systemet startat.
Ljudnivåer
- Starta
alsamixer
, mixern för uppspelningsljud visas - 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. - Tryck sedan på tangenten F4 för att växla till inspelningsmixern.
- Aktivera Mic1 genom att trycka på mellanslagstangenten, sätt Mic1 Boost till 0 och ADC Gain till 29.
- Stäng ner alsamixer genom att trycka på tangenten Esc.
- 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.
- Kör
groupadd -g 997 gpio
- Kör
usermod -aG gpio USER
, där USER är din användare. - Kör
nano /etc/udev/rules.d/80-gpio.rules
- 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'" - 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
- Logga in som root.
- Kör kommandot
apt-get -y install direwolf
- Skapa konfigurationsfilen till Direwolf med
nano /etc/direwolf.conf
. - 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 - Redigera till lämpliga värden beroende på användningsområde, minst MYCALL måste ändras. Se Direwolf User Guide för mer information.
- Spara Ctrl+o och avsluta Ctrl+x.
- Starta Direwolf och verifiera att det fungerar.
direwolf -c /etc/direwolf.conf
. - Avsluta Direwolf med Ctrl+c.
- Kör
usermod -aG gpio direwolf
- Kör
usermod -aG audio direwolf
- Starta Direwolf automatiskt vid uppstart med
systemctl enable direwolf
- Starta Direwolf
systemctl start direwolf
. - 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.
- Kör
nmtui-connect
och anslut till ditt WiFi. - Kör
armbian-config
. - 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://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