Enkel radiorepeater for en hundrelapp

 132 total views,  3 views today

(c) Anders Fongen, 2026

En krysskopling av audiosignalene mellom to radioer er en enkel metode for å bygge en repeater. Men et enkelt produkt som vi fant gjør denne prosessen mindre plundrete.

En repeater bør være et kjent produkt; det er to radioer som står på et sted med god utsikt. En radio mottar signaler, demodulerer og sender informasjonen (audio) i modulert form på en annen radio. De to radioene må av tekniske grunner bruke ulike radiofrekvenser, er ofte utstyrt med filtre for å redusere forstyrrelser mellom radioene, og de er utstyrt med kratigere strømforsyning og bedre kjøling. Slike produkter er hyllevare.

En enklere variant av en repeater er en mobilradio (en litt større VHF/UHF radio egnet for installasjon i bil), som for enkelte modeller kan settes opp som en “cross-band” repeater, dvs. at mottak og videresending skjer på to ulike frekvensbånd. Med en slik begrensning kreves ikke så store filtre i antennekretsen, og både sending og mottak kan skje på samme antenne. Dette gjør en slik radio velegnet for midlertidige arrangement og nødsituasjoner, men krever da at brukerradioene kan settes opp til å sende/motta på ulike frekvensbånd (noe alle håndapparater nå kan).

Det er verd å merke seg at disse to repeatervariantene vil forutsette lik modulasjon (FM eller DMR) både i sending og mottak, og på VHF og UHF-frekvenser.

En enda enklere, og nær sagt provisorisk, konstruksjon vil være to selvstendige radioapparater, hvor audio-utgangen på den ene er koplet til audio-inngangen (mikrofonkontakten) på den andre, og vice versa. For å aktivere senderen kan den settes til å starte når den mottar at audio-signal på inngangen (såkalt VOX, “Voice Operated Xmitter”), og mottakeren settes opp med en terskel for å aktivere audio-utgangen (kalt SQUELCH). Dette blir sjelden en bra løsning, den introduserer forsinkelse og dårlig lydkvalitet.

Noe som gjør dette siste alternativet litt mer interessant, er at det finnes produkter som tilbyr slik krysskopling i kombinasjon med senderaktivering (såkalt PTT) og tilpasning av signalnivåer (å kople et hodetelefonuttak til en mikrofoninngang forårsaker gjerne overstyring og dårlig lydkvaltet). Ett av mange produkter heter YiNiTone RC-108 og finnes på diverse nettbutikker for en hundrelapp, og som er avbildet nedenfor (fig.1). Resten av artikkelen vil handle om dette produktet, det skal testes i ulike konfigurasjoner.

Fig.1: YiNiTone RC-108

Enheten er som man ser er utstyrt med kabler for to radioapparater, og den påmonterte pluggen kalles Kenwood Dual Plug, den har separate kontakter for audio inngang og utgang. På kontaktene er også signaler for aktivering av sender (PTT) og når squelch’en åpnes (ofte calt CS – Carrier Sense). Til tross for navnet er dette en pluggtype som også finnes på radioer fra Quansheng, AnyTone, Baofeng m.fl i tillegg til Kenwood. Også radioer som ikke bruker FM modulasjon, f.eks. SSB og DMR, finnes med slik pluggkontakt, noe som åpner for interessante anvendelser, noe som vi skal komme tilbake til.

Fig.2: Radioene som ble brukt i eksperimentet

Under vises noen ulike konfigurasjoner for denne enheten (vist som en X i en blå firkant)

Simpleks bro

Fig.3: Prinsippskisse av simpleks bro

Enheten kan kople to radioer sammen som bruker ulike frekvenser, men som hver sender og mottar på samme frekvens (simpleks), som vist på fig.3. Alt som mottas på den ene siden blir demodulert, overført til den andre enheten som audio, som igjen modulerer og sender ut på sin frekvens. Plassert på et sted med god utsikt kan en slik konfigurasjon tilby samband mellom to radioer som ikke har direkte forbindelse. Ulempen er her at radioer på samme side trenger direkte forbindelse for sitt samband, de får ingen hjelp av repeateren til dette. Det er en lite attraktiv egenskap. En fordel med denne konfigurasjon er at brukerradioene kan være svært enkle enheter som ikke kan utnytte en “vanlig” repeater, noe som er en lite sannsynlig situasjon.

Dupleks repeater

Fig.4: Prinsippskisse for dupleks repeater

De to sammenkoplede radioene kan settes til ulike simpleks frekvenser, den ene radioen skal kun motta, den andre kun sende, som vist på fig.4. Brukerradioene må derfor settes opp for å sende og motta på ulike frekvenser (kalt repeater shift eller split operation). Alle moderne håndapparater tilbyr dette. Dette ligner meget på en ordinær repeater, og stilt opp på et høydedrag vil de tilby samband til alle brukerradioer innen radiorekkevidde. Brukerradioene vil nå ikke lenger være konfigurert for direkte forbindelser, så utenfor repeaterens radiorekkevidde vil de ikke oppnå kontakt. Vår “boks” er derimot symmetrisk, og vil overføre audiosignaler i begge retninger, så om noen sender på repeaterens sendefrekvens vil den også videresende på sin egen mottaksfrekvens. Dette er unyttig og forstyrrende, så om radioen som brukes som repeaterens mottaker kan sperre for sendinger, vil dette problemet unngås. Kun en gammel Kenwood TH-F7 som ligger her har denne muligheten.

Bro til annen repeater

Fig.5: Prinsippskisse for bro til annen repeater

En konfigurasjon som minner om Simpleks bro (fig.3), er å sette opp radioen på den ene siden av boksen med såkalt “repeater shift”, med frekvenser tilpasset en annen repeater innen rekkevidde, som vist på fig.5. På den andre siden kan radioen være satt opp med en simpleks frekvens for a tilby brukerradioene samband med den “fjerne” repeateren, men ikke med andre brukerradioer i nærheten, i likhet med “simpleks bro”-konfigurasjonen. Muligens en interessant konfigurasjon der brukerradioene befinner seg innenfor et lite område, f.eks. en militærleir, men som også trenger samband via en regional repeater.

Bro mellom modulasjonsformer

Fig.6: Prinsippskisse for bro mellom FM-repeater go Brandmeister-nettverket

En interessant konfigurasjon er å sette en FM-radio på den ene siden av boksen, og en DMR-radio på den andre, som vist på fig.6. Det forutsetter at DMR-radioen også bruker Kenwood Dual Plug, noe som er tilfelle med f.eks. AnyTone AT-D878. Den enkleste konfigurasjonen kan være å ha simpleks linker på begge sider og oppnå integrasjon/samtrafikk mer enn utvidet dekningsområde. I andre tilfeller kan DMR-siden settes opp med repeater shift for å snakke til en Brandmeister Hotspot, og FM-siden kan settes opp med repeater shift tilpasset en lokal repeater. Da vil man oppnå å knytte et verdensomspennende DMR-nettverk til en lokal repeater, slik at brukerradioer i andre landsdeler som trenger å monitorere en lokal sambandsoperasjon kan oppnå det gjennom en DMR-radio og Brandmeister-nettverket.

Testing og vurdering av alternative konfigurasjoner

Alle disse alternative konfigurasjonene vist ovenfor er testet i praksis, og de virker…med en del forbehold. Den følgende teksten vil diskutere noen av disse forbeholdene og tilhørende problemstillinger som kan redusere interessen eller nytteverdien.

Duty cycle på enkle håndapparater

En bro/repeater som tidligere presentert vil ha mer sendetid enn en radio som kun betjener én person. Dette forholdet kalles Duty Cycle, og en høy duty cycle vil medføre (mulig skadelig) oppvarming og kortere batterilevetid. Jo større populasjon av brukerradioer, desto høyere duty cycle, så man bør ikke planlegge en større sambandsoperasjon med enkle håndapparater til 300 kroner.

Interoperabilitetsproblemer

YiNiTone RC-108 har ingen intern strømforsyning, og trekker strøm fra de tilknyttede radioene. Denne strømmen skal ikke bare drive kretsene i boksen, men også trigge PTT på motsatt side. Det later til å være mottakende radio som sørger for denne strømmen. Radioene har ulik evne til strømforsyning og ulikt strømbehov for PTT, så en del kombinasjoner av radiofabrikat viste seg å ikke fungere godt. Dette må altså testes grundig før man velger radioutstyret.

Interferens-problemer

I disse konfigurasjonene som er beskrevet er det én radio som sender mens en annen radio mottar. Selv om de ikke benytter samme frekvens, vil mottakeren påvirkes av senderen. Dette reduserer både påliteligheten og lydkvaliteten. Skjerming mellom de tilknyttede radioene er derfor nødvendig å ha i bakhodet, ved å øke avstanden mellom antennene, benytte vertikal separasjon (rundtstrålende antenner bringes i forskjellige høyder), og passbåndfiltre på sender og mottaker. God avstand mellom frekvensene som benyttes er også viktig. Ønsker man f.eks. vanlig 145 MHz repeater shift på 600 kHz blir skjerming mellom antennene ekstra viktig.

Særlig oppmerksomhet til interferens må utvises med konfigurasjonen vist i fig.6. “Hotspot” på høyre side sender med 15-20 mW, og DMR-radioen som mottar disse signalene kan lett bli forstyrret av FM-radioen på venstre side som sender med langt høyere effekt.

Lydkvalitet

Som nevnt flere ganger er det kun audiosignalet som blir overført, og lydkvaliteten vil være avhengig modulatorkretsene, audioforsterker, mikrofonkretser m.m. Vi observerte også at dersom de to radioene hadde nærliggende frekvenser ble lydkvaliteten sterkt redusert. Radioene som velges for oppgaven bør derfor ha god lydkvalitet.

Bro mellom FM og DMR ble testet, og den hadde ytterligere utfordringer med lydkvaliteten. Med DMR overføres tale i digital form, ekstremt sterkt komprimert ned til 3600 bits pr. sekund. Dette gjør DMR sensitiv for dårlig tale (diksjon, hastighet, for høyt/lavt nivå) i tillegg til overnevnte analoge problemstillinger.

Kun audio blir overført

Kun audio, ingen annen signalering utenfor audiospekteret. DMTF-toner blir overført, men ikke CTCSS eller annen subtonesignalering. Nødvendig konfigurasjon av subtone må derfor finne sted i den radioen som er tilknyttet repeaterboksen. Det samme gjelder DMR Talegrupper (TG), som ikke lar seg signalere fra en FM -radio. Også TG-instillinger må skje i DMR-radioen som er knyttet til boksen. En brukerradio må da også være satt opp til å bruke den samme TG.

Lisensbestemmelser

Noen av radioene som ligger rundt her er såkalt PMR, lisensfrie radioer med 0.5 W utgangseffekt og FM-modulasjon på UHF-båndet (446 MHz). PMR-radioer fra Baofeng (TH-888S) er utstyrt med Kenwood Dual Plug og lar seg kople til til denne repeaterboksen. Slik sett kan de utnytte en Simpleks Bro (PMR har bare simpleks-kanaler) eller en bro til radioamatørenes frekvenser for DMR og FM. Slik bruk er uttrykkelig forbudt! PMR-bestemmelsene tillater ikke bruk av repeatere overhodet, all kontakt skal skje direkte. Videre vil bestemmelsene for radioamatører forby samtrafikk med ikke-lisensierte radionettverk.

APRS Digipeater mellom LoRa og AX.25

 297 total views,  4 views today

Ingress: Posisjonsmeldinger i et APRS-system kan sendes både mellom LoRa-noder og AX.25 noder (AFSK over FM). Vanlige digipeatere for AX.25 vil ikke bry seg om meldinger over LoRa-linker, og vice versa. Dette fikser vi her, med å bygge en digipeater som videresender meldinger på kryss mellom to link-typene.

(c) Anders Fongen, 2026

Denne artikkelen er skrevet for deg som ønsker å konstruere enn cross-link digipeater mellom LoRa og AX.25. Den forutsetter noe kjennskap til APRS-kommunikasjon og hvilke roller en Digipeater og en IG (Internet Gateway) fyller.

Men også for dem som ønsker å sette opp en Direwolf-basert tracker, kartapplikasjon eller APRS internet gateway, de vil finne en del nyttig veiledning.

Artikkelen kommer heller ikke til å gi detaljerte oppskrifter på alle deloperasjoner, f.eks. hvordan man oppretter og redigerer filer på Linux, eller hvordan Linux installasjon og nettverkskonfigurasjon foregår på en Raspberry Pi. Likeså kabling av et lydkort, men det finnes mange instruksjonsvideoer for denne oppgaven på Internet. Denne artikkelen vil altså befatte seg med hvordan disse enkeltdelene kan koples sammen for det angitte formålet.

Innledende komponentoversikt

Hva trengs av komponenter for å sette opp en cross-link Digipeater?

Komponentoversikt for en cross-link Digipeater
  • En VHF-transceiver med FM-modulasjon. Transceiveren kan erstattes med en receiver (mottager) dersom digipeateren skal vidersende kun fra AX.25 til LoRa, men ikke omvendt.
  • En mikrokontroller med integrert WiFi og LoRa-transceiver. Denne må være av en type som er støttet av det vanligste APRS-kontrollprogrammet. Vi kommer tilbake til hvor man finner slike.
  • En Raspberry Pi microcomputer. Den dyreste og sterkeste versjon 5 er ikke nødvendig. Endog en Pi Zero W versjon 1 (til ca.200 kroner) klarer fint opgaven.
  • To antenner. 144 MHz for AX.25-linken, 433 MHz for LoRa-linken.
  • Et lyd-interface (SignaLink, Yaesu SCU-17 eller tilsvarende, evt. noe du har bygget selv)
  • Strømforsyning, kabler, o.l.

Dobbel TNC-oppsett

Tegningen over viser hvordan komponentene samarbeider for det gitte formålet. Hovedkomponenten er Direwolf, en software basert TNC installert på Raspberry Pi som konfigureres som en Digipeater. Direwolf kan kople seg til et en radio gjennom et lydkort, eller til en annen TNC gjennom en såkalt Network Channel (fra Direwolf version 1.8 og senere)

Om Raspberry Pi har internet-forbindelse er det en smal sak å utvide den til å være en “Internet Gateway” og formidle meldinger mellom gateway og de to radiolinkene den disponerer

Installasjon av Direwolf på an Raspberry Pi

Her forutsettes en kurant Raspberry Pi (versjon 3 eller senere, eller Pi Zero W) med Internet-forbindelse og et egnet kommandokonsoll (skjerm/tastatur eller SSH-forbindelse). Du bør boote maskinen i tekstmodus (dette konfigureres i raspi-config) for å spare minneressurser. I et tekst-konsoll skriver du:

$ sudo apt update
$ sudo apt install git cmake sox rtl-sdr multimon-ng gpiod
$ sudo apt install libasound2-dev libgpiod-dev
$ cd ~
$ git clone https://www.github.com/wb2osz/direwolf.git
$ cd direwolf
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ sudo make install
$ make install-conf

Oppskriften over vil laste ned Direwolf i kildetekst (source) form og kompilere den til maskinkode tilpasset den aktuelle maskinen. Ikke forsøk å flytte den kompilerte versjonen til en ulik Raspberry Pi, kompilere fra kildetekst også der (om det oppstår problemer i denne prosessen, så finnes det mange tilsvarende oppskrifter på nettet som du kan sammenligne med).

Skru av intern lydutgang

Din Raspberry Pi bør skru av lydutgangen for å unngå nummereringsploblemer i lydsystemet. Redigere filen /boot/firmware/config.txt og gjør følgende endringer:

$ sudo nano /boot/firmware/config.txt

Gjør så endringene som er uthevet på to av linjene:

# Enable audio (loads snd_bcm2835)
dtparam=audio=off

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d,noaudio

Kople sammen VHF-radio og Raspberry Pi

Direwolf mottar analoge lydsignaler fra VHF-radioen i PCM-format (Pulskodemodulert) som produseres av et lydkort. Det finnes egne lydkort (som eksterne enheter) kalt SignaLink, Yaesu MCU-17 m.m. som kan gjøre dette. Om du vil gjøre dette billigere for deg kan du anskaffe et generelt USB-basert lydkort til 20-30 kr.

SignaLink lydkort
Billig generelt USB-lydkort

Dersom VHF-radioen har en “data port”, bør den brukes både for å sende og motta lyd, og å kontrollere aktivering av senderen (PTT – Push To Talk). Et billig lydkort kan ikke styre PTT-signalet direkte, men du kan konfigurere Direwolf til å styre PTT gjennom et signal på CPIO-pinnene på Raspberry Pi, eller kjøpe et billig USB-serie adapter og bruke DTR eller RTS-signalene fra serieporten til å trigge PTT. Dessuten kan det oppstå et problem at høyttalersignalet fra radioen overstyrer mikrofoninngangen på lydkortet, og du må lodde inn et potensiometer for å regulere dette.

Om VHF-radioen ikke har en data-port må signalene gå via mikrofon- og høyttaler-portene, og du må finne ut hvordan PTT-signalet kan koples til. Her er det så mange varianter å se at det ikke er mulig å gi en detaljert instruksjon.

Noen forsøker å omgå bruk av PTT ved å sette opp radioen som VOX (Voice operated transmit). IKKE FORSØK DET, RESULTATET BLIR ALDRI BRA!!

Koplingen mellom lydkort og VHF-radio er den mest plundrete delen av hele APRS-prosjektet, alt annet blir enklere.

Om du kun trenger å lytte på AX.25-signalene, adri sende dem, kan du også bruke en RTL-SDR dongle som radiomottaker, noe som unngår det analoge lydsignalet. Da blir det heller ikke noe behov for et lydkort. Denne varianten blir beskrevet senere i artikkelen.

Installasjon av LoRa TNC

Plattformen for en LoRa TNC inneholder kontrollprosessor, WiFi og LoRa-transceiver. VI tar utgangspunkt i programvaren som er utviklet av CA2RXU,
“LoRa APRS Igate“. Programvaren installeres i LoRa-modulen direkte fra websiden via en USB-kabel. Ved første gangs oppstart lager modulen sitt eget WiFi som man kopler seg til fra en PC/nettbrett og modulen konfigureres gjennom et web-grensesnitt. Basert på konfigurasjonen som man legger inn i brikken vil den senere logge seg inn på et stedlig WiFi for videre konfigurasjon og meldingsutveksling med Internet Gateway. Detaljerte opplysninger om denne prosedyren finnes på den viste websiden. Der finner man også en liste over hvilke LoRa-produkter som er støttet av programvaren, som bør leses før man gjør noe innkjøp. Pass på at modulen opererer på riktig frekvensområde for APRS, som er 433 MHz.

En god kandidat som LoRa TNC: TTGO LoRa32 V2.1

Med utgangspunkt i at denne LoRa-modulen skal ikke fungere som Digipeater eller IGate (siden de oppgavene besørges av Direwolf), blir web-konfigurasjonen enkel, slik som vist i disse bildene fra web-grensesnittet:

Ingen Internet-gateway funksjon:

Ingen “beacon”, det besørges om ønskelig av Direwolf:

Ingen Digipeater, det besørges som kjent av Direwolf:

Og den innstillingen som lar modulen være en TNC:

LoRa-modulen kan konfigureres med et kallesignal, som har betydning dersom den skal operere som Digipeater eller IG. I dette tilfellet, der den kun er en TNC, vil kallesignalet ikke ha noen betydning.

De LoRa-modulene som har et display vil vise sin IP-adresse (om de har fått SSID og passord til det lokale WiFi). For senere konfigurasjon kan denne adressen brukes fra en web-leser.

Konfigurasjon av Direwolf

Direwolf konfigureres gjennom en fil som normalt plasseres som /etc/direwolf.conf på Raspberry Pi. Ved installasjon opprettes en mal-fil på lokalt område (~/direwolf/build/direwolf.conf) som viser de vanligste parametrene, men er gjort uvirksomme med kommentartegn (#). I denne teksten viser vi bare vise de virksomme parametrene, sammen med noen forklaringer:

/etc/direwolf.conf:

Innrykket linje er å forstå som fortsettelsen på den forrige.

# Angir ALSA-nummeret til lydkortet
ADEVICE plughw:0,0
# Kun én lydkanal
ACHANNELS 1
# Seksjon for kanal 0
CHANNEL 0
# Kallesignalet til digipeateren
MYCALL LA9xxx-8
# Bitraten til AX.25-linken
MODEM 1200
# Forsinkelse på 20ms etter PTT før sending starter
TXDELAY 20
# PTT settes til RTS-pinnen på serieporten
PTT /dev/ttyUSB1 RTS
# alternativt, PTT kan settes via en GPIO-pinne
#PTT GPIOD gpiochip0 14
# Network channel til LoRa TNC kalles kanal 11
# IP-adressen endres til faktisk verdi
NCHANNEL 11 192.168.2.237 8001
# Beacon som sendes på kanal 0 (AX.25)
PBEACON delay=0 every=10:00 overlay=S symbol="digi" lat=62^8.13N
long=011^26.52E comment="Lillehammer, NO" via=WIDE1-1
# Beacon som sendes på kanal 11 (LoRa)
PBEACON delay=0:10 sendto=11 every=10:00 overlay=S symbol="digi" lat=62^8.13N
long=011^26.52E comment="Lillehammer, NO" via=WIDE1-1

# Digipeater-operasjonen: Kun cross-link, fjern kommentartegnene
# for digipeating på hver link

# Digipeat on the AX.25 channel
#DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE

# Digipeat from AX.25 to LoRa channel
DIGIPEAT 0 11 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE

# Digipeat from LoRa to AX.25 channel
DIGIPEAT 11 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE

# Digipeat on the LoRa channel
#DIGIPEAT 11 11 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE

Test og oppstart av Direwolf

Testing og tilpasning av konfigurasjon skjer enklest ved å starte Direwolf fra kommandolinjen i et konsollvindu:

$ direwolf -c /etc/direwolf.com

Ved oppstart og kjøring vil Direwolf logge feilmeldinger og innholdet av sendte og mottatte meldinger. Regn med noe eksperimentering her:

  • MYCALL riktig kallesignal og SSID
  • ADEVICE parameter for å finne lydkortet
  • NCHANNEL parameter for å kople seg til annen TNC. Verdien angir IP-adressen og TCP-porter faktisk riktige. Oppkopling til LoRa TNC finner sted når Direwolf starter, og LoRa-modulen må være i drift da.
  • PBEACON parameteren angir hyppighet av beacon-maldinger samt angi aktuell lokasjon.
  • DIGIPEAT mystiske parametre for Digipeater-funksjonen, trenger normalt ingen endring

PBEACON parameteren vil medføre at det sendes ut en melding ved oppstart, da kan sendefunksjonen i radioen kontrolleres (at PTT virker som det skal f.eks.)

Som tidligere nevnt kan Direwolf også kommunisere med en internet gateway, og eksempel-konfigurasjonen som følger med Direwolf (~/direwolf/build/direwolf.conf) viser hvordan. Direwolf har også grundig dokumentasjon som omtaler de mindre brukte funksjonene. De samme filene ligger trolig lokalt på Raspberry Pi på katalogen ~/direwolf/doc.

Installasjon av Direwolf for autmatisk oppstart

Vi ønsker ikke å starte Direwolf manuelt på denne måten hver gang Raspberry Pi restartes, og vil derfor installere den slik at den starter automatisk ved maskinens oppstart. Dette ordner Linux gjenom systemd, som kan konfigureres for dette formålet ved å lage filen /usr/lib/systemd/system/direwolf.service med dette innholdet:

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

[Service]
User=direwolf
SupplementaryGroups=dialout audio gpio
ExecStart=/usr/local/bin/direwolf -c /etc/direwolf.conf
[Install]
WantedBy=multi-user.target

Når denne filen er lagret (etter at eventuelle endringer er gjort), skal følgende kommandoer skrives for å besørge automatisk oppstart:

$ sudo adduser --system --no-create-home --group direwolf
$ sudo usermod -a -G audio,gpio,dialout direwolf
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now direwolf

Disse kommandoene skal bare gis denne ene gangen, men for senere å kunne følge med på Direwolfs aktiviteter kan disse kommandoene brukes:

$ journalctl -u direwolf -f
$ sudo systemctl status direwolf

Regn med å bruke disse kommandoene ofte, fordi den viser informasjon om sending og mottak, og er en viktig informasjonskilde for feilfinning og justering. For stopp og start av Direwolf skal disse kommandoene brukes:

$ sudo systemctl stop direwolf
$ sudo systemctl start direwolf

Direwolf med en RTL-SDR dongle for AX.25 mottak

Dersom man er interessert i et oppsett med kun mottak AX.25 meldinger for å videresende til LoRa-linken, så kan man spare seg bryderiet med lydkort og VHF-radio, og erstatte disse to komponentene med en RTL-SDR dongle, som er en fullt brukbar SDR-mottaker med USB-grensesnitt.

SDR-mottaker til erstatning for lydkort og VHF-radio

Konfigurasjon av en slik digipeater involverer noe programvare for kommunikasjon med SDR-mottakeren, som ble installert innledningsvis i artikkelen (rtl-sdr, multimon-ng og sox). Følgende kommandoer i konsollvinduet kan bekrefte at SDR-mottakeren klarer å motta APRS-meldinger på 144.8 MHz med AX.25-protokoll:

$ rtl_fm -M fm -f 144.8M -s 22050 -g 50 | multimon-ng -a AFSK1200 -A -

APRS-meldinger som mottas av SDR-mottakeren vises nå i tekstformat på konsollet, i såkalt TNC-2 format. Du har vel husket å kople til en antenne, og kanskje ha en APRS-tracker som kan generere APRS-meldinger?

Konfigurasjonsfilen for Direwolf må skrives om en del, her vises en komplett utgave for denne konfigurasjonen (husk å endre til eget kallesignal og lokasjon):

ADEVICE  null null
CHANNEL 0
MYCALL LA9xxx-12
NCHANNEL 11 192.168.2.237 8001
# A LoRa channel is declared as channel 11, it can be beaconed too
PBEACON delay=0:10 sendto=11 every=10:00 overlay=S symbol="digi" lat=62^8.13N
long=011^26.52E comment="Lillehammer, NO" via=WIDE1-1
# Digipeat from AX.25 to LoRa channel
DIGIPEAT 0 11 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE

Innholdet vist ovenfor legges inn i filen /etc/direwolf.conf, og først skal vi teste oppsettet fra et konsollvindu,:

$ rtl_fm -f 144.8M -r 22050 -g 40 | direwolf -c /etc/direwolf.conf -r
22050 -B 1200 -

Konsollutskriften fra kjøring når det mottas AX.25-meldinger vil vise om alt fungerer som det skal. Her er et eksempel på det:

Grønne linjer indikerer her innkommende AX.25-meldinger (kanal 0), røde linjer viser LoRa-kanalen (kanal 11). Innkommende LoRa-meldinger vil også vises i denne loggen, men er uten betydning da de ikke skal videresendes.

Automatisk oppstart av Direwolf med RTL-SDR

Dersom en slik konfigurasjon av Direwolf skal gjøres til en “service” som starter automatisk i Raspberry Pi, følges den samme prosedyre som tidligere vist, men med en annet innhold i to filer.

Først, opprett filen /usr/local/bin/direwolf-rtl.sh og skriv inn dette innholdet:

#!/bin/sh
rtl_fm -f 144.8M -r 22050 -g 40 \
| direwolf -c /etc/direwolf.conf -r 22050 -B 1200 -

Sett så denne filen “kjørbar” med kommandoen

$ sudo chmod +x /usr/local/bin/direwolf-rtl.sh

Nå, redigere /usr/lib/systemd/system/direwolf.service med dette innholdet:

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

[Service]
User=root
ExecStart=/usr/local/bin/direwolf-rtl.sh

[Install]
WantedBy=multi-user.target

Med disse endringene kan Direwolf startes og inspiseres med de vanlige kommandoene:

$ sudo systemctl daemon-reload
$ sudo systemctl enable --now direwolf
(eller) $ sudo systemctl restart direwolf

Inspiseres med:
$ journalctl -u direwolf -f

Hva om lydsignalet blir for sterkt?

Dersom loggen som vist i figuren over indikerer at signalstyrken fra radioen er for sterk, kan man sette inn et digital dempeledd mellom RTL-SDR og Direwolf med en passende dempningsverdi. Dette gjør vi med programmet sox, som ble installert innledningsvis. Da modifiserer vi filen /usr/local/bin/direwolf-rtl.sh ved sette inn et kall til sox med de nødvendig parametrene:

#!/bin/sh
/usr/bin/rtl_fm -f 144.8M -r 22050 -g 40 - \
| sox -t raw -r 22050 -v 0.5 -e signed-integer -b 16 -c 1 - -t raw - \
| /usr/local/bin/direwolf -c /etc/direwolf.conf -r 22050 -B 1200 -

Sox-parameteren “-v 0.5” betyr at signalet skal dempes med 50%, dvs. -3dB. Verdien av denne parameteren må bestemmes eksperimentelt på det aktuelle utstyret. Direwolf må stoppes og startes igjen for hver endring i denne filen.

Digipeater kun for LoRa-meldinger

Dersom behovet for digipeater begrenser seg til meldinger på LoRa-linken, kan man gjøre det enkelt for seg selv og droppe bruken av Direwolf. Programvaren for LoRa-modulen kan settes opp til denne funksjonen, både som beacon og digipeater. Dette fremgår av konfigurasjonsbildene for LoRa-modulen som er vist tidligere i artikkelen. Husk at kallesignalet nå får betydning.

Jeg håper leseren fant denne artikkelen som nyttig og hjelpsom. Send forfatteren en melding om oversette feil eller nødvendige avklaringer.

Amatørradio på sommerleir

 206 total views,  1 views today

(c) Anders Fongen, 2026

Litt om forfatteren: Anders Fongen var inntil nylig førsteamanuensis på Forsvarets Høgskole innen militær IKT og underviste i nettverk, distribusjon og nettverkssikkerhet. Hans seneste forskningprosjekt var innen fremtidens satelittsystemer. Han har vært lisensiert som LA6UIA siden 1993.

Hvordan formidle elektronikk og radioteknologi til barn og ungdom? Hverken barne- eller ungdomstrinnet i grunnskolen gir elevene noen god realfaglig innføring i elektromagnetisme, galvaniske elementer, forholdet mellom strøm og spenning, likestrøm/vekselstrøm m.m. Derimot er de, spesielt på barnetrinnet, fortsatt nysgjerrige på å leke, utforske, og mestre naturfaglige fenomener. Formidling av naturfag til en slik elevgruppe har derfor stor nytte av radioamatørenes egne praktiske erfaringer, eget radioutstyr og egne verktøy.

Det er de siste to årene blitt arrangert “teknologiaktiviteter” på sommerleirer for barn og ungdom i regi av KFUM/KFUK Vestfold og Telemark på Knattholmen, deres leirsted utenfor Sandefjord. Der kan deltakerne melde seg på aktiviteter etter egen interesse, båtliv, sport, dans, kunst, teknologi m.m.. Aktiviteten foregår over tre dager, 5 timer hver dag. Antall deltakere på teknologiaktiviteten varierer fra 4-6 avhengig av om det deltar en hjelpeleder. Begrenset kapasitet på eksperiment- og verkstedaktiviteter avgjør den øvre grensen på antall deltakere.

Leirene er delt i aldersgrupper: henholdsvis 8-11 år, og 12-15 år. De to aldersgruppene kan erfaringsmessig sammenlignes slik:

  • Barnetrinnet (8-11 år) er preget av nysgjerrighet, lekeevne, utforskertrang, men har mindre interesse og evne for programmering.
  • Ungdomstrinnet (12-15 år) er mer vant til skole, de fulgte veiledning bedre, men er mindre interessert i egen utforskning utover oppgavetekstene. Flere av ungdommene hadde erfaring med programmering i Scratch og MicroBit/MakeCode og styrte selv sin aktivitet for programutvikling.

Ingen av gruppene hadde noe forhold til de realfaglige temaene innen elektrisitet og radio, og fokuset ble satt på de absolutt grunnleggende prinsippene. Minst mulig teori, men læring gjennom egen eksperimentering og felles lek.

QSO med LB1PJ

Temaene som ble behandlet

Her er en liste av temaer som deltakerne ble satt til å utforske:

  • Magnetisme  – hvordan en kompassnål påvirkes av en annen magnet
  • Elektromagnetisme – hvordan en strømspole kan påvirke en kompassnål
  • Elektromotor, dynamo – viser sammenhengen mellom magnetfelt og spole
  • Galvanisme – lage spenning med elektrolytt+sink+kobber
  • Likestrøm – batterier, polaritet, seriekopling, bruk av multimeter
  • Vekselstrøm – bruk av signalgenerator, oscilloskop, høyttaler, radiomottaker
  • Solcelleanlegg – praktisk oppkopling med ladekontroller
  • UHF talesamband – utendørs leking med PMR radioer
  • Morsesignaler – bygging av egen morsenøkkel, drilling på kommunikasjon
  • Radiopeiling – leke gjemsel med APRS-lokalisering, bruk av RPO-utstyr
  • Gjennomføring av QSO – VHFsamband via repeatere
  • Programmering – koding i Scratch og MicroBit (MakeCode)

Av plasshensyn kan ikke gjennomgangen av alle temaene presenteres i detalj, generelt ble disse prinsippene fulgt:

  • Instruktøren viser noen enkle eksperimenter, f.eks. hvordan en multimeter kan måle spenningen på et batteri, og barna får oppgaven med å skille brukbare batterier fra defekte. De finner selv ut at en elektromotor skifter retning når polariteten snus, og at seriekopling av “menneskelige” batterier (barna holder en sinkbit i den ene hånden og en kobberbit i den andre) gir summert spenning.
  • Barna gis frihet til selvstendig utforskning i den grad man unngår fare for brann eller ødelagt utstyr.
  • Utendørs aktiviteter med bevegelse og lek, f.eks. gjemsel med sambandsradioer.
  • Barn liker “learning by doing”, ikke “learning by watching”. Vi lar dem selv gjøre alle tilkoplinger, betjeninger, innstillinger,  avlesninger og observasjoner.
  • Barn og ungdom har svak bakgrunn i matematikk og fysikk, kun de flinkeste kan gis beregningsoppgaver.

Noen utvalgte aktiviteter grundigere beskrevet 

 Her følger en grundigere bekrivelse av et utvalg av aktivitetene:

Leke gjemsel med sambandsradioer

Alle deltakerne får utdelt PMR-radioer innstilt på samme frekvens. En deltaker (eller et par) gjemmer seg, og resten av gruppen skal finne dem. De som gjemmer seg må svare på anrop og spørsmål om “hva de ser”, altså ikke hvor de er. Basert på slik informasjon kan de øvrige deltakerne organisere et søk. Læringsutbyttet av en slik lek er hvordan en sambandsprotokoll effektiviserer en samarbeidsoperasjon; etter noen runder med leken oppstår en forståelse at søkegruppen bør spre seg i terrenget, og utveksle korte og informative meldinger fremfor småprat og roping.

En variant av denne leken innebærer at den som gjemmer seg utstyres med en APRS-tracker, og søkegruppen utgjør både de som leter i terrenget, og en “kommandoplass” som har tilgang til et APRS posisjonskart (aprs.fi). Kommandoplassen gir opplysninger om trackerens posisjon, og “laget” organiserer sitt søk deretter. Dette skapte et annerledes sambandsmønster og gjorde mulig andre søketaktikker (f.eks. omringe gjemmestedet).

Eksperimenter med likestrøm

Deltakerne antas å ha beskjeden kunnskap om strøm og spenning, det være seg polaritet, leder/isolator, sikkerhet, magnetfelt, batterier. Å lade sin mobiltelefon gir dem liten innsikt utover det å “lagre” energi gjennom lading. Derfor ble det innredet et eksperimentbord med batterier, ledninger, elektromotorer/dynamoer, multimetere, galvaniske elementer og magneter. Etter litt veiledning og oppmuntring kan deltakerne selv eksperimentere med hvordan galvanisk element (sink, kobber og elektrolytt) påvirker en kompassnål, hvordan seriekoplede batterier gir høyere spenning, at en elektromotor også er en dynamo, at et 9v batteri kan antenne stålull. Barna utviste mye sunn nysgjerrighet og eksperimenterte med entusiasme, og kom stadig tilbake til dette bordet i de påfølgende dagene. 

Utforsking av vekselstrøm

På forhånd ble det laget en enkel krets med to led-lamper koplet i parallell i motsatt retning, som kan indikere strømretningen. Denne kopler vi til en signalgenerator for å illustrere hvordan denne genererte spenning med skiftende retning. Deretter blir signalgeneratoren koplet til en høyttaler for å vise at lydsignaler overføres som vekselstrøm. Videre kopler vi til et oscilloskop for å vise hvordan signaler med høyere frekvens kan analyseres. Til slutt stiller vi signalfrekvensen til det maksimale (2 MHz) og kopler til en liten teleskopantenne, og registrerer signalet på en kortbølgeradio i andre enden av rommet. Slik blir sammenhengen mellom høyfrekvent vekselstrøm og radiobølger vist.

Vekselstrømsbordet

Oppkopling av solcelleanlegg

Solcelleanlegg er en hverdagslig ting som deltakerne har nytte av å kjenne til. Vi starter med et bilbatteri og forklarer hvordan det skiller seg fra mindre oppladbare batterier. Prinsippet for oppladbare batterier blir forklart, og deltakerne får øve seg på å måle spenningen på batteriet og kople til en bil-lader. Lading av batterier der det ikke er innlagt 220V krever andre strømkilder, og et solcellepanel blir brukt som et eksempel på en fornybar strømkilde. Deltakerne måler spenningen på solcellepanelet, og behovet for en ladekontroller blir forklart. Nå får alle deltakerne øve seg på sammenkopling av solcellepanel, ladekontroller, batteri og en radio som tjener som last. I tillegg er et to-veis amperemeter satt inn i batterikretsen for at lade/laste-strømmen kan avleses, noe som tydelig illustrerer både betydningen av godt sollys på solcellene, men også hvordan ladekontrolleren doserer ladestrømmen etter status på batteriet. 

Eksperiment med solcellepanelet. Merk amperemeteret

Bygging og trening med morsenøkler

Det finnes morsenøkler i byggesett, utformet av Torbjørn Skauli LA4ZCA og produsert med tilskudd fra Forskningsrådet. De er enkle å bygge, fungerer godt og har buzzer, batteri og kodetabell montert på samme brett. Alle klarer å bygge disse under litt veiledning, og veilederen kan lodde én enkel sammenkopling for stabilitetens skyld. Det er litt forbausende å observere den fascinasjon som morse vekker hos barn og unge.

Bygging av morsenøkler

Etter at nøklene er montert og testet, blir deltakerne drillet i morsealfabetet over flere korte økter, og vi kan også gå på HF-frekvensene og lytte litt til ekte morse-QSOer. Ved innøving av morsealfabetet blir det forsøkt å gjøre det rent “auditivt”, ikke ved å studere en trykt kodetabell. Grupper av beslektede bokstaver (EISH5, TMO0, AUV4, NDB6 osv.) blir innøvd kun med lyder, og deltakerne etter tur sender bokstaver selv for å øve på riktig rytme. De behersker 19-20 tegn av alfabetet etter kun en halv time. Deltakerne kan lettere øke tempoet senere dersom man assosierer rytmer med bokstaver, fremfor å visualisere signalene slik de er skrevet på papir.

Morsetrening

Radiopeiling

For anledningen er RPO-utstyr fra Radioorientering Norge blitt utlånt til leiren, og dette benyttes på en forenklet måte for å gi deltakerne erfaring med mottakere egnet for radiopeiling. Kun én sender blir benyttet, og denne blir satt opp med kontinuerlig transmisjon (ikke i tidsintervaller). Senderen blir dessuten plassert slik at løypen dit er relativt lettgått. Deltakerne får opplæring i bruk av betjening av mottakerne, men ingen råd om søketeknikk. De går to og to i flere runder, og alle hittil har funnet senderen. Denne aktiviteten er godt egnet for å gi deltakerne en “teorifri” erfaring med antennekarakteristikk og radiobølgers retning/utbredelse.

Takeaway fra aktivitetsdagene

I tillegg til moro og adspredelse over aktivitetsdagene var det satt et mål om hva deltakerne skal ta med seg videre i form av innsikt og ferdigheter. Disse er:

  • Bruk av multimeter til å måle likespenning og ledningsevne, for f.eks. identifisere et defekt batteri eller en ødelagt ledning.
  • Oppkopling av solcellepanel med kontroller, solceller og batteri, og betydningen av godt sollys.
  • Betydningen av tydelig tale og presise meldinger i en sambandsoperasjon.
  • Varsomhet med strømkilder, spesielt store blyakkumulatorer og nettspenning.
  • Betydning av robust terminering av ledninger, ved skruterminaler eller lodding.

Avslutningsvis: Dette er ikke skole, det er ferie med magi, lek og oppdagelsesferd!

Hva får du ut av et billig solcellepanel?

 453 total views,  1 views today

Vi tilbys et bredt utvalg av små og lette solcellepanel, godt egnet for tur og camping. De leveres også med USB-kontakt for å lade f.eks. mobiltelefonen. Billige og tilsynelatende praktiske produkter, men hvor raskt lader de mobiltelefonen din? Jeg har et slikt produkt liggende og har undersøkt akkurat dette.

(c) Anders Fongen, April 2026

Fysikken rundt slike produkter er vel kjent:

  • Soleffekten ved atmosfærens ytterkant er 1360 watt per kvadratmeter (W/m²)
  • I klarvær er soleffekten ved joroverflaten ca. 1000 W/m²
  • Et “standard” solcellepanel har en virkningsgrad på 20% dvs. kan det maksimalt produsere 200 W/m² (20 mW/cm²)
  • Årsproduksjon på våre breddegrader er “ekvivalent” med 800 timer ved full effekt, altså 160 kilowattimer pr. kvadratmeter (kWh/(år m²)). Dette er en erfart verdi, ikke beregnet.

Nedenfor vises bildet av et billig solcellepanel kjøpt på Temu, 2 stk. koster kr.71.- i skrivende stund. Selve solcellene måler 80×140 mm, altså ca. 112 cm² flate. Det er utstyrt med en USB-kontakt som gir ca. 5 volt spenning, og en strømstyrke som vil variere med intensiteten av lyset som faller på den. Produktet oppgis til å yte 2 Watt.

Solcellepanelet med USB-plugg i tilkoplingen
Solcellepanelet med USB-plugg i tilkoplingen

Med parametrene vist ovenfor (20 mW/cm²) kunne vi håpe på en maksimal effekt på

20 mW/cm² * 112 = 2,24 W

Ved en spenning på 5 volt tilsvarer dette en strømstyrke på 448 milliampere (mA). Dette er en maksimalverdi, som neppe oppnås i vårsola på våre breddegrader, så jeg er interessert i de faktisk målte verdiene med dette solcellepanelet, som også vil påvirkes av tap i elektronikken som kontrollerer at spenningen holder seg rundt 5 volt.

For å gjøre disse målingene brukte jeg et USB-amperemeter som måler strøm og spenning på en USB-forbindelse. Som forbruker av strømmen valgte jeg en liten mikrokontroller som trekker 90 mA ved normal drift. Dersom solcellene produserer mer enn 90 mA må jeg skifte til f.eks. en lampe. Bilder under viser måleoppstillingen.

Solcellepanelet koplet sammen med et amperemeter

Resultat: Ved å holde solcellene direkte mot sollyset midt på dagen (i April), leste jeg 60-70 milliampere og ca. 6 volt på måleinstrumentene, og mikrokontrollen klarte ikke å starte opp sin programvare med denne strømkilden. Jeg antar derfor at 70 mA er det maksimale som dette solcellepanelet kan produsere. Den beregnede effekten blir da

0.07 A * 6 volt = 0.42 w

altså litt over en femtedel av den annonserte effekten, og mindre enn en tiendedel av effekten av en vegglader med 1 Watt effekt. Om du bruker 6 timer på å lade en telefon med denne veggladeren, må du altså belage deg på 60 timers ladetid i fullt sollys, dvs. ca en uke med strålende sommervær, hvor du hele tiden holder panelet rettet mot solen.

Det er også nødvendig å merke seg at den produserte strømstyrken fra solcellene synker kraftig straks de kommer i skyggen av et hus eller en sky. Dersom solcellene ikke er robust dimensjonert er det lite å hente av driftsstrøm i overskyet vær.

Om du på en ukes campingtur tar med en liten nødlader med omtrent samme vekt som dette solcellepanelet, vil du ha en bedre evne til å holde telefonen i drift hele uken.

Konklusjon: Det er store sjanser for å bli skuffet over dette produktet.

Test av en enkel mobilantenne for radioamatørbruk

 2,774 total views

Mobil radiobruk betyr å bevege seg ut av huset til fots eller på annet vis ta seg inn i terrenget og sette opp en radiostasjon der. Dette er hyggelig, og man får mindre bakgrunnsstøy enn hva man opplever i et boligstrøk,

(c) Anders Fongen, desember 2024

I en tidligere bloggpost demonstrerte jeg hvor mye radiostøy som finnes i et boligstrøk, og hvordan denne støyen skaper en kraftig reduksjon i mottakskvalitet. Ved å operere radioutstyret et stykke unna bebodde områder (samt høyspenningsledninger, kringkastingsmaster m.m.) kan man oppnå bedre forbindelser, kanskje med enklere utstyr med mindre strømforbuk og lavere vekt. Mobil/portabel operasjon byr på interessante tekniske utfordringer, især dersom alt utstyret skal bæres langt, dessuten vil betjening og gjennomføring av samband påvirkes av temperatur, vind, lys og nedbør. Det er f.eks. ikke enkelt å operere en morsenøkkel med frosne fingre.

Det finnes mange radiomodeller som egner seg for mobil operasjon, de har ofte lav utgangseffekt (kalles QRP), er lette og billige. Noen har innebygget ladbart batteri, andre kan koples til et lite og lett 12 volts batteri. Selv har jeg to radioer som er egnet for mobil og portabel operasjon, Yaesu FT-817 og Xiegu G90.

Antennen er den mest interessante komponenten. Den kan være en enkel ledning, eller en mer omstendelig direktiv antenne. Her spiller prisen inn, i tillegg til vekt og hvor komplisert det er å rigge den til.

En ledning er en billig og bra antenne, men du trenger festepunkter så høyt som mulig. I en skog kan du feste ledningen i høye trær, men en skog betyr også mer skjerming og dårligere utbredelse av radiobølgene. En teleskop fiskestang kan være 5 meter lang og enkel å transportere, men toppen er så fleksibel at den bare kan bære en ganske liten vekt. Den trenger en festeanordning, f.eks. et jordspyd for å kunne stå vertikalt. Evt. kan den bindes til en sykkel eller støttes opp med ski eller staver. Om du blir uavhengig av å ha trær å henge antennen i kan du dra høyt til fjells og dra nytte av åpent terreng.

På nettet fant jeg denne antennen som vekket min interesse. Jeg har ikke sett noe navn på den, men den ser slik ut og koster 25-30 euro i diverse nettbutikker:

Enkel teleskopantenne med tilhørende jordspyd

Delene som er vist er ikke i proporsjonal størrelse. Den røde boksen er kun et mekanisk feste for jordspydet (ca. 25 cm langt) , teleskopantennen (5,5 meter lang) og antennekontakten. Skjermen på antennekontakten er koplet til jordspydet og senterlederen til teleskopantennen. Det er ingen tuner eller un-un i den røde boksen. Antennen avtemmes til en frekvens ved å trekke ut teleskopantennen til riktig lengde, og den medfølgende radialen (vist nederst på bildet) festes i jordspydet og strekkes ut langs bakken.

En vertikalantenne som kan reguleres i høyden opp til 5,5 meter kan forventes å fungere godt på frekvensbåndene 14 MHz og høyere, altså 20- 18-, 15-, 12- og 10-meterbåndet, kanskje også 6-meter båndet. Vi skal måle og finne ut.

Dette er en enkel konstruksjon, og jeg likte at jordspydet også fungerer som stativ for antennen. I praksis har det vist seg at det på fjellet kan være litt vanskelig å finne jordsmonn som er fast og dypt nok for å gi en stabil plassering. En hammer el.lign. kan komme til nytte, spesielt om vinteren.

Avstemningen av antenne skjer enklest ved å kople til en antenneanalysator (jeg bruker Nano-VNA til dette formålet) og trekke antennen helt ut. Ved maskimal lengde har antennen en tydelig resonans på ca. 12 MHz, og ved trinnvis forkorting av antennen kan en brukbart lav SWR oppnås på de lavere frekvensene (14-18 MHz).

Ved høyere frekvenser er avstemningen av antenne noe mer uklar, fordi resonansområdene blir flere og tettere. Det var ikke mulig å oppnå en lav SWR på 12- og 10-meterbåndet med den ene radialen som fulgte med, men uten radialer lot dette seg gjøre. Derimot fungerer antennen dårligere uten radial på lave frekvenser.

Antennen fungerer faktisk flott, jeg oppnådde kontakt på morse med Costa Rica (9000 km unna) på 28 MHz med en utgangseffekt på kun 5 watt! Da hadde jeg plassert meg litt inne på fjellet mellom Lillehammer og Nordseter.

Flere radialer

Det ble gjennomført målinger av SWR med ulike radialer tilkoplet antennen. Som bildet viser er den medfølgende radialkabelen utstyrt med en 10mm ringkabelsko som tres over gjengene til jordspydet. En ekstra radial av samme lengde (5,5 meter) ble laget og testet uten forbedring. Derfor ble kortere radialer også laget og testet.

Det som viste seg å gi et balansert og godt resultat, dvs. lav SWR på frekvensene 14, 18, 21, 25, 28 og 50 MHz, var tre radialer på 5,5, 3,5 og 2,7 meter. En SWR-verdi under 2.0 ble oppnådd på alle de nevnte frekvensene. Her vises bilder av antenneoppsettet, og måleresultatene på hver av de seks frekvensene. Se bort fra Smit-chart mønsteret på skjermbildene, de burde ikke ha vært der.

Best oppnådde SWR-verdi ved 14 MHz: 1,5
Best oppnådde SWR-verdi ved 18 MHz: 1,6
Best oppnådde SWR-verdi ved 21 MHz: 1,24
Best oppnådde SWR-verdi ved 25 MHz: 1,2
Best oppnådde SWR-verdi ved 28 MHz: 1,6
Best oppnådde SWR-verdi ved 50 MHz: 1,73

Konklusjon

Denne antennen (som ikke har noe navn) finnes på diverse nettbutikker, jeg kjøpte den fra Aliexpress. Etter å ha lett etter praktiske antenner for mobil bruk en stund, har jeg nå funnet det jeg lette etter. Denne antennen fungerer godt, er enkel å bære i sekken, settes opp uten å trenge festepunkter, trenger ikke antennetuner, og er billig i innkjøp. Til min Yaesu FT-817, som har internt batteri men ikke antennetuner, er dette den perfekte antennen. Hele radioutrustningen får plass i en liten brysttaske (se bildet).

Jeg bruker mye CW (morse) og trenger derfor en morsenøkkel som er lett og som tåler transport. Det finnes mye å velge mellom på nettet, av “paddles” laget av aluminum eller plast, noen har også en magnetfot.

Disse undersøkelsene ble gjort vinterstid, og jeg liker ikke å fryse. Jeg kjørte noen tester fra bilen, som bildet under viser. Inne på fjellet var det lite bakgrunnsstøy, og jeg satt varmt og komfortabelt i bilen og kjørte sambandet derfra. Antennen ble satt opp 6-8 meter fra bilen (som ikke lager målbar bakgrunnsstøy).

Forbehold

Alminnelig antenneteori fastholder at radialer påvirker antennens ytelse og tap, men ikke dens resonansfrekvens. Målingene som jeg har gjort er altså ikke helt i tråd med teorien. Så det er med noe forbehold om mine resultater også vil gjelde all bruk av denne antennen under varierende forhold og omgivelser.

LoRa-radioer brukt på radioamatørbåndene

 3,912 total views,  1 views today

LoRa (Long Range) er en radioteknologi som byr på mange anvendelser for radioamatører, men den må brukes i overensstemmelse med myndighetenes regelverk. Denne artikkelen gir en teknisk forklaring på modulasjonen og protokollene brukt i LoRa, og en presentasjon av hvordan LoRa-maskinvare kan koples opp konfigureres av et program skrevet i MicroPython. Den nødvendige konfigurasjonen for å operere i tråd med regelverket blir forklart, dessuten et enkelt eksperiment for å måle rekkevidden av LoRa-signaler.

(c) Anders Fongen, november 2024

Innledning

Innen digital transmisjon er det en lovmessig sammenheng mellom bitrate, båndbredde og signal/støy-forhold (SNR), uttrykt i Shannons Lov. Dersom anvendelsen av kommunikasjonskanalen ikke trenger høy bitrate, kan man klare seg med lav effekt (lavere SNR) eller liten båndbredde. Slike anvendelser er radioamatørene kjent med gjennom FT8 og WSPR.

LoRa er en kommunikasjonsteknolog som benytter den samme lovmessigheten ved å bruke radiosignaler med lang rekkevidde (lav SNR) , lav bitrate (opptil 22 kbit/sek) og lav utstrålt effekt (lavt strømforbuk). LoRa er utviklet med tanke på Internet of Things, med trådløs kommunikasjon mellom sensorer o.l. utstyrt med batteristrøm. En LoRa-radio er en liten og billig integrert krets som konfigureres og styres av en mikrokontroller (Arduino, ESP32, Raspberry Pico eller tilsvarende).

Resten av artikkelen vil hovedsaklig ha et teknisk fokus på modulasjon som brukes i LoRa, samt forklare hvordan en LoRa-radio kan koples opp og programmeres. Underveis vil relevante myndighetskrav bli diskutert, og erfaringer noen enkle eksperimenter bli presentert.

Kommunikasjon i bredt spekter (Spread Spectrum)

Tradisjonell radioteknologi har bestrebet seg på å sende ut radioenergi i et lite frekvensområde, slik at ulike sendere kan sende “side om side” i spekteret. Modulasjonen som er brukt i slike anvendelser (f.eks. kringkastingsradio) er følsom for annen radioenergi i samme frekvensbånd (forstyrrelser). Dette forholdet krever myndighetskontroll med bruk av frekvensspekteret, og overvåking av at bestemmelsene overholdes.

En alternativ måte er å spre radioenergien over et større frekvensspekter, på en måte som gjør kommunikasjonen mer robust mot forstyrrelser fra andre radiokilder, og som lar flere kommunikasjonskanaler benytte samme frekvensområde. På engelsk kalles slik modulasjon Spread Spectrum (SS).

Sentralt i SS-modulasjon er at hver overførte bit skal være representert på flere frekvenser, slik at et forstyrrende smalbåndssignal ikke skal hindre biten å bli overført. Vi finner SS-modulasjon i Bluetooth (som benytter såkalt frekvenshopping) og 3G (som benytter CDMA).

LoRa bruker SS-modulasjon ved å sende en samling bits i et symbol som representeres ved et signal som endrer frekvens fra lav til høy over en bestemt tidsperiode. Dette kan høres ut som fuglekvitter på en vanlig SSB-mottaker og kalles for “chirp”. Offisielt kalles denne typen modulasjon for Chirp Spread Spectrum.

Illustrasjonen ovenfor viser radioenergien i et chirp med tidsaksen horisontalt og amplituden vertikalt. Et chirp har ingen fase- eller amplitudemodulasjon, og informasjonen i det overførte symbolet avgjøres av hvilken frekvens chirp’et starter og slutter på. Mer om dette siden.

Båndbredde, symbolrate, spredningsfaktor

Den fysiske utformingen av et chirp bestemmes som nevnt av informasjonsinnholdet i symbolet som overføres i chirp’et, og tidsforløpet av overføringen bestemmes av signalets båndbredde, samt en parameter som kalles spredningsfaktor.

Informasjonen som overføres i et chirp kalles et symbol, og antall chirp som sendes pr. sekund kalles Symbolraten. Symbolraten (SR) er bestemt av båndbredden (BW) og spredningsfaktor (SF) på denne måten:

F.eks. vil en båndbredde på 62,5 kHz og spredningsfaktor 8 gi:

Koderate, og overførte bits pr. sekund (bitrate)

Antall bits overført i et symbol angis av spredningsfaktoren. SF=8 betyr at hvert symbol inneholder 8 bits. Dersom, i tråd med eksemplet over, symbolraten er 244 pr. sekund, blir brutto bitrate 1952 bits pr. sekund.

Men LoRa inkluderer også noen såkalt feilkorrigerende bits i datastrømmen, for å kunne detektere og endog rette opp overføringsfeil i noen utstrekning. Jo flere slik feilkorrigerende bits som legges inn, desto større og flere bitfeil kan rettes opp. En LoRa-radio konfigureres til en koderate (code rate, forkortet CR) skrevet f.eks. 4:5, som betyr at for 5 overførte bits er 1 bit satt inn for feildeteksjon/-retting, 4 bits er nyttedata. Mulige verdier for CR er 4:5, 4:6, 4:7, 4:8.

CR=4:5 betyr at netto bitrate er 80% av brutto, og regneeksemplet ovenfor gir en netto bitrate på 1952*0.8=1562 bits pr. sekund.

Her er en online kalkulator for å beregne netto bitrate. Den følger nettopp de regnereglene som nå er forklart.

Symbolverdien

Som nevnt overføres en gruppe bits med et symbol, et antall som tilsvarer verdien av spredningsfaktoren (SF). Verdien av dette er symbolet er derfor i området 0 til 2SF-1.

Et chirp vil starte på en frekvens, gå til høyeste frekvensen i båndbredden, fortsette fra laveste frekvens og avslutte på den samme frekvensen som den startet med. Symbolverdien representeres av den frekvensen som chirp’et starter og slutter på. Dette forløpet vil bli vist med en radiomottaker litt senere i artikkelen. Figuren nedenfor viser denne modulasjonsteknikken med frekvens langs vertikalaksen og tidsforløpet langs horisontalaksen (kilde).

Frekvensområdet som rommer chirp’ens båndbredde må derfor deles opp med 2SF antall “punkter”, hver av dem vil representere en bestemt symbolverdi.

Hvordan ser/høres dette ut i praksis

Vi kan sette opp en LoRa-sender med en båndbredde og spredningsfaktor som gjør at radiosignalet blir hørbart med en SSB-mottaker, og som gir et bilde i et “vannfall” som illustrerer chirp-modulasjonen.

Vi velger å sette opp senderen (måten dette skjer på vil vises senere i artikkelen) med BW=7800 Hz, SF=12. Dette gir en SR=1,9 pr. sekund, og en sendevarighet for hvert symbol på 525 millisekunder.

Med en bredbåndsmottaker og et “vannfallsdisplay”, i dette tilfellet RTL-SDR radio og Linux-programmet Gqrx (i Windows kan programmet SDR# gjøre samme jobben), kan vi motta LoRa-sendingene og studere dem i vannfallet. Slik vises LoRa-sendingene i mottagerprogrammet:

Lydsignalet som følger med er fra Gqrx-programmet som demodulerer som et SSB-signal. Forløpet i vannfallet viser omtrent det som allerede er forklart:

  • Chirp’ene opptrer omtrent 1,9 ganger pr. sekund.
  • Bortsett fra 2 chirp’er i starten av sendingen går alle lyder fra lav til høy frekvens.
  • Chirp’ene starter på ulike frekvenser, de skaper ikke et regelmessig sagtakk-mønster.

For å studere signalforløpet mer nøyaktig, lar vi Gqrx-programmet demodulere som et FM-signal og lagre det demodulerte signalet som en lydfil. Da vil frekvensen omsettes direkte til en amplitude, så vi kan studere frekvensforløpet med et lydredigeringsprogram, i dette tilfellet Audacity (finnes også for Windows). Sendingen som er vist i videoen over presenteres på denne måte i Audacity:

Vertikalaksen representerer her frekvensen, og den horisontale aksen tidsforløpet. De forskjellige delene av sendingen er ikke forklart i denne artikkelen, så kun i korthet starter sendingen med et “hode” av 6 up-chirps og 2.25 down-chirps. Området som vises i lyseblått er eksempel på et symbol som starter og slutter på samme frekvens, og som alltid endrer seg fra lav til høy frekvens, men “vrenger seg” fra høyeste til laveste frekvens. Det er også mulig å se nederst i vinduet at varigheten av det lyseblå området er 523 millisekunder, meget nære den verdien som vi beregnet ovenfor.

Tilkoplingen mellom LoRa-radioen og en mikrokontroller.

Bildet under viser en LoRa-radio t.h. med kretsen Semtech SX1278. Den har ingen betjeningsfunksjoner, kun tilkoplingspunkter for en kontroller som kan konfigurere og styre radioen gjennom elektriske signaler. Normalt vil disse tilkoplingspunktene forbindes til en mikrokontroller, som er en liten datamaskin som kan knyttes til en skjerm, knapper, andre datamaskiner, og som kan programmeres. Bildet nedenfor viser disse komponentene montert på et breadboard, med nødvendige ledningsforbindelser. Et breadboard er velegnet for eksperimentering fordi det er lett å gjøre endringer underveis og mulig å demontere komponentene siden for bruk i andre eksperimenter.

Mikrokontrolleren Raspberry Pico (til venstre) koplet til LoRa-radioen SX1278 (til høyre)

Sammenkoplingen mellom mikrokontrolleren og LoRa-radioen skjer gjennom en SPI-buss, som gjør sammenkoplingen enkel og med få kontaktpunkter. En SPI-buss kan kople kontrolleren (master) til flere ytre enheter (slaver) i tillegg til LoRa-radioen, f.eks. et display eller en GPS-mottaker. Figuren under viser hvordan en slik forgrening kan gjøres. I tillegg må LoRa-radioen ha strømtilførsel og en antenne.

Ledningsnettet i en SPI-buss. Kilde: https://electrosome.com/spi/

Det finnes også enheter hvor mikrokontrolleren er fabrikert sammen med en LoRa-radio, da er det enklere å sette opp et eksperiment eller en prototyp.

Oppsett for programmering

For å styre LoRa-radioen trenger mikrokontrolleren et program som kommuniserer med LoRa-radioen gjennom SPI-bussen. Mange slags mikrokontrollere kan brukes til dette formålet, og de programmeres med ulike verktøy og ulike programeringsspråk. Den kontrolleren som brukes i dette eksperimentet er Raspberry Pico. Den er utstyrt med støtte for SPI-buss og kan programmeres i programmeringsspråket “MicoPython”, som er mye lettere å arbeide med enn f.eks. C. Figuren under viser de nødvendige ledningsforbindelser mellom mikrokontrolleren og LoRa-modulen:

Raspberry Pico har tildels like funksjoner på flere tilkoplingspunkter, så flere muligheter finnes enn hva som vises på bildet. Det vesentlige er at de fire ledningene som hører til SPI-bussen (MISO/RX, MOSI/TX,SCK,GND), 3.3 v spenningsforsyning og avbruddsline (mellom GP20 og DIO0) er koplet til.

Programvaren i mikrokontrolleren må dessuten vite hvilke porter den skal bruke for å betjene LoRa-radioen, så det må være samsvar mellom disse opplysningene og den oppkoplingen som er valgt.

Programmet som skal utføre de ønskede sende- og mottaks-operasjoner gjennom en LoRa-kanal må skrives inn i programmeringsverktøy. Her finnes flere å velge mellom, men vi anbefaler Thonny, som er enkel i bruk og godt tilpasset mikrokontrollere som Raspberry Pico. PCen med Thonny koples til Raspberry Pico med en USB-kabel, og oppsettet av Thonny for å komme i gang med programmering er godt beskrevet på nettet, og vil ikke forklares her.

Biblioteksmodul for LoRa-programmering.

I dette eksperimentet har vi benyttet en LoRa-modul med Semtech SX1278. Programmeringseksemplet under gjelder for kretser med betegnelsen SX127X. En del LoRa-moduler benytter kretser med betegnelsen SX126X, som krever et annet programmeringsbibliotek og en litt annen programmeringsmetode.

LoRa-radioen er komplisert å sette opp, så vi overlater disse operasjonene til programvare som andre har skrevet, kalt en biblioteksmodul. Modulen som er brukt i dette eksperimentet kalles lora.py og den kan hentes herfra. Den skal lagres i mikrokontrollerens minne, det gjøres via Thonny.

Vi vil dog anbefale en liten endring i lora.py. Erstatt linje 56-57 på denne måten for å få en sikrere oppstart av LoRa-radioen:

#        while self._read(REG_VERSION) != 0x12:
#            time.sleep_ms(100)
#       The two commented lines are changed into
        v = self._read(REG_VERSION)
        while  v != 0x12:
            sleep_ms(100)
            v = self._read(REG_VERSION)
#           raise Exception('Invalid version or bad SPI connection')

Programmet som vi selv vil skrive må gjøre følgende:

  1. Beskrive hvilke tilkoplingspunkter på Raspberry Pico som skal brukes for å styre LoRa-radioen.
  2. Sette opp LoRa-radioen med de ønskede parametrene (frekvens, båndbredde, spredningsfaktor m.m.)
  3. Beskrive sending og mottak av brukerdata i henhold til anvendelsen av utstyret.

Under vises et bilde av Thonny som har et lite program kalt hello_send.py. Alt programmet gjør er å sende en “Hello world”-melding hvert 5. sekund.

Testprogrammets enkelte deler

Her vil testprogrammets deler vises og forklares i kommentarsetningene:

# Importere nødvendige biblioteksmoduler
from time import sleep
from lora import LoRa
from machine import Pin, SPI

# Deklarere hvilke tilkoplingspunkter for SPI
# Merk av dette er GP-tallene, ikke pin-nummer
SCK  = 18
MOSI = 19
MISO = 16
# Chip select
CS   = 17
# Receive IRQ
RX   = 20

# Setup SPI-bussen med riktige parametre
spi = SPI(
    0,
    baudrate=10000000,
    sck=Pin(SCK, Pin.OUT, Pin.PULL_DOWN),
    mosi=Pin(MOSI, Pin.OUT, Pin.PULL_UP),
    miso=Pin(MISO, Pin.IN, Pin.PULL_UP),
)
spi.init()

# Beskrivelse av LoRa-parametrene
lora = LoRa(
    spi,
    cs=Pin(CS, Pin.OUT),
    rx=Pin(RX, Pin.IN),
    frequency=433.660,
    bandwidth=20800,
    spreading_factor=10,
    coding_rate=8,
    preamble_length=4,
    crc=True,
    tx_power=17
)

# Nå er alt klart for sending og mottak
c = 0
while True:
    print(c," Sending a message")
    c = c+1
    lora.send('Hello world!')
    sleep(5)

For å motta meldinger gjennom lora.py må vi skrive litt ekstra kode for å håndtere det forholdet at meldinger kan mottas når som helst, og vi trenger å skrive en event handler for slike hendelser. Den viste handleren nedenfor viser kun meldingsinnholdet på konsollet, i praksis vil det være omfattende programlogikk der.

# Receive event handler
def handler(x):
    print("received:",x.decode())
    beep(0.2) # Metoden beep er ikke vist her

# Set handler til å kalles ved mottatte LoRa-meldinger
lora.on_recv(handler)

# Put module in recv mode
lora.recv()

# Loop forever
while True:
    pass

Demonstrasjonsvideo av LoRa-kommunikasjon

I videoen nedenfor vises bruk av disse enkle programmene for å overføre meldinger gjennom LoRa. Dette er også oppsettet som er brukt for å anslå rekkevidden til signalet, som beskrevet senere i artikkelen.

Lovlig bruk av LoRa innenfor myndighetenes regelverk

Bruk av radiosendere er strengt regulert i Norge, og det er på sin plass med noen vurderinger om hvordan LoRa-sendinger kan foregå på lovlig vis. Det er to regelverk som kommer til anvendelse: Fribruksforskriften, som stiller krav til radiosendinger for allmenheten, og Forskrift om radioamatørlisens, som angir krav til radiosendinger for personer med radioamatørlisens (radioamatørlisens tildeles personer som har bestått en såkalt lisensprøve).

La oss først ta for oss vilkårene i Fribruksforskriften, siden den vedkommer alle. Kapittel IV (§11) lister opp en del frekvenser som kan brukes, med oppgitt maksimal utstrålt effekt, båndbredde og sendetid.

Seksjon (1) angir et frekvensområde med maksimal utstrålt effekt på 25 mW (14 dBm), og et minimumskrav til båndbredden på 600 kHz. Dette er større enn maksimal båndbredde for LoRa, noe som må forstås dit hen at LoRa ikke kan benyttes.

Seksjon (2) angir et frekvensområde med maksimal utstrålt effekt på 500 mW (27 dBm) en maskimal båndbredde på 200 kHz, ingen krav til minimums båndbredde. Det er derimot krav til automatisk kontroll av utstrålt effekt, og det er ikke klart om LoRa kan møte dette kravet. Med LoRas standardverdier for båndbredde vil det være 125 kHz som er maksimalt tilatt.

Seksjonene (3)-(6) Påbyr alle mobile/nomadiske stasjoner å være “under kontroll” av et aksesspunkt. Siden LoRa ikke baserer seg på bruk av aksesspunkt slik som f.eks. Wlan gjør, er dette kravet ikke mulig å etterkomme.

Med en litt “lempelig” tolkning av bestemmelsene i seksjon (2) later det til at frekvensene 865,6–865,8 MHz, 866,2–866,4 MHz, 866,8–867,0 MHz og 867,4–867,6 MHz kan benyttes med 125 kHz båndbredde, og med utstrålt effekt en del lavere enn 500 mW (for å kompensere for kravet til automatisk effektkontroll). Merk at kravet om maksimal sendetid på 2,5-10 prosent ikke kan konfigureres i LoRa-radioen, men må besørges av overføringsprotokollene i den aktuelle anvendelsen. Også at det er LoRa-radioen av betegnelsen SX1276 som kan operere i dette frekvensområdet.

For brukere med radioamatørlisens gjelder §7 i Forskrift om radioamatørlisens, som angir maksimal båndbredde og utstrålt effekt for de ulike frekvensbåndene. Det eneste aktuelle frekvensbånd for LoRa er 432-438 MHz, hvor maksimal kanabåndbredde er 30 kHz. Det er mulig å konfigurere LoRa for en båndbredde på 20,8 kHz. NRRL’s (Norsk Radio Relæ Liga, landsorganisasjonen for radioamatører) båndplan angir området 433,600-434,000 MHz som egnet for digital dataoverføring, og da med utstrålt effekt opptil 300 W.

Med en ny bestemmelse gjeldene fra 1.november 2024 tillater myndighetene nå en båndbredde på 200 kHz i dette frekvensområdet. Anbefalte frekvenser for to slike kanaler er 433,775 MHz og 433,900 MHz. Radioamatører kan derfor benytte disse to frekvensene til LoRa med en båndbredde på 125 kHz og utstrålt effekt opptil 300 watt.

Begge typene LoRa-radioer (SX1276 og SX1278) kan operere på 433 MHz. For å oppnå høyere effekt enn 100 mW må et ekstra forsterkertrinn benyttes.

Merk at det finnes LoRa-moduler som ikke tillater konfigurasjon av båndbredden, bl.a. E32-modulene fra Ebyte. Disse er fast konfigurert til 500 kHz båndbredde og er uegnet for å operere på lovlige vilkår.

Hvorfor er dette robust?

LoRa kan sende over lange distanser med relativt lav effekt fordi den sender med lav bitrate og sprer radioenergien over mange frekvenser. Dette gir mottakeren mulighet til å bruke mer tid på å analysere det mottatte signalet og eliminere bakgrunnsstøy, og forstyrrelser fra andre kilder vil ikke hindre bit-overføringen med mindre hele båndbredden blir forstyrret.

Med ulike verdier av skaleringsfaktoren SF kan det gjøres en avveining mellom rekkevidde og bitrate. En økning av SF med 1 vil halvere symbolraten og gi mottakeren dobbelt så mye tid til å analysere signalet (gi en forbedret følsomhet med 2,5 dB) , men også gi en tilnærmet halvering av bitraten.

Et praktisk eksperiment ble gjennomført hvor et 100 mW signal ble sendt ut via en enkel mobilantenne satt på husveggen, og mottageren ble plassert i en bil koplet til en mobilantenne på biltaket (se bilde). Med denne konfigurasjonen (BW=20,8 kHz, SF=10) fikk mottakeren mottatt feilfrie meldinger i kupert terreng opptil 15 km avstand. Programmene brukt til dette eksperimentet er de samme som vist i videoen tidligere i artikkelen.

Takantennen brukt av LoRa-mottakeren, ca 15 km unna senderen.

Interessante anvendelser for radioamatører

LoRa kan neppe løse andre oppgaver enn f.eks. bruk av AX.25-modulasjon (1200 bits per sekund i en smalbåndskanal) mellom UHF-radioer, men kan derimot løse oppgaver med enklere og billigere utstyr med mye lavere vekt og lavere strømforbruk.

En nærliggende LoRa-anvendelse er lokasjonstjenesten APRS, som kan vise et kart med posisjonen til APRS-sendere i et stort område. Vanligvis brukes hele VHF-radioer til dette formålet, men med LoRa blir dette utstyret så billig og lite at det kan bygges inn i halsbåndet til en jakthund, eller på et modellfly.

LoRa er også velegnet for å bygge mesh-nett (hvor LoRa-stasjonene vidersender sendinger for andre) for formidling av meldinger m.m. Prosjektet Meshtastic er et eksempel på et slikt system.

Men vel så viktig er den muligheten mikrokontrolleren og bruk av MicroPython skaper til å designe egne protokoller og egne systemer for synlighet og samarbeid. Med det programmeringsverktøyet og biblioteksmodulen som her er vist, er det relativt enkelt å eksperimentere med egendesignede protokoller for innovative og nyskapende anvendelser.

Neighbourhood noise in the radio spectrum

 1,174 total views

Due to planned maintenance, the electric power in my neighbourhood was disconnected for hours today. That offered the opportunity to study the effect of background noise emitted from electric appliances.

(c) Anders Fongen, Oct 2024

When listening to the radio on the HF band, one can hear a lot of background noise which reduces the clarity of the reception. The emitters of the noise can be near or far away, which is interesting to distinguish, since the sources near you can be eliminated, most easily by packing your radio gear and drive somewhere else, to your cabin or into the mountains.

The neighbourhood which I live in had a power outage today, due to planned and announced maintenance. The affected area was small and included only 32 households (see map below). This disconnection gave me an opportunity to study the effect of radio spectrum noise (particularly in the HF region) from this area. The Xiegu G90 was powered by a battery and conncted to the outdoor antenna, then tuned to the 20 meter band in USB mode.

The map showing the extent of the affected households

I enjoyed the clarity of the reception and had a few QSOs before the electric power was expected to return. The radio display was filmed that moment when these 32 households again was able to power their cable modems, dimmers, plasma TVs, routers etc., and the difference in the receiver conditions was remarkable, which can be seen in the 20 seconds clip below.

Please observe the waterfall display as the power returns, and how excellent signals become completely drowned in the elevated noise floor, totally invisible in the waterfall.

Video recording of the moment when the power returned to the neighbourhood

After the power had returned I also switched off the main circuit breaker in the house to informally identify how much of the noise was coming from my own home. Hmm, quite a lot, since I have two wireless routers, ethernet switches, and dozens of wifi-connected house appliances. They are, like appliances in my neighbours’ house, essential for the daily life of our home, and cannot be switched off anytime.

From this experiment, I now realize how much the reception quality can be improved by taking the radio gear somewhere else (my home town is surrounded by mountain areas easily accesible by car) and operate a mobile/portable configuration.

Rattlegram: Enkel meldingstjeneste for mange typer radioer

 1,229 total views

Dette blir en kort artikkel om en app (Android og IOS) som tilbyr en meldingsutveksling over alle slags radioer som har et talesamband.

(c) 2024 Anders Fongen

Appen heter Rattlegram, og gjør én eneste jobb: Konverterer tekstmeldinger til et lydsignal, og omvendt. Den enkleste måten å demonstrere appen på er å legge to enheter (Android eller IOS) side om side og la begge kjøre appen. Det som skrives inn på den ene enheten, vises på den andre, og vi hører klart lydsignalet om bærer innholdet av meldingen. Man kan også eksperimentere med ulik avstand mellom enhetene og varierende bakgrunnsstøy for å danne seg et inntrykk av hvor robust kommunikasjonen er.

Merk allerede nå at mobilenheten aldri bruker sine radiosendere: Ingen WiFi, Bluetooth eller 5G. Ingen av eksperimentene her forutsetter mobildekning på stedet.

Det neste trinnet i eksperimenteringen er å sende via to transceivere som hver er innen hørevidde for sin enhet som kjører rattlegram. Først tester vi med noen lisensfrie UHF-radioer fra Biltema, for å vise at radioamatørutstyr ikke er påkrevet for å utveksle tekstmeldinger. For å sende en melding holdes sendeknappen (PTT) på radioen inne mens sendefunksjonen på appen aktiveres. På mottagersiden ligger radioen og Andoid/IOS-enheten ved siden av hverandre og trenger ingen betjening for å motta meldinger.

Her er en video hvor dette blir demonstrert:

Siden forsøker vi det samme eksperimentet med to VHF-transceivere for amatørbåndet (144 MHz), og oppnår det samme resultatet.

Fordelen med “ubetjent” mottak av meldinger

Hva er nå fordelen med en slik meldingsutveksling fremfor ganske enkelt å sende talemeldinger? Den mest opplagte fordelen er at mottageren trenger ikke å være betjent, men kan samle opp meldinger til neste gang operatøren kommer innom og sjekker displayet. En annen er muligheten for å sende komplisert tekstinnhold, f.eks. en url, og innhold fra copy&paste uten behov for bokstavering over et talesamband. En tredje er at sendte og mottatte meldinger blir lagt i en liste som fungerer som en logg over meldingsutvekslingen.

Et tenkt brukstilfelle er slik: Operatørene har alle radioene stand by i lyttemodus, og med Rattlegram på en mobil ved siden av. Dersom operatøren må forlate radiostasjonen for et stund, vil mobilenheten i mellomtiden samle opp mottatte meldinger og vise dem i listen. En stasjon A som anroper stasjon B uten å få svar, kan derfor følge opp med en Rattlegram-melding med innholdet “Gjør et oppkall når du er tilbake” eller lignende.

Parrot-funksjonen: Digipeater

I et tredje eksperiment ble “parrot”-funksjonen i Rattlegram undersøkt. Med denne funksjonen aktivert vil mottatte meldinger sendes ut igjen etter noen sekunder. En lik funksjon forvisser avsenderen om at meldingen er korrekt mottatt, og den gjør det mulig med indirekte overføring av melding via en digipeater (på en fjelltopp el.lign) mellom parter som ikke har direkte radiokontakt.

En slik funksjon forutsetter at radiosenderen kan sende ubetjent, uten at noen trykker inn PTT-knappen. Appen har ingen mulighet for å styre en PTT-funksjon, så radioen må settes opp med VOX-kontroll (sending starter når mikrofonen detekterer lyd). Radioen kan fortsatt være akustisk koplet til mobilenheten (se bilde), men i dette eksperimentet måtte følsomheten på radiomikrofonen settes til høyest følsomhet, og mobilenheten måtte stille høyttaleren på full styrke og plasseres nærmest mulig radioens mikrofon.

Akustisk kopling mellom radio og mobilenheten. Radioen må konfigureres til VOX-kontroll av senderen.

Et annet alternativ er å kople en kabel mellom radio og mobilenheten, muligens via et eksternt lydkort som koples til mobilenhetens USB-port med en OTG-kabel. Her er det en del plunder som venter, så det kan kreve litt prøving og feiling før dette fungere som ønsket. En kablet konfigurasjon er vist i videoen nedenfor, og i dette tilfellet ble det valgt å bruke to radioer for henholdsvis sending og mottak. En opplagt fordel med en kablet forbindelse er at operasjonen blir lydløs og mindre følsom for annen støy i rommet.

Her vises en video som demonstrerer digipeater-konfigurasjon av Rattlegram:

Systemdiagram

På bildet nedenfor vises et slags systemdiagram, hentet fra Ribbit-prosjektet, som står bak Rattlegram-appen. Den viser hvordan to mobilenheter (uten bruk av 5G, WiFi eller BT) kan utveksle meldinger gjennom radioer (akustisk koplet eller kablet) med direkte link mellom seg, eller via en talerepeater eller digipeater. Skissen viser også en mulighet for å bruke mobilenhetens egen 5G-radio, men det er ikke implementert i denne versjonen av Rattlegram.

Systemskisse for ulike måter Rattlegram kan sende og motta meldinger.

Hvilke radioforbindelser virker/virker ikke?

Rattlegram benytter en såkalt OFDM-modulasjon og såkalt feilrettende koder for å gjøre overføringen robust og effektiv. Det oppnås en bitrate på noe over 2 kbit/sekund, noe er veldig bra. Men erfaringene med ulike radioer og modulasjonstyper viser at mikrofon og høyttaler bør være av god kvalitet med god lydgjengivelse.

  • En DMR-link er sterkt komprimert og gir kun forståelig tale med dårlig lydkvalitet, og viser seg ikke å fungere for Rattlegram, noe som ikke er overraskende.
  • En FM-link i VHF- (145 MHz) og UHF-båndet (433 MHz) virker, som vist i eksperimentvideoene.
  • En FM-link via en lokal VHF/UHF crossband-repeater fungerer fint, som ventet
  • En FM-link via en “offentlig” VHF-repeater fungerte ikke, skyldtes muligens for svakt signal
  • Overføring via en HF-link fungerer fint med FM- eller USB-modulasjon på frekvensene 7-29 MHz. De to HF-transceiverne sto like ved hverandre, så en link med “realistisk” signal-støy forhold ble ikke testet.

Mottak og bruk av ADS-B signaler fra fly

 1,643 total views,  1 views today

I denne artikkelen beskriver jeg hvordan det er mulig å ta imot radiosignaler fra fly med ADS-B meldinger, og hvilken informasjon disse meldingene inneholder.

(c) Anders Fongen, februar 2024

Fly i normal trafikk sender ut radiosignaler med meldinger om flight-id., posisjon, høyde, fart og retning. Dette skjer i et meldingsformat som kalles ADS-B og er en digital transmisjon på frekvensen 1080 MHz. Dette signalet brukes av luftkontrollen som supplement til radar, og tjenester som Flightradar24 benytter også i stor grad disse radiosignalene.

Kan du ha interesse av å bruke disse signalene? Selv har jeg planer om å bruke fly som reflektorer av radiosignaler, og på den måten utvide rekkevidden av VHF/UHF-signaler over horisonten. Da trenger jeg å vite hvordan antennen skal stilles for å peke mot flyet, og jeg må derfor vite hvor det befinner seg til enhver tid.

Hva du trenger for å motta ADS-B

  • En SDR mottaker av typen RTL-SDR. De finnes på Ebay fra en hundrelapp og oppover. De selges ofte som utstyr for å kunne motta digital TV på PC, men egner seg til mange andre formål også.
  • En Linux-maskin, gjerne en Raspberry Pi. Har du en gammel PC stående som ikke brukes og som har en USB port og nettverksadapter (WLAN eller Ethernet), så bruk gjerne den. Du vil trenge litt Linux-erfaring for å gjennomføre det som blir beskrevet her.
  • Noe gratis programvare som lastes ned fra Internet, bl.a. dump1090.

Oversikt over konfigurasjonen som skal vises her

  1. Radiosignalet fra fly mottas av SDR-dongelen som er koplet til en Linux-maskinens USB-port.
  2. Fra SDR går et “råsignal” (I/Q-signalet) til Linux-maskinen (grønn pil), hvor programmet dump1090 dekoder signalet og henter ut meldingene. Disse meldingene, gjengitt på såkalt SBS-1 format, sendes ut fra Linux-maskinen med TCP-protokoll på port 30003 (rød pil).
  3. Meldingene på SBS-1 format kan leses med et program som man kan skrive selv etter hvilke ønsker man har. Jeg har valgt å lage et Python-program for en Raspberry Pico W mikrokontroller som henter ut flyenes løpende posisjon (lengdegrad, breddegrad, høyde) og regne ut retningen til en direktiv antenne som skal følge flyet.
  4. Raspberry Pico lager elektriske signaler for å styre to motorer på et enkel platform (blå pil) for å stille inn ønsket retning og vinkel (azimuth og elevation).

Konfigurasjon av Raspberry pi (2)

Komponent (2) skal ta imot I/Q-signaler fra SDR-dongelen, dekode ADS-B meldingene som overføres, og presentere data på SBS-1 format gjennom en TCP-forbindelse. For dette trenges en enkel Linux-maskin som må konfigureres for dette formålet. Den følgende beskrivelsen tar utgangspunkt i en Raspberry Pi v.3, men fremgangsmåten blir nokså lik også for andre type Linux. Sørg for at Linux-versjonen er nylig oppdatert.

Følgende kommandoer kan gis for å installere drivere og dump1090-programmet:

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install librtlsdr-dev
$ sudo apt install rtl-sdr
$ git clone https://github.com/antirez/dump1090.git dump1090
$ cd dump1090
$ make

Evt. feilmeldinger følges opp og rettes. På katalogen dump1090 ligger nå programmet dump1090 som startes med kommandoen ./dump1090 --net.

SDR-dongelen kan nå koples til maskinens USB-port og en egnet antenne, slik som vist på figuren. Deretter kan dump1090-programmet startes. Det gir ingen løpende utdata til skjermen, man overvåker utdata på metoden som er vist nedenfor.

Utdata fra dump1090

Som vist på figuren over har vi satt opp dump1090 til å sende ut data i SBS-1 format til TCP-port 30003. Med programmet netcat kan vi ta en titt på hvordan dataene ser ut, og gjøre oss opp en mening om hvordan de kan behandles. Ta en titt på denne videoen:

Det er i hovedsak opplysninger om posisjon og flight-id som er at interesse for denne anvendelsen, men data om retning og fart er også tilgjengelig.

Analyse av SBS-1 data og beregning av antenneretning (3)

Figuren over viser hvordan utdata fra dump1090 overføres via TCP-protokoll til alle som ønsker det (rød pil). Figuren viser derfor at flere ulike anvendelser kan hente disse dataene fra samme dump1090-instans.

I det eksperimentet som beskrives her, skjer denne bearbeidingen i en Raspberry Pico W, som er en mikrokontroller med WLAN-grensesnitt og som kan programmeres i Micropython. Programkoden i denne mikrokontrolleren kan deles i tre deler:

  1. Et hovedprogram som etablerer en TCP-forbindelse til dump1090-noden (2), kaller så på Python-moduler for analyse, beregning og antennestyring
  2. En modul for å analysere SBS-1 melding for posisjon og identifikasjon av fly, og for å beregne antenneretning til flyet.
  3. En modul som mottar opplysninger om antenneretning og styrer servomotorene på antenneplattformen i henhold til disse opplysningene.

1 – Hovedprogram

Hovedprogrammet initialiserer TCP-forbindelsen, WLAN-adapteret, I2C-bussen og oppretter nødvendige objekter for de påfølgende operasjonene. Slik ser programkoden ut:

from wlan_config import wlan_config # WLAN configuration module
from AzElPlatform import AzElPlatform # Az-El antenna control
from AzElCalculator import AzElCalculator
import socket
from machine import Pin, I2C
import ssd1306

# using default address 0x3C
# TODO change GPIO numbers if necessary
i2c = I2C(0,sda=Pin(8), scl=Pin(9))
display = ssd1306.SSD1306_I2C(128, 64, i2c)

# Configure wlan
wlan_config()

# Make network tocket and connect to ads-b listener
sock = socket.socket()

# TODO change IP address to the actual dump1090 node
sock.connect(("192.168.2.11",30003))

# Configure bearing calculator (lat,lon,alt)
# TODO Replace numbers with your own location
azelcalc = AzElCalculator(61.1353,10.4419,253)

# Initialize platform motor control
# TODO change numbers to your own use of GPIO ports
azelplat = AzElPlatform(16,17)

# Start reading ads-b messages
while True:
    message = sock.readline().decode()
    result = azelcalc.analyzeMessage(message)
    if result != None:
        print(result) # For debugging only
        
        # If flightId is present, send to OLED display
        flightId = result['flightid']
        if flightId != None:
            distance = int(result['distance']/1000)
            display.fill(0)
            display.text('%s-%d km'%(flightId,distance),5,8)
        else:
            display.fill(0)
        display.show()
        # Find azimuth and elevation from result
        azimuth = float(result['azimuth'])
        elevation = float(result['elevation'])
        # Point antenna in that direction
        azelplat.setDirection(int(azimuth),int(elevation))

Deler av programkoden styrer et OLED-display for å vise flight-id og avstand til fly som blir fulgt av antennen. Disse kan kommenteres bort om dette er uten interesse.

Modulen wlan_config som importeres her er presentert i en annen blogg-artikkel: WLAN-konfigurasjon i Raspberry Pico W. Der vises hvordan wlan-adapteret kan konfigureres uten å skrive nettverkspassordet inn i koden.

2 – Analyse og behandling av SBS-1 utdata, beregningav retning

Metoden analyzeMessage() i modulen AzElCalculator mottar en SBS-1 melding som parameter og henter ut flight-id og posisjonsdata fra den. Programmet beregner så retningen for en antenne som skal følge dette flyet, i form av horisontal og vertikal vinkel (Azimuth og Elevation). For denne beregningen brukes Python-modulen AltAzRange som kan hentes fra denne adressen. Programkoden for AzElCalculator ser slik ut (merk at noen av linjene er lange og er brukket i flere deler):

# Receive SBS-1 message, find position of aircraft and
# calculate azimuth and elevation for the direction to it
from AltAzRange import AltAzimuthRange
class AzElCalculator:
    def __init__(self,myLatitude,myLongitude,myAltitude):
        AltAzimuthRange.default_observer(myLatitude,myLongitude,myAltitude)
        self.airplane=AltAzimuthRange()
        self.flightId = [(None,None),(None,None),(None,None),(None,None),(None,None)]
        
    def analyzeMessage(self,messageLine):
        elements = messageLine.split(",")
        
        # ES Airborne Position Message
        if (elements[1] == '3'):
            icao = elements[4]
            altitude = elements[11]
            if altitude == '': return None
            latitude = elements[14]
            if latitude == '': return None
            longitude = elements[15]
            if longitude == '': return None
            self.airplane.target(float(latitude),float(longitude),float(altitude)*0.3048)
            # Observe that the position is not returned, only the direction
            result = self.airplane.calculate()
            result['icao'] = icao
            result['flightid'] = self.getFlightId(icao)
            return result
        # ES Identification and Category
        elif (elements[1] == '1'):
            icao = elements[4]
            flightid = elements[10].strip()
            if flightid == '': return None
            self.storeFlightId(icao,flightid)
            return None
        # ES Airborne Velocity Message
        elif (elements[1] == '4'):
            result = dict()
            result['icao'] = elements[4]
            result['groundspeed'] = elements[12]
            result['track'] = elements[13]
            result['flightid'] = self.getFlightId(result['icao'])
            # We can return the "result" object, but choose not to
            # return result # is this data is needed
            return None

    def storeFlightId(self,icao,flightId):
        if self.getFlightId(icao) == None:
            # Add flight id to list
            self.flightId.insert(0,(icao,flightId))
            self.flightId.pop() # Kill the oldest entry
    
    def getFlightId(self,icao):
        for (i,f) in self.flightId:
            if i == icao: return f
        return None

3- Styre en direktiv antenne mot flyet

Oppgaven med programmering av to servomotorer for å styre en antenne i to akser (horisontalt og vertikalt) skjer med modulen AzElPlatform som er presentert i en tidligere blogg-artikkel: Styring av servomotor fra Raspberry Pico og Micropython. For ordens skyld gjengis programkoden er:

# Python class to control a simple Azimuth-Elevation
# platform. It uses two SG90 servo motors for the two
# axes. Since they only rotate 180 degrees, the 180
# degree range of the elevation rotor is used to cover
# the left half (180-359 degrees) of the azimuth

from machine import Pin, PWM
class AzElPlatform:

    def __init__(self,azrotor, elrotor):
        self.azport = PWM(Pin(azrotor))
        self.elport = PWM(Pin(elrotor))

        self.azport.freq(50)
        self.elport.freq(50)

    def setDirection(self,az,el): # Angle in degrees
        # Check parameters: 0-359 and 0-90 allowed
        if not az in range(0,360): return
        if not el in range(0,91): return
        if az>180:
            az = az-180
            el = 180-el # Bend elevation backwards for left half
        # Experimentally established values for
        # Calculation of duty cycles corresponding
        # to rotor angles
        dutyAz = 7800 - az * 6600/180
        dutyEl = el * 7000/180 + 1200

        self.azport.duty_u16(int(dutyAz))
        self.elport.duty_u16(int(dutyEl))
Raspberry Pico W med OLED display viser flight-id NOZ191 med avstand 78 km og følger dette flyet med en direktiv antenne.

Oppsummering

I denne blogg-artikkelen har jeg presentert noen aktiviteter som inkluderer bruk av Software Defined Radio, avansert digital dekoding av radiosignaler fra fly, noe programmering og beregninger på posisjonsdata, og styring av servomotorer for antenner.

Mange av disse emnene vil være av interesse i andre anvendelser enn akkurat den som her er presentert. Bruk gjerne delløsningene i denne artikkelen til dine egne prosjekter, og send meg en melding om resultatene blir interessante.

Morsetrener på en Micro:Bit

 1,008 total views,  1 views today

Med dette utstyret kan man trene på sending og mottak av morsesignaler sammen med andre. Hver deltaker trenger en Micro:Bit (version 2), og programvaren finner du nederst på siden.

Her demonstrerer jeg hvordan Micro:Bit kan brukes for å sende og motta morse

Med morsealfabetet kan du sende og motta tekst ved å overføre korte og lange pipesignaler. På 1800-tallet kom telegraf-tjenesten i gang i Norge, fra nord til sør ble ledninger trukket som kunne overføre elektrisk strøm for dette formålet. Den gang fantes ikke radio, og heller ikke elektronikk som kunne overføre et talesignal. Profesjonelle operatører som var trent i bruk av morse sørget for at telegrammer ble sendt og mottatt, skrevet ned på papir med vanlige bokstaver og levert til mottakeren med bud.

Etter hver ble radiosenderen oppfunnet, men fortsatt uten muligheter for å overføre tale. Morsesignaler var også her i vanlig bruk mellom skip og til landstasjoner.

Da radioene ble utviklet til også å overføre tale, fortsatte allikevel morsesignaler å være i vanlig bruk. Det viste seg at et system med pipetoner var lettere å oppfatte når det var dårlig radioforbindelse, og man trengte mindre effekt for å få frem meldingene. En radiosender med mindre effekt er lettere og billigere, og egner seg i bærbart utstyr.

Mens profesjonell bruk av morse mellom skip og landstasjoner ble avviklet i år 2000, er det fortsatt mange radioamatører som bruker morse, og det er egne frekvensbånd som brukes til dette formål. Bruk av morse er

  • morsomt, fordi det krever øvelse
  • lett å kombinere med selvbygget radioutstyr
  • effektivt, signalene når over lange avstander med lav effekt og enkle antenner

Morsetrening

Morsealfabetet er lett å være, det finner du mange steder på nettet. Her ser du en slik tabell hvor de korte pipesignalene er vist som prikker, de lange som streker.

Det er grunner til at du ikke anbefales å pugge morse som prikker og streker, fordi det kommer til å hindre deg i å oppfatte signalene som bokstaver og ord når hastigheten øker. Det er mye bra programvare gratis tilgjengelig som trener deg i nettopp dette.

Men det er også viktig å trene morse sammen med andre, hvor dere kan sende til hverandre på skift og lage en faktisk samtale. Slik trening vil lære dere å bruke de vanligste forkortelsene, be om repetisjon av deler av meldingen ved behov osv. Dessuten er det morsommere å lære noe nytt sammen med andre. Om du allerede er radioamatør med tilgang til en radiostasjon kan du øve med virkelige radiosendere, i motsatt fall må du bruke andre overføringsmekanismer, som f.eks.

  • En internet taletjeneste (Messenger, Zoom, Skype m.fl.)
  • Lydsignaler i luft

I begge disse tilfellene ovenfor trenger du en morsenøkkel og en “piper” som avgir et pipesignal når du trykker ned spaken på morsenøkkelen. Som du ser her er en morsenøkkel ganske dyr, men du kan selvsagt lagt din egen fordi det er bare en enkel elektrisk bryter.

Alt i ett med Micro:Bit v2

Micro:Bit er en mikrokontroller som inkluderer en del brytere, sensorer, radio, lamper og lydgivere og koster ca kr.400,- (version 2 kreves for dette formålet). Den kan programmeres og brukes til mange formål, og vi har laget programvare slik at den kan brukes til morsetrening. Programmet er gratis og kan lastes ned fra denne siden via en link lenger ned.

  • Bruker knappene på kretskortet som morsenøkkel
  • Brukere lydgiver og lamper på kretskortet for å vise/spille morsesignaler
  • Bruker den innebygde radioen for at flere deltakere kan sende og motta signaler
  • En “virkelig” morsenøkkel kan koples til kretskortet om ønskelig

Med Micro:Bit v2 og den nødvendige programvaren har en gruppe med deltakere alt de trenger for å sende og motta morsesignaler over radio (men med kort rekkevidde, opp til ca 10 meter).

Innlasting av programvaren

  1. Last ned filen CWtransceiver.hex
  2. Kople MicroBit til PC med en USB-kabel
  3. Nå vil det vises en ny “disk” i FileExplorer, kalt MICROBIT
  4. Kopiere CWtransceiver.hex til denne “disken” (drag and drop i FileExplorer)

For å teste at programvaren er riktig installert, trykk ned Button A (på venstre side av kretskortet. Da skal du høre en pipetone.

Bruksanvisning for morsetreneren

  1. Du kan bruke treneren alene for å øve sending av morsetegn. Da bruker du Button A for å lage pipelyd.
  2. Om flere Micro:Bit-enheter er i nærheten av hverandre, vil signaler som sendes på en enhet spilles av med pipelyder også på de andre enhetene. Der vil også led-lampene på kretskortet lyse opp i samme takt.
  3. Om du berører touch-sensoren (på forsiden av kretskortet like ved USB-kontakten, den har to prikker med en oval rundt), vil LED-displayet skiftevis vise “P” og “S”. Om du vil sende morse slik som vist ovenfor (kalt “Straight Key”) skal det vises en “S” i displayet. Dersom det står en “P” i displayet vil Button A og Button B utgjøre en såkalt paddle keyer. Dette er en mer effektiv måte å sende morsetegn på, men den krever litt øvelse for å beherske. Demonstrasjonsvideoen i starten viser hvordan den kan brukes.
    * Button A gir en serie med prikker mens den holdes nede
    * Button B gir en serie med streker mens den holdes nede
    * Begge knappene nedtrykket gir en serie med skiftevis prikk og strek
    * Mens Button A holdes nede, kan Button B gis et kort trykk. Da vil streken bli sendt ferdig, deretter en prikk før strekene igjen blir sendt. Tilsvarende gjelder i motsatt retning.
  4. Om du ønsker å endre hastigheten på prikker og streker i “P” (paddle keyer) innstillingen gjør du som følger:
    * Hold Button A nede slik at du hører en serie prikker bli sendt.
    * Snu kretskortet på høykant til høyre (slik at Button A er øverst). Da vises en høyrepil i LED-displayet og du hører at hastigheten på prikkene øker. Rett opp kretskortet når hastigheten er passe. Tilsvarende senkes hastigheten om du snur kretskortet til venstre (da vises en venstrepil).