LoRa, a tokba zárt világ

2026. augusztus 27. csütörtök

A következő időszakban nagyon izgalmas dolgokat fogunk csinálni a LoRa-val, ezért fontos körbejárni a kis modulok lelki világát és működését. Nem unott érdeklődőknek való anyag jön, inkább azoknak szól, akik meg akarják érteni, mi is lapul az árnyékolás alatt. Átvesszük, hogy miért nevezem a LoRa használatát mérnöki kompromisszumnak.

LoRa modulNos van ez a kis téglalap alakú rádiós lapka – na ez így pont nem a LoRa, bár mindenki vele azonosítja, megjegyzem jogosan. Ez kábé ma már olyan, mint a Flex vagy a Stihl fűrész. A LoRa a mivel és hogyan kérdésre adott válasz, amit a kezedben tartasz az pedig csak a rádió. Azért ez sem ennyire egyszerű, de mindenesetre ennek a rétegnek a tulajdonságain át ismerjük most meg ezt az egészet. Bár a LoRa kemény ötvözete a magasabb szintű matematikának és annak a fizikának, ami a rádiós hobbik alapja, nem megyünk jobban bele a dolgokba, mint amit egy középiskolás szakkör szintje megkíván. A cél az, hogy elégedett legyél az alapvető kérdésekre kapott válaszokkal, és felkészültebbé válj a témában mint mások, tisztában legyél vele, mikor mire és miért akarod használni a LoRát. Igyekszem nem túlmagyarázni, de az egyes dolgokat inkáb kétszer megfogalmazva írom le.

Szóval a LoRa (Long Range – nagy hatótávolságú) az utóbbi évek egyik legnépszerűbb kis adatsebességű rádiótechnológiájává vált. Szenzorhálózatokban, telemetriai rendszerekben, nyomkövetőkben, mezőgazdasági eszközökben egyaránt találkozhatunk vele. Legfontosabb tulajdonsága, hogy viszonylag kis adóteljesítménnyel és egyszerű hardverrel is nagy távolság hidalható át.

A nagy hatótávolságnak azonban ára van. Nem szélessávú, gyors adatátvitelre lett kitalálva, paraméterei szorosan összefüggnek, a hibásan megválasztott beállítások pedig indokolatlanul lassú, túlterhelt vagy éppen megbízhatatlan rendszert eredményezhetnek. A frekvencia, a sávszélesség, a szórási tényező, a hibajavítás, az adóteljesítmény és később a csomagfelépítés együtt határozza meg a rádiókapcsolat képességeit, melyekkel rengeteget lehetne kísérletezni, ha lenne hozzá valami robosztus és igazán nagy szabadságot nyújtó felület és eszköz. Szpojler: lesz..

Hogy mitől más a LoRa, mint egy kis FM UHF adóvevőmodul? Hát nem attól, hogy gyors adatátvitelre képes, épp ellenkezőleg, nagyon is lassú. Nincs hang, csak adat, van ebben viszont egy nagy csavar, ami mindent felülír. Ha úgy tetszik, ez egy adatrádió modul, ahol minden elő van készítve és alá van rendelve az adatközpontúságnak és a hatékonyságnak, azaz a kis teljesítménnyel elérhető rendkívül nagy hatótávnak. Nincs FM vagy AM üzemmód, a LoRa az, amit ezek emlegetésekor keresünk. Legalábbis ha magát a LoRa átvitelt nézzük, mert az azt megvalósító rádióchip típustól függően LoRa mellett FSK, GFSK, MSK, GMSK vagy OOK modulációt is támogathat.

Mint már súroltuk, a LoRa nem a modul neve. A LoRa alapvetően egy rádiós modulációs eljárás, vagyis azt határozza meg, hogyan alakítja át az adó a digitális információt rádiófrekvenciás jellé, és hogyan csinálja azt vissza a vevő. Önmagában nem hálózati protokoll, nem határozza meg a címzést, az útvonalválasztást, a nyugtázást vagy az eszközök közötti kommunikáció szabályait. A LoRa tehát nem teljes kommunikációs protokoll, hanem rádiós fizikai réteg és csomagátviteli mód. Olyan, mintha azt mondanánk, hogy AM vagy FM modulátor, csak épp LoRa, amiben a rádió mellett benne van egy újabb réteg is, a jelek alapvető feldolgozása.

Kicsit pontosabban a LoRa olyan értelemben állítható az AM vagy FM mellé, hogy meghatározza, milyen módon kerül az információ a rádiójelre, de azoknál összetettebb digitális fizikai réteg, mert a chirp alapú moduláción túl a rádióchip elvégzi a szimbólumképzést, a spektrumszórást, a hibajavító kódolást, az interleavinget, a szinkronizálást és az alapvető csomagkezelést is. Mint már sokszor hangsúlyoztam ettől azonban még nem válik teljes kommunikációs protokollá, mert a címzést, nyugtázást, titkosítást és az üzenetek jelentését továbbra is a LoRa fölötti réteg határozza meg. Ezt a szintes-layeres dolgot most nem magyarázom el, középiskolában tanítják, nem esik több szó róla.

A chirp olyan rádiójel, amelynek frekvenciája nagyon rövid idő alatt folyamatosan végigsöpör egy meghatározott frekvenciatartományon. A LoRa ezeknek a fel- vagy lefelé söprő jeleknek az időbeli helyzetével kódolja az adatot.

Minden ami LoRa, jellemzően azokba a kis 2×2 centis négyzetekbe van zárva. A külső mikrokontrollernek többnyire csak a beállításokat és a továbbítandó adatot kell átadnia, ettől nagyszerű az egész, mert az igen összetett rádiótechnika egységes, jól kezelhető felületként jelenik meg.

Egy tipikus modul tartalmazza a LoRa-képes adó-vevő integrált áramkört, a TCXO-t (erről korábban már írtam, kattints ide, új lapon nyílik, majd később elolvasod). Szóval a kis lap hordozza az egyébként mumusnak számító impedanciaillesztő hálózatot, harmonikus- és sávszűrőket. Gyakran külön teljesítményerősítőt és alacsony zajú vevőerősítőt (LNA) is kap, nagyobb integráltságú moduloknál pedig mikrokontrollert és előre telepített protokollszoftvert is találhatunk az árnyékolás alatt. Az általános Ra-0x sorozatnál ez utóbbi nincs benne, ott SPI-n keresztül kell beállítani a frekvenciát, az SF-et, a sávszélességet és a csomagkezelést, valamint megvalósítania a címzést, nyugtázást vagy más magasabb szintű protokollt. De nyugi, most egyszerűsítünk.

Viszont egy kis kitérőt kell tenni: a LoRa és a LoraWAN vagy Meshtastic nem ugyanaz. A LoRa maga a rádiós fizikai réteg, segítségével persze létrehozható bármilyen egyedi protokoll. Olyan, mint a másik kettő. A LoRaWAN és a Mesha’ egyébként egy szabványosított hálózati protokoll, illetve egy nyílt forrású, decentralizált mesh rendszer a LoRa fölött, amelyek csupán annyiban köszönnek be, hogy ugyanúgy a LoRa rádiós átvitelt használják. Meghatározzák többek között az eszközök csatlakozását, címzését, biztonsági kulcsait, vételi időablakait, adatsebességeit és valódi mesh esetén a hálózati részek közötti feladatmegosztást. A LoRa a rádió, a LoRaWAN és a Meshtastic pedig a rádió használatának szabályrendszere.

A LoRa modulok beállításánál azonban minden szolgáltatás egy irányba, az azonos lehetőségtér felé mutat. Ezek felhasználói szemmel a vivőfrekvencia, a sávszélesség, a spreading factor, a hibajavítási arány és nyilván az adóteljesítmény. Kicsit mélyebben, a programozók már a preamble hossza, az explicit vagy implicit fejlécmód, a payload, a CRC, a sync word, az IQ-inverzió vagy épp a low data rate opti szintjén is mozognak. Ezek közül lehet még néhány ki lesz emelve. Mindezek kombinációja határozza meg az adatsebességet, a vevőérzékenységet, a hatótávolságot, az adásidőt és a kapcsolat zavartűrését, miközben nem is minden rádióchip támogat minden lehetséges értéket vagy kombinációt. Ha már tervezésnél tartnunk, meg kell jegyezni, hogy fontos szempont egyes rendszereknél az energiafogyasztás is, hiszen például a napelemes-akkus eszközök üzemideje igencsak korlátos.

A frekvencián nincs mit magyarázni, mindenkinek világos. Annak ismerete, hogy hol működik a cucc azonban a digitális világban sem elég, tudni kell, hogy mikor és milyen beállításokkal jön az adat, különben nem fogunk tudni mit kezdeni az elfogott jellel. Két LoRa-rádió nem azért érti egymást, mert mindkettő LoRa. Meg kell egyeznie legalább a frekvenciának, sávszélességnek, spreading factornak és a csomagformátum fontos paramétereinek. Ha ezek eltérnek, a vevő nem tudja dekódolni az adást.

A sávszélesség, vagyis Bandwidth (BW) is ismerős lehet, bár analóg átvitelnél nincs vele dolga a huszárnak, hívójeles, internetes cébézésnél pedig a felhasználók szintjére van csökkentve a beállítások lehetősége. Azt mutatja meg, hogy a LoRa-jel mekkora frekvenciatartományt foglal el a vivőfrekvencia körül. Nagyobb sávszélességnél – például 250 vagy 500 kHz-en – az adatátvitel gyorsabb, a csomag rövidebb ideig van a levegőben és kisebb a késleltetés.

Viszont nagyobb sávszélességnél szélesebb frekvenciatartomány zajteljesítménye jut a vevőbe, ezért romlik az érzékenység. Kisebb sávszélességnél, például 62,5 vagy 125 kHz-en lassabb lesz az átvitel, de a vevő keskenyebb frekvenciatartományból gyűjti a zajt, ezért gyengébb jelet is képes felismerni.

A sávszélesség tehát közvetlen kompromisszum a sebesség és az érzékenység között. Talán nem mellékes, hogy keskenyebb BW mellett pontosabb frekvencia-beállításra és stabilabb oszcillátorra is szükség van, bár a kis modulokkal ezt annyira nem kell számításba venni. Beállításai 7,8 – 10,4 – 15,6 – 20,8 – 31,25 – 41,7 – 62,5 – 125 – 250 és 500 kHz lehetnek. A spektrumgazdálkodás kedvéért egy hagyományos FM fónia adás sávszélessége 12 kHz, így a LoRa csatornák óriási sávrészt foglalhatnak le.

A spreading factor (SF), azaz szórási tényező már nem az internetes rádiósok vagy a valódi amatőrök világa, ez már inkább a korai katonai szférából ismert. Az SF azt határozza meg, hogy a LoRa egy továbbítandó szimbólumot hány elemi jelrészre, úgynevezett chipre terít szét. Szimbólum alatt a rádiós adatátvitel egy olyan elemi jelalakját értjük, amely egy vagy több bitnyi információt hordoz a meghatározott időtartam alatt. A chipek száma 2SF, tehát SF7-nél 27=128, SF12-nél pedig 4096 chip alkot egy szimbólumot.

Nagyobb SF esetén a rádió ugyanazt az információt hosszabb ideig és több jelmintával továbbítja, ezért a vevő gyengébb, akár a zajszint alatti jelet is könnyebben felismer, amivel ugye javul az érzékenység és általában a hatótávolság. Ennek ára a kisebb adatsebesség, a hosszabb adásidő, a nagyobb energiafelhasználás és a csatorna fokozott terhelése. Az SF minden egyes lépéssel történő növelése azonos sávszélesség mellett megduplázza a szimbólum időtartamát, ezért az SF12 nem egyszerűen kissé lassabb az SF7-nél, hanem ugyanaz a csomag akár több mint húszszor hosszabb ideig is adásban lehet. SF5…12 között állíthatjuk, de mint már mondtam, nem minden rádió támogat minden értéket.

A felhasználó kezébe adott másik paraméter a coding rate (CR). A hibajavítási arány azt mutatja meg, mennyi plusz ellenőrző információt tesz a LoRa a hasznos adatok mellé az átviteli hibák javítására: 4/5 esetén négy adatbithez egy, 4/8 esetén pedig négy adatbithez négy hibajavító bit társul. A nagyobb redundancia növeli annak esélyét, hogy a vevő zajos vagy részben sérült jelből is helyreállítsa a csomagot, viszont megintcsak hosszabb adásidőt, kisebb tényleges adatsebességet – és nagyobb fogyasztást – okoz, ezért jó kapcsolatnál általában a 4/5, nehezebb rádiós környezetben pedig a 4/6–4/8 beállítás a megszokott. Lehetőségei sem mutatnak sokkál távolabb; 4/5, 4/6, 4/7 vagy 4/8 lehet.

Egy általános leíráshoz nem fűznék több fogalmat. A 6 és 65 ezer között paraméterezhető preamble hosszára azért kitérnék, mert egyszerű, valamint – lehet csak a packettes fejlesztések miatt – fontosnak tartom finomhangolásokra állíthatóvá tenni. Azt adja meg, hány ismétlődő bevezető szimbólum kerül a LoRa-csomag elejére, amelyek alapján a vevő felismeri az adás kezdetét, beállítja az időzítést és szinkronizál a jelre. A hosszabb preamble javíthatja az észlelés esélyét, főleg időszakosan vételbe kapcsoló vagy gyenge jelű rendszereknél, viszont növeli a csomag adásidejét, a fogyasztást és a csatorna terhelését. Mint amikor kiabálunk, hogy figyeljenek ránk. Olyan mint az előretolt flag, amit a Real Packetben a TX Delay kitöltésére használok, segítve a vevőoldal dekódolását. Általában max 8-ig szokás menni,  LoRa még hozzáad valamivel több mint 4 szimbólumnyi szinkronrészt lezárásként.

Itt most jön egy fogalom, mely a későbbi cikkekben rendre előkerülhet. A Time on Air (ToA) azt az időt jelenti, ameddig egy rádiócsomag ténylegesen adásban van, vagyis ameddig elfoglalja a rádiócsatornát. LoRa esetén ezt elsősorban a sávszélesség, a spreading factor, a coding rate, a preamble hossza és az elküldött adatmennyiség határozza meg: nagyobb SF, erősebb hibajavítás vagy hosszabb csomag növeli a ToA-t, míg nagyobb sávszélesség általában csökkenti. Ez azért fontos, mert a hosszabb adás nemcsak több energiát fogyaszt, hanem tovább foglalja a frekvenciát is, így sűrűbb hálózatban növeli annak esélyét, hogy más állomások adásával ütközik.

Sokat beszéltünk azokról a tényezőkről, melyeket egymás mellé állítva valahol kompromsszumot kell kötni az átvitel idejét, távolságát, biztonságát tekintve. Erre komoly képletek vannak, sokat dolgoztam olyan presetek kialakításán, amiket különböző körülmények között váltogatni lehet, helyesebben érdemes. Az alábbiakban egy egyszerű, Semtech kézikönyvből készített kalkulátorral lehet játszani, ami kiszámolja, hogy milyen állomással, milyen beállításokkal mekkora távolság hidalható át.

Az antenna magassága nem tankönyvi adatként, hanem csökkentett tényezőként szerepel a rádióhorizont mellett a tereptárgyak miatt. A számítások eredményei két egyforma állomás mellett értendők és tényleg csak viszonyítási alapok a különböző beállításokhoz.

Mint feltűnhetett, az adóteljesítmény önmagában nem mondja meg, meddig jutunk el a jellel. Az adóteljesítményhez hozzáadódik az antennák nyeresége, levonódnak a kábel- és terjedési veszteségek, a másik oldalon pedig ott áll a vevő érzékenysége. Ennek az egész mérlegnek a neve link budget.

LoRa átvitelnél fontos érték az RSSI, az SNR és a vevőérzékenység. Ezek három különböző, de szorosan összefüggő fogalom. Az RSSI azt mutatja meg, milyen erősen érkezik meg a rádiójel a vevőhöz, jellemzően dBm-ben megadva, míg az SNR azt fejezi ki, hogy a hasznos jel hogyan aránylik a háttérzajhoz. LoRa esetén különösen érdekes, hogy a vevő bizonyos beállítások mellett negatív SNR-nél, vagyis akkor is képes lehet a csomag dekódolására, amikor a jel teljesítménye már a zajszint alatt van. A vevőérzékenység pedig azt adja meg, hogy mekkora legkisebb jelszint mellett várható még megbízható vétel; ezt többek között a sávszélesség és a spreading factor is jelentősen befolyásolja.

Mivel az átvitel sikerességét a megadható paramétereken túl számos beállítás befolyásolja, ejtsünk néhány szót az LDRO-ról, vagyis Low Data Rate Optimization-ről is. Ez a nagyon hosszú szimbólumoknál alkalmazott javítás. Csökkenti annak kockázatát, hogy az oszcillátor pontatlansága (vagy a hőmérséklet miatti eltérés) elrontsa a vételt. Ökölszabályként akkor szokás bekapcsolni, amikor a szimbólumidő eléri vagy meghaladja a 16 ms-ot, mint például nagy SF és kis BW kombinációjánál. Kisebb szimbólumidőnél azonban nem nagoyn illik piszkálni a időzítési eltérések elleni kiegészítő védelmet, mert az is növeli a csomag adásidejét. Bekapcsolva 15-20 százalékkal jelent egyébként több időt, de statisztikailag is többet nyerünk vele, mintha meg kellene ismételni csomagokat.

Az egyes modulokról, alkalmazásaikról és egy konkrét projektről a következő napokban vagy hetekben írok, ezért ezekre most nem térnék külön ki. A téma az lesz, milyen ham felhasználásai lesznek a LoRának, milyen jogi lehetőségek mellett lehet bevonni, hálózatba szervezni rádióamatőr módra egyszerűen, hatékonyan, látványosan és élvezetesen, egzakt és natív módon, félmegoldásoktól mentesen. Immáron nem elméleti, nagyon is gyakorlati játékkal készültem.

 

  1. Kótyuk Márton szerint:

    Köszönöm.
    Eddig értem.
    Marci

  2. Kótyuk Márton szerint:

    Hogy jön be az ESP 32?

  3. HA8LHT szerint:

    Alapvetően nem kapcsolódik ide, az Esp32 egy kontroller család, mi komponens, processzor szinten megyünk ham irányba. Az Esp32 általában Kínából áramló olcsó, erőforráspazarló, általános megoldás kész dolgok otthoni felprogramozására, itt azért igényesebb megoldásokra van szükség.

  4. HA5DI szerint:

    Néhány kiegészítés.

    A TCXO nem követelmény, hanem opcionális, sok modulban nincs is benne. Akkor van rá szükség, ha 125 kHz-nél kisebb sávszélességet akarunk használni.

    Az SF5 és SF6 Spreading Factor (SF) nincs benne a régebbi Semtech IC-kben (SX127x) csak az SX126x és újabb társai tudják.

  5. HA8LHT szerint:

    Így van, az egyes modulokról még nem esett szó, először csak általánosan. A motorháztető alá majd az eszköz leírásánál tekintünk be.