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
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.
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.
Antennens utseendeNærbilde av antennerotenBest oppnådde SWR-verdi ved 14 MHz: 1,5Best oppnådde SWR-verdi ved 18 MHz: 1,6Best oppnådde SWR-verdi ved 21 MHz: 1,24Best oppnådde SWR-verdi ved 25 MHz: 1,2Best oppnådde SWR-verdi ved 28 MHz: 1,6Best 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.
Hele radiostasjone får plass i denne tasken.Radiostasjonen inne i bilen. Høyreklikk for å se morsenøkkelen.
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.
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.
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:
Beskrive hvilke tilkoplingspunkter på Raspberry Pico som skal brukes for å styre LoRa-radioen.
Sette opp LoRa-radioen med de ønskede parametrene (frekvens, båndbredde, spredningsfaktor m.m.)
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.
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.
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.
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
Radiosignalet fra fly mottas av SDR-dongelen som er koplet til en Linux-maskinens USB-port.
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).
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.
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:
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:
Et hovedprogram som etablerer en TCP-forbindelse til dump1090-noden (2), kaller så på Python-moduler for analyse, beregning og antennestyring
En modul for å analysere SBS-1 melding for posisjon og identifikasjon av fly, og for å beregne antenneretning til flyet.
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.
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).
Nå vil det vises en ny “disk” i FileExplorer, kalt MICROBIT
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
Du kan bruke treneren alene for å øve sending av morsetegn. Da bruker du Button A for å lage pipelyd.
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.
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.
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).
Abstract: The integration of a sensor network with services from voice communication, text messaging and Global Positioning System (GPS) creates opportunities for improved situational awareness, better safety for field operators, higher confidence in sensor readings and improved return on equipment investment. Digital Mobile Radio (DMR) has been the choice of communication technology for a series of experiments where these potentials have been investigated. Additional technology components used were mostly inexpensive and open source.
The article was published in the The Sixteenth International Conference on Sensor Technologies and Applications (SENSORCOMM 2022) October 2022, Lisbon Portugal.
Demonstration videos
Below are two demonstration videos from the integration experiment, view these if you are not into reading academic papers:
The first video shows how to integrate a DMR radio into an pub-sub network using the MQTT protocol.
Demonstration video from the integration experiment – pubsub intergation
The second video shows how two MMDVM units can provide routing of IP packets across a DMR radio link.
Demonstration video from the integration experiment – IP routing
This link allows you to download the source code in the form of a compressed tar file. Please observe that this is experimental code not meant for production, and:
The module gwtest.py is the root module, and the execution starts there
You will need to import the module dmr_utils3, paho-mqtt, netifaces, etc.
You will need to inspect the source code and modify values for ip-addresses, DMR-ids, UDP port number, MQTT topics etc.
You need to configure pi-star so that it connects to the Controller at its IP-address.
The code also includes code to route IP-packets over a DMR link. Un-comment this code if necessary, but this will require the program to run in root mode (sudo…)
If you make improvements and want to share them with me, you are welcome to contact me. Please accept that I cannot spend much time on advice and support otherwise.
Denne artikkelen vil presentere Digital Mobile Radio (DMR) og hvordan et sambandsnett kanutformes og betjenes med denne teknologien.
Anders Fongen, juni 2021
Innledende om sambandsnett
Med begrepet sambandsnett siktes det til kommunikasjonstjenester til støtte for redningsoperasjoner, katastrofearbeid, krigføring, store bygge- og anleggsprosjekter osv. Operasjonen kan være iverksatt av flere samarbeidende organisasjoner med et ledelseselement og et antall lag under denne ledelsen. Operasjoner er dynamiske, både med tanke på organisasjonens sammensetning av personell og fagområder, og med tanke på det geografiske området som omfattes av operasjonen.
Kommunikasjonsveiene i en operasjon er skjematisk vist på Figur 1 og kan inndeles på følgende måte:
Ordregivning omfatter beskjeder om ledelsesbeslutninger som gis nedover i organisasjonshierarkiet til et antall lag.
Situasjonsrapport omfatter beskjeder fra utførende lag til ledelsen som bygger opp et situasjonsbilde. Situasjonsrapporter kan bestå av posisjonsangivelser, personellopplysninger, ressursanmodninger, geografiske opplysninger osv.
Synkronisering er informasjon som utveksles mellom sideordnede elementer i organisasjonen for å støtte nødvendig samordning.
Figur 1 – Kommunikasjonsveier i en sambandsoperasjon
Innad i lagene er det også et mulig sambandsbehov som følger et lignende mønster, men er ikke vist på Figur 1. Et lag vil typisk ha en lagfører som er kontaktpunktet til ledelseselementet.
Ønskede egenskaper ved et sambandsnett
For å gi tilfredsstillende kommunikasjonstjenester til en dynamisk og sammensatt operasjon er det en del krav som et sambandsnett må oppfylle:
Kanatilgjengelighet – Når en melding (tale, data) skal sendes langs en av linjene som vist i Figur 1 er det nødvendig at en kanal er tilgjengelig, og at denne kanalen har kapasitet og egenskaper forøvrig for overføringen. Ofte vil kanalen være opptatt, og det er da av betydning at kanalen blir ledig tidsnok til at meldingen oppfyller sin hensikt.
Separasjon av meldingstyper – Dersom alle meldinger blir mottatt av alle radioer i operasjonen vil dette forstyrre uvedkommende personell. Det er et mål at mottatte meldinger skal være relevante og nyttige for mottakeren, og ikke bidra til distraksjoner og svekket fokus på oppgavene. For å oppnå dette må ulike meldingstyper gis ulik utbredelse i sambandsnettet.
Tilstrekkelig dekningsområde – Meldinger må kunne sendes til alle aktører i operasjonsområdet i henhold til meldingstype. Dette innebærer ikke at alle meldingstyper skal kunne mottas overalt, men kun av aktuelle mottakere av den gitte meldingstypen. Lag trenger f.eks. ikke å være innen rekkevidde for synkroniseringsmeldinger mellom ledelseselementer.
Trygghetsfunksjoner – For bedret personellsikkerhet er det ønskelig at det kan formidle nødsignaler, alarmer, og posisjoner. Slike meldinger har hast og må kunne prioriteres i nettet og være gjenstand for særskilt betjening i radioutstyret (alarm-knapp, “dødmanns”-knapp).
Sikring mot misbruk – Det er ønskelig at nettet er beskyttet mot inntrengning og avlytting av uvedkommende. Falske meldinger kan forstyrre operasjonen, og meldinger under en redningsoperasjon kan f.eks. inneholde sensitive helseopplysninger. Det er også ønskelig at alle meldinger vises med identifisert avsender.
Posisjonsangivelser – Mange radioer har innebygd GPS-mottaker og mulighet for å formidle sin posisjon på radiosambandet. Slike meldinger kan inngå i “flåtestyring” og i trygghetsfunksjoner.
Analog vs. digital transmisjon
Teknologien som skal presenteres i denne artikkelen benytter såkalt digital transmisjon, i motsetning til tradisjonelle radioer med analog (frekvensmodulert) transmisjon. Forskjellen på disse to formene er vist på Figur 2, hvor utstrålt radioenergi blir plottet langs en horisontal tidsakse.
Figur 2 – Analog vs. digital transmisjon
Analog transmisjon representerer et lydsignal, hvor amplituden (energinivået) i signalet kan ha et stort antall verdier. Forstyrrelser som oppstår under overføring vil påvirke det mottatte lydsignalet i form av forstyrrelser og støy. Jo lengre avstand det er mellom sender og mottaker jo dårligere vil kvaliteten på det mottatte lydsignalet være.
Digital transmisjon representerer en bitstrøm, og radiosignalet vil representere enten en 0-bit eller 1-bit. Forstyrrelser som oppstår under overføring kan i noen utstrekning rettes opp, fordi det er bare to mulige tilstander av signalet. Dette bidrar til at bitstrømmen overføres riktig også gjennom en dårlig radioforbindelse. Bitstrømmen som overføres kan inneholde et digitalisert lydsignal, tekst, posisjon, et digitalisert bilde m.m. Digital transmisjon kan derfor støtte mange ulike meldingsformer.
Figur 3 viser hvordan digital transmisjon presenterer et utmerket lydsignal mens signalet blir svakere, før det brått blir meget dårligere. Analog transmisjon gir et gradvis dårligere lydsignal etter hvert som avstanden øker.
Figur 3 – Oppfattet lydkvalitet for henholdsvis analog og digital transmisjon. Kilde: REPORT ITU-R M.2474-0
Digital Mobile Radio i hovedtrekk
Digital Mobile Radio (DMR) betegner en spesifikasjon for et digitalt radiosystem, laget av organisasjonen ETSI. Spesifikasjonen er åpen, dvs. at alle kan produsere radioutstyr uten å betale for en lisens, og det finnes derfor DMR-radioer å kjøpe fra mange ulike produsenter som i noen utstrekning kan brukes om hverandre i samme sambandsnett. Andre nøkkelegenskaper ved DMR er:
De bruker radiokanaler med båndbredde på 12.5 kHz. Man kan derfor bruke eksisterende FM-kanaler (altså frekvenser som er tildelt FM-samband) uten videre med DMR-radioer. Dette er en stor fordel for organisasjoner som allerede disponerer FM-kanaler til eksisterende sambandsutstyr. De trenger altså ikke søke om å få bruke andre frekvenser.
Hver radiofrekvens kan romme to talekanaler ved at de skiftevis sender/mottar i tidsluker på 30 millisekunder, slik som vist på Figur 4. De kan befordre helt uavhengige samtaler, eller gjøre det mulig å lytte og sende samtidig (kalt full dupleks, slik som i et telefonapparat).
Alle sendinger er adressert til enten en enkeltradio (til en DMR-id, se nedenfor) eller til en talegruppe, hvor alle medlemmer i talegruppen mottar sendingen.
Et sambandsnett kan basere seg på direkte forbindelser, hvor alle radioene er innen radiorekkevidde av hverandre, eller på bruk av repeatere, hvor radioene kommuniserer via en sentral radio på en fjelltopp el. lign.
Konkurranse mellom radioprodusentene presser prisene ned. En DMR-radio koster fra kr. 1000 og oppover.
Digital transmisjon åpner opp for mange tilleggstjenester, de er presentert i neste avsnitt.
Figur 4 – Tidsluker på en DMR-frekvens gir to uavhengige kanaler
Tilleggsfunksjoner i DMR
Utover arkitekturegenskapene som ble presentert i forrige avsnitt, spesifiserer DMR også en del funksjoner og tilleggstjenester som i varierende grad blir implementert i radioapparatene:
Tekstmeldinger – Radioapparater kan formidle korte tekstmeldinger som skrives inn på nummertastaturet og sendes til enkeltmottagere, evt. også til hele talegrupper. I motsetning til SMS i mobiltelefonnettet er det nødvendig at mottakeren befinner seg innen radiorekkevidde da det ikke er noen lagringstjeneste. Avsender kan spesifisere at meldingen skal kvitteres, og kan på den måten få en indikasjon på om meldingen ble levert.
Identifikasjon av radioer – Hver DMR-radio er konfigurert med en unik DMR-id som identifiserer avsender av en melding. Dersom radioen er utstyrt med en adresseliste vil radioen vise det tilhørende navnet, ikke id-nummeret. DMR-id kan også brukes for å gjøre direkte oppkall til enkeltradioer. Mange radioer kan enkelt sette sin egen DMR-id, så den er ikke egnet for å beskytte mot meldinger fra falske avsendere, men bidrar til å øke situasjonsforståelsen for de som deltar i operasjonen.
GPS-rapportering – mange radioer har en innebygget GPS-mottaker og kan rapportere sin posisjon på flere ulike måter: Som en ekstraopplysning knyttet til hver sending, eller regelmessig sendt til en bestemt adresse. I begge tilfeller kan dette bidra til bedre situasjonsforståelse: Ledelsen kan ha et kart med angitt posisjon for ulike personellfunksjoner, og ved direkte oppkall kan mottakeren få en angivelse av avstand og retning til avsenderen.
Alarm- og trygghetsfunksjoner – Radioene kan konfigureres med en alarmknapp, som sender en forutbestemt melding til en bestemt adresse når den trykkes inn. Radioen kan konfigureres til å la andre aktivisere senderen, slik ledelsen kan lytte inn fra radioen uten at den blir betjent. Radioen kan også utstyres med en “lone worker” funksjon: da må operatøren betjene radioen med jevne mellomrom, ellers sendes en alarmmelding. Dette minner om “dødmannsknappen” i visse typer utstyr.
Skjerming mot avlytting – Alle med en DMR-radio kan i prinsippet stille inn frekvens, tidsluker og talegrupper og lytte på sambandet. Dersom det er et behov for å beskytte seg mot dette kan man kryptere trafikken. Da må man legge inn kodenøkler i alle radioer, og kanalene settes opp til å benytte disse kodenøklene for sending og mottak. En uvedkommende DMR-radio uten riktige kodenøkler vil oppfatte disse sendingen kun som støy. Kryptering er egentlig ingen del av DMR-spesifikasjonen og radioprodusentene gjør dette på ulike måter. Kryptert trafikk kan ikke påregnes å fungere mellom radioer av ulikt fabrikat.
Datatrafikk – DMR-spesifikasjonen inkluderer støtte til overføring av data med IP-protokollen, men de enkle radioene tilbyr ikke noen mekanisme for å kople til en PC og sette opp et datanettverk via DMR-forbindelser. Det er også verd å merke seg at bitstrømmen i én tidsluke er 3600 bits per sekund, som er ganske lite for å støtte f.eks. overføring av bilder. I praksis må man se etter utstyr som kan spre trafikken på begge tidsluker og flere frekvenser, egenskaper som ikke er realistisk å finne i en håndholdt radio.
Separasjon av trafikktyper
Å ha én talekanal for alle funksjonene i en operasjon, der alle hører alt som blir sendt, er en dårlig idé. Personellet vil da måtte høre på en mengde meldinger som ikke vedkommer dem. Resultatet kan bli redusert oppmerksomhet på de mottatte meldingene, og dessuten distraksjon av det pågående arbeidet. Det er også viktig at kanalene ikke er for sterkt trafikkert, av hensyn til at hastemeldingene skal komme raskt frem.
Derfor skal sambandsnettet separere meldinger slik at de sendes til mottagere som har nytte av dem. Figur 1 viser nettopp hvordan de tre ulike veiene i sambandsnettet faller sammen med meldingstyper, og det er fornuftig å separere meldingtrafikken i henhold til disse skillelinjene.
Sambandsnettet har to kanaler for hver frekvens (delt i to tidsluker), og hver kanal kan logisk deles inn av talegrupper. Trafikk kan gå samtidig på kanalene, mens talegruppene deler kanalen mellom seg. Det betyr at mens en kanal sender melding for en talegruppe vil kanalen være opptatt og vil ikke kunne brukes for andre talegrupper. “Talegruppe” er forøvrig ikke noe som kjennetegner kanalen som sådan, men en adresse som påføres meldingen.
Likestilt med talegrupper er mottakeradresse. Dersom en sending påføres en mottakeradresse (i form av DMR-id) vil den kun mottas av denne mottakeren, men kanalen den sendes over er utilgjengelig for alle andre i dette tidsrommet.
Sambandsdesign innebærer å separere trafikktypene på frekvens, tidsluke, og talegruppe i henhold til krav om tilgjengelighet, trafikkvolum og dekningsområde.
Prinsipper for hvilke kanaler som talegrupper kan legges til:
Kanaler for trafikk med krav til kort responstid (hastemeldinger) bærer talegrupper med kortvarig trafikk: Anrop, alarmer, GPS-posisjoner
Kanaler for trafikk med krav til stort dekningsområde bærer talegrupper med nasjonal/regional trafikk: Myndighetskontakt, sivil/militær, luftfartøyer
Kanaler for trafikk med liten utbredelse (kun én repeater) bærer talegrupper med lokal trafikk: Innad i laget, mellom lagfører og kommandoplass
Utvidelse av dekningsområdet med repeatere
DMR-standarden legger stor vekt på bruk av repeatere i sambandsdesign: En repeater er en dobbel-radio som mottar radiosendinger på én frekvens og sender det samme signalet ut på en annen frekvens. Radioapparatene sender og mottar på motsatte frekvenser.
Slik kan alle radioer innen rekkevidde av repeateren kommunisere via repeateren, selv om de ikke er innen rekkevidde for hverandre. Repeateren kan plasseres høyt og fritt i terrenget og på denne måten skape et stort dekningsområde.
Radioer som er utenfor repeaterens dekningsområde kan derimot ikke kommunisere med hverandre, selv om de er innen rekkevidde av hverandre. Dette skyldes at de ikke lytter på den frekvensen de andre sender på. Man gjør seg dermed helt avhengig av at repeateren er innen rekkevidde og i drift.
Slik som beskrevet hittil er dette identisk med en repeater for et FM-samband. For DMR gjelder det samme prinsippet, men ekstrafunksjonene beskrevet ovenfor kommer i tillegg: Trafikken kan krypteres, deles inn i talegrupper, det kan sendes tekstmeldinger, GPS-posisjoner og alarmer. Og repeateren tilbyr to kanaler på frekvensen, basert på tidslukene.
DMR-radioer kan også settes opp med en funksjon kalt “talk around”. Om denne blir aktivert vil radioen gå over til direkte-forbindelse på repeaterens sendefrekvens (dvs. både motta og sende på denne frekvensen). Da kan andre høre dennes sendinger og selv aktivisere talk-around for å svare. Siden kan alle slå av funksjonen for å returnere til vanlig samband via repeateren. Talk-around lar dermed radioene kommunisere seg i mellom utenfor repeaterens dekningsområde, eller dersom repeateren faller ut av drift.
Linkede repeatere
Repeatere kan i tillegg til lokal utsending av mottatte signaler også videresende gjennom et digitalt nettverk til andre repeatere som igjen sender ut på sine frekvenser og sender videre til enda flere repeatere. Et slikt repeater-nett kan være svitsjet, i den forstand at forbindelsene mellom repeaterne kan koples opp og ned etter behov for større eller mindre dekningsområdet for sendingene.
I et digital nett hvor sendingene er knyttet til talegrupper er det selvsagt mulig å selektere talegrupper som skal videresendes til andre repeatere. På denne måten kan talegrupper gis ulik dekningsområde der hvor det er fornuftig.
Tilsvarende kan en repeater i et digitalt nett utveksle sendinger med andre digitale nett med annen teknologi, fordi det er en velegnet oppgave for en datamaskin å konvertere digitale sendinger, inkludert adresser, kontrollsignaler og digitalisert lyd.
Systemer for å linke repeatere er utviklet av utstyrsleverandørene og i form av åpne standarder og protokoller, som f.eks. Brandmeister og TGIF. Disse løsningene tilbyr både linking mellom DMR-repeatere og til repeatere for D-star, Yaesu System Fusion, Allstarlink, Echolink m.fl.
Enda en nyttig egenskap ved DRM er mulighet for at radioapparatene kan “roame” mellom repeatere, dvs. selv finne en repeater med egnet signalstyrke. Dette er ikke mulig ved bruk av FM-samband, der må operatøren selv finne frem til egnede repeaterfrekvenser. Roaming er en egenskap som konfigureres i radioapparatene, repeaterne har ingen rolle i den prosessen.
På Figur 5 vises hvordan “Repeater site 1” betjener stasjonene på venstre side, men også videresender mottatte signaler til “Repeater site 2” via et nettverk. Overføringen gjennom nettverket kan filtrere talegrupper, og konvertere de digitale dataene til andre systemer. Illustrasjonen viser også hvordan “radio-løse” stasjoner (Stasjon B) kan delta i sambandet gjennom ordinære datamaskiner (såkalt Voice over IP, VoIP)
Figur 5 – Prinsipptegning av linkede repeatere
Single Frequency Repeater
En DMR-repeater er en spesialbygget enhet med to radiomoduler og passbåndfiltre for å hindre forstyrrelser mellom dem, med robust kjøling for å tåle lange sendeperioder og en datamaskin som styrer trafikken mellom radiomodulene.
DMR har som kjent to kanaler som vekselvis sender på samme frekvens i tidsluker. Dette er blitt utnyttet til å tillate en annen form for repeaterfunksjon som kun benytter én frekvens. En såkalt Single Frequency Repeater (SFR) vil lytte på tidsluke 1 og sende ut på tidsluke 2. Den skifter altså mellom mottak og sending hvert 30. millisekund, og fordi den aldri sender og mottar samtidig trengs kun én radiomodul, og spesielle passbåndfiltre er ikke nødvendige. Radioapparatene som skal bruke en SFR må stille inn en direktekanal med sending på tidsluke 1. På en direktekanal vil radioapparatene lytte på begge tidslukene, ikke bare nr.2.
Med SFR må alle talegruppene legges i samme tidsluke, så man har mindre kapasitet til rådighet enn for vanlige repeatere, som videresender begge tidslukene.
En interessant egenskap ved SFR er at dersom radioene kommer utenfor dekningsområdet til repeateren (eller at den faller ut av drift), vil radioene uten videre kunne kommunisere dersom de er innen radiorekkevidde av hverandre (i motsetning til ordinære DMR-repeatere, som krever at “talk-around” funksjonen aktiveres). Dette gjelder fordi radioene lytter på begge tidslukene og vil motta sendinger fra andre radioer på tidsluke 1 såvel som fra repeateren på tidsluke 2.
Fordi en SFR ikke er en spesialbygget radio kan en vanlig DMR-radio bli en SFR dersom den har programvare for det. Denne egenskapen, kombinert med at den har kun én kanal, gjør at en SFR tenkes brukt som en improvisert måte å utvide dekningsområdet på ved at en radio settes til SFR-funksjon og bringes opp på en fjelltopp.
Eksempler på radioer med SFR-funksjon er Hytera PD985GMD (pris ca. 10.000,-, krever tilleggslisens) og Anytone D578UV (pris ca. 4200,-). Merk at slike radioer ikke er dimensjonert for kontinuerlig sending (høy duty cycle) med henblikk på batterkapasitet og kjøling.
Figur 6 viser SFR-prinsippet hvor radioen oppe til venstre mottar signal både på tidsluke 1 fra radioen nede til venstre og fra repeateren på tidsluke 2.
Figur 6 – Single Frequency Repeater omgitt av radioer satt til direkte forbindelser
Konfigurasjon av radioene
Det kan inngå et vesentlig antall radioer i en sambandsoperasjon, og det er nødvendig med en effektiv metode for konfigurasjon av dem. Det er f.eks. ikke ønskelig med individuell konfigurasjon av hver enkelt radio gjennom dens betjeningspanel. Andre krav til konfigurasjonen kan være at operatøren ikke skal kunne gjøre endringer selv, men at servicepersonell utfører denne oppgaven i henhold til en besluttet policy.
DMR-radioer konfigureres i hovedsak gjennom et PC-program kalt Customer Programming Software (CPS), hvor alle konfigurasjonsopplysninger legges inn i et omfattende skjema, som f.eks.
Radioens DMR-id (nummer)
Kanaler (frekvenser og tidsluker) med angivelse av navn, utstrålt effekt, trygghets- og sikkerhetsfunksjoner m.m.
Talegrupper, med gjenkjennelige navn
Adresselister, for å gjenkjenne avsendere
Tilpasning av betjeningsfunksjonene (f.eks. sperre visse funksjoner)
Passord for endring av konfigurasjonen
Tidsgrenser for automatisk power-off, maksimal sendetid
m.m
Slike opplysninger resulterer i en konfigurasjonsfil kalt Code Plug som lastes til radioen med hjelp av CPS. Det blir dermed mulig å lage en Code Plug for hver radio-“rolle” fremfor en for hver radio. Hvert radiofabrikat har sin egen CPS, og den resulterende Code Plug kan heller ikke brukes på andre radiofabrikater.
Dersom flere radiofabrikater inngår i en sambandsoperasjon er det nødvendig å bruke CPS på en slik måte at det ikke oppstår interoperabilitetsproblemer. Mer om det i neste avsnitt.
Figur 7 viser et skjermbilde fra en bestemt CPS (til en TYT MD-2017). Et omfattende sett av opplysninger inngår i en Code Plug og det knytter seg en viss lærekurve til bruken av CPS fordi en del av konfigurasjonsopplysningene dreier seg om “dype” tekniske detaljer i DMR-protokollene.
Figur 7 – Skjermbilde fra et CPS
Radiomarkedet for DMR
DMR er en åpen spesifikasjon, og det finnes Open Source programvare for DMR-protokollene som tillater produksjon av DMR-radioer uten veldig store utviklingskostnader. Resultatet er at det er mange ulike fabrikater på markedet, inkludert billige kinesiske radioer av varierende kvalitet på elektronikken og programvaren.
DMR-spesifikasjonene tillater teknologien brukt i mange brukstilfeller, men de billige radioene retter seg med sine funksjoner mot enkle samband, direktekontakt eller via repeatere. Funksjoner som f.eks. full dupleks tale (for samtrafikk med telefonnettet) og dataoverføring med IP-protokoll finnes ikke i det billige prissegmentet, men er å finne i dyrere “enterprise”-type produkter. Radioprodusentene er også systemleverandører, og ønsker at avansert bruk av DMR skal tilbys gjennom produkter med høyere pris.
Interoperabilitet
Et vesentlig moment med DMR og dens “åpenhet” knytter seg til interoperabilitetsproblemer, dvs. at ulike radioer implementerer funksjoner på ulik måte, og at slike funksjoner bare virker mellom radioer av samme fabrikat. Et eksempel er sikkerhetsfunksjoner, hvor krypteringsfunksjonene ikke virker på tvers av radiofabrikater.
Det krever mye undersøkelser for å kartlegge interoperabilitetsproblemer. Målet må være å komme frem til et felles sett av funksjoner som dekker behovet til sambandsoperasjonen. I dette arbeidet er CPS-programvaren sentral, siden det er der disse detaljene konfigureres.
Sammendrag
DMR er en digital teknologi med en rekke egenskaper som gjør den svært velegnet for sambandsnett. DMR støtter talegrupper, digitale tilleggstjenester og trygghetsfunksjoner. DMR-standarden er åpen og det er mange utstyrsprodusenter å velge mellom.
Dersom man ønsker å kjøpe DMR radioutstyr av flere fabrikater må man være oppmerksom på mulige interoperabilitetsproblemer. Erfaringsmessig er det mange digitale tilleggstjenester som ikke lar seg benytte i et heterogent system.
Good news: The QYT KT-8900 and KT-8900D radios are well suited for running an Allstalink node. The configuration menu REP-M (#43 on KT-8900, #51 on KT-8900D) allows two radios to make a repeater by connecting a cable between the two microphone connectors (RJ45 plugs). The configuration feeds a RPT-CTLR signal when the squelch opens (or subtone received) through the mic connector which is wired to the PTT on the other radio.
The RPT-CTLR is effectively a COR signal which can be wired to the DMK URI for Allstarlink operation, and no modification to the radio circuit board is necessary. As a proof of concept, I sacrificed an ethernet cable and soldered a DB25 plug on it according to the wiring shown on the picture. This works as expected and with good sound quality. The KT-8900D offers much radio for the money, and I believe it should be interesting for use in private Allstarlink nodes. The RPT-CTLR is active low, so you need to set “carrierfrom=usbinvert” in simpleusb.conf
After 3 hours operation on 95% duty cycle, the radio is only lukewarm, using low output power (10w)
The Allstalink node connected to the Mic connector of KT8900DThe wiring arrangement for the DB25 and the DMK URI board