LoRa jest modulacją radiową o dużym link budget i małej przepustowości. Może przenosić heartbeat, pozycję, stan baterii, alarm lub kilka komend wysokiego poziomu, ale nie jest kanałem wideo ani zamiennikiem aparatury o szybkiej, ciągłej pętli sterowania. Najwolniejszy profil zwiększa czułość kosztem bardzo długiego time-on-air, zajęcia wspólnego pasma, energii i opóźnienia. LoRa oznacza warstwę fizyczną; LoRaWAN jest osobnym protokołem sieciowym z gatewayami, network serverem, klasami urządzeń, bezpieczeństwem i regionalnymi parametrami.

LoRa a LoRaWAN#

LoRa określa modulację chirp spread spectrum i radio packetowe. Dwa urządzenia mogą używać LoRa w prywatnym protokole point-to-point.

LoRaWAN definiuje architekturę:

end device -> jeden lub wiele gatewayów -> network server
           -> join server / application server

Gateway nie jest zwykłym sparowanym radiem. Odbiera wiele kanałów i spreading factors, przekazuje ramki przez IP, a network server deduplikuje kopie oraz zarządza MAC. Downlink wybiera gateway i moment transmisji.

LoRa Alliance rozdziela Link Layer TS001 od Regional Parameters RP002. Ten sam protokół ma inne kanały, data rates, moc, dwell time i payload limits zależnie od regionu. Konfiguracja „EU868” nie jest legalnym profilem globalnym.

Chirp spread spectrum#

LoRa koduje symbole przez chirpy o częstotliwości przesuwającej się w bandwidth kanału. Odbiornik koreluje sygnał z oczekiwanym chirpem. Processing gain pozwala demodulować sygnały przy niskim SNR, ale nie daje odporności na dowolne zakłócenie ani nieskończonej pojemności.

Główne parametry:

  • carrier frequency;
  • bandwidth BW;
  • spreading factor SF;
  • coding rate CR;
  • preamble length;
  • explicit/implicit header;
  • CRC;
  • low data rate optimization;
  • transmit power.

Profil nadajnika i odbiornika musi być zgodny. Wyjątkiem jest wielokanałowy gateway zdolny równolegle demodulować kilka profili.

Spreading factor#

SF określa liczbę bitów symbolu i liczbę chipów:

chips_per_symbol = 2^SF
T_symbol = 2^SF / BW

Dla BW=125 kHz:

SF Czas symbolu
7 1,024 ms
8 2,048 ms
9 4,096 ms
10 8,192 ms
11 16,384 ms
12 32,768 ms

Każdy wzrost SF o jeden podwaja czas symbolu. Czułość zwykle się poprawia, lecz airtime szybko rośnie. SF12 nie powinien być domyślnym „bezpiecznym” ustawieniem dla wszystkich UAV.

Spreading factors nie są idealnie ortogonalnymi osobnymi kanałami w rzeczywistym receiverze. Różne SF mogą być odbierane równolegle przez gateway, ale near-far, częstotliwość, timing i saturacja front-endu nadal wpływają na collision. Semtech opisuje ograniczenia współkanałowych pakietów i capture effect; projekt sieci mierzy je dla własnej gęstości.

Bandwidth#

Większe BW skraca symbol i zwiększa data rate, lecz podnosi noise power w torze odbiorczym:

N = -174 dBm/Hz + 10log10(BW) + NF

Zmniejszenie BW poprawia część budżetu czułości kosztem czasu transmisji i większej wrażliwości na błąd częstotliwości. Nie każdy region i data rate pozwala na dowolną wartość.

Popularne 125 kHz jest tylko jednym profilem. Regional Parameters określa powiązania data rate–SF–BW. Własny protokół także musi przestrzegać przepisów emisji.

Coding rate#

Forward error correction dodaje nadmiarowość. W notacji LoRa spotyka się 4/5, 4/6, 4/7, 4/8. Większa redundancja może poprawić odporność na błędy, ale zwiększa airtime.

Przybliżony raw bit rate:

R_b ≈ SF · BW / 2^SF · 4/(4+CR_index)

Nie jest to application goodput. Preamble, header, CRC, LoRaWAN MAC i encryption zajmują pakiet. Przy payload kilku bajtów narzut może dominować.

Time-on-air#

Time-on-air jest kluczowym parametrem. Dla formatu LoRa:

T_packet = T_preamble + T_payload
T_preamble = (N_preamble + 4,25) · T_symbol

Liczba symboli payload zależy od bajtów, SF, CR, CRC, header i low-data-rate optimization. Typowy wzór implementacyjny zawiera zaokrąglenie ceil, dlatego mała zmiana długości może skokowo dodać kilka symboli.

Do projektu używa się kalkulatora producenta lub zweryfikowanej biblioteki exact modem, a wynik zapisuje w testach. Przykładowa tabela powinna zawierać:

Ramka Profil ToA Okres Airtime udział
heartbeat 12 B DR/SF… pomiar 1 s ToA/1s
status 32 B DR/SF… pomiar 5 s ToA/5s
alarm DR/SF… pomiar zdarzenie limit burst

Nie wolno oceniać duty cycle tylko po application payload. Do ToA wchodzi pełna ramka i retransmisje.

Przepustowość a świeżość#

Jeśli ramka zajmuje 1 s, odbiornik nie może w tym samym radiu otrzymać natychmiastowej odpowiedzi, a kolejne urządzenia konkurują o medium. Telemetria 10 Hz staje się nierealna przy wolnych profilach.

Minimalny budżet:

offered_airtime = Σ rate_i · ToA_i · (1 + retry_factor_i)

W ALOHA-like uplinku LoRaWAN collision probability rośnie wraz z offered load. Capacity to nie liczba urządzeń w broszurze; zależy od rozkładu SF, kanałów, pakietów i gateway density.

Stary pakiet pozycji nie powinien blokować nowszego. Kolejka na UAV ma limit wieku i coalescing: aktualizuje stan do najnowszego, zamiast wysyłać historyczny backlog po odzyskaniu łącza.

Uproszczona czułość:

S_rx = -174 + 10log10(BW) + NF + SNR_required

LoRa może pracować przy ujemnym wymaganym SNR, zależnym od SF i implementacji. Semtech dla SX1262 podaje czułość do -148 dBm oraz maksymalny link budget 170 dB w określonych konfiguracjach. To wartości produktu/profilu, nie gwarancja terenowego zasięgu.

Budżet:

P_rx = P_tx + G_tx + G_rx - FSPL - L_cable - L_misc
margin = P_rx - S_rx

Trzeba użyć dozwolonego EIRP, nie maksymalnych +22 dBm chipa. W niektórych regionach ograniczenie anteny/mocy jest niższe albo wymaga innych warunków.

Zasięg UAV#

Platforma w powietrzu ma line of sight i mniejsze zasłonięcie terenem, więc może być słyszana przez wiele gatewayów. Jednocześnie widzi więcej współkanałowych sieci, a jej silny sygnał może zajmować wspólne pasmo na dużym obszarze.

Zasięg ograniczają:

  • Fresnel obstruction przy niskim locie;
  • body shadow i polaryzacja w bank;
  • antenna null;
  • noise/interference u gatewaya;
  • asymetria uplink/downlink;
  • regulatory power/duty cycle;
  • oscillator drift i Doppler;
  • front-end blocking od innych radii UAV.

„Odebrano jeden pakiet na 20 km” nie kwalifikuje sterowania. Potrzebny jest rozkład packet delivery ratio, burst loss i age w całej obwiedni.

Doppler i ruch#

Przesunięcie Dopplera:

f_D = v_radial · f_c / c

Dla typowych prędkości małego UAV jest niewielkie względem bandwidth, ale LoRa przy wąskim BW, długich symbolach i dryfcie oscylatora ma konkretną tolerancję. Semtech publikuje notę o Doppler immunity dla swoich modemów; wynik trzeba sprawdzić dla profilu, prędkości i przyspieszenia.

Ruch zmienia także channel coherence i polaryzację. Test naziemny z nieruchomym radiem nie wystarcza.

Antena sub-GHz#

Długość fali przy sub-GHz jest rzędu kilkudziesięciu centymetrów. Antena ćwierćfalowa, ground plane i feed mają znaczny rozmiar względem małego UAV.

Problemy integracyjne:

  • skrócona antena ma mniejszą efficiency i węższe pasmo;
  • carbon frame detunuje i zasłania;
  • bateria/wiązka zmienia przeciwwagę;
  • przewód koncentryczny ma stratę i promieniuje przy złym balunie;
  • antena pionowa ma null w osi;
  • bliskość 868/915 MHz innych nadajników blokuje LNA.

VNA mierzy S11, ale dobry return loss nie dowodzi wysokiej efficiency. Potrzebny jest wzorzec/radiated test na kompletnej platformie oraz kilka attitude.

Regionalne parametry i przepisy#

LoRa Alliance utrzymuje RP002, aby oddzielić wymagania regionów od core MAC. Dokument zawiera channel plans, data rates, TX power, dwell time i payload limits. W 2025 r. Alliance ogłosiła RP2-1.0.5 z nowymi data rates; przed implementacją trzeba pobrać bieżącą wersję oraz errata.

W Europie, USA, Australii i Azji profile różnią się zasadniczo. Nie kopiuje się częstotliwości 868 MHz do kraju używającego 915/923 MHz. Zmiana regionu może wymagać innego filtra dopasowania oraz anteny, nie tylko rejestru frequency.

Ograniczenia obejmują zależnie od regionu:

  • EIRP/conducted power;
  • duty cycle per sub-band;
  • dwell time;
  • hopping/LBT;
  • bandwidth i maskę;
  • channel plan;
  • zastosowanie urządzenia.

Certyfikowany moduł nie certyfikuje automatycznie końcowego UAV z inną anteną i profilem.

Prywatny LoRa point-to-point#

P2P daje kontrolę nad framingiem, harmonogramem i duplexem. Można zbudować prosty link UAV–ground bez network servera. Trzeba jednak samodzielnie zaprojektować:

  • addressing;
  • authentication i encryption;
  • sequence/counters;
  • retry/ACK;
  • channel access;
  • regional compliance;
  • key provisioning;
  • replay protection;
  • failsafe i versioning.

Nie należy tworzyć „szyfrowania” przez XOR ani stałego hasła w firmware. Warto użyć sprawdzonego AEAD, unikalnych kluczy i monotonicznego countera. Nonce reuse może zniszczyć bezpieczeństwo nawet przy poprawnym algorytmie.

P2P nie jest LoRaWAN i nie powinien używać jego znaków/certyfikacji. Może korzystać z tego samego radia oraz modulacji.

LoRaWAN classes#

Class A#

Urządzenie otwiera dwa krótkie receive windows po uplinku. Downlink jest więc możliwy dopiero po transmisji urządzenia. Klasa minimalizuje energię i airtime gatewaya, ale nie zapewnia dowolnie natychmiastowej komendy.

Class B#

Urządzenie synchronizuje ping slots przez beacony i otwiera zaplanowane okna. Daje przewidywalniejsze downlink opportunities kosztem energii oraz zależności od synchronizacji.

Class C#

Odbiornik jest otwarty prawie cały czas poza nadawaniem. Zmniejsza latency downlinku, lecz pobiera więcej mocy. Downlink nadal konkuruje o gateway airtime oraz regionalne limity.

Dla UAV z własną baterią Class C może być możliwa energetycznie, ale nie zmienia ograniczeń bitrate i sieci. Klasa musi być wspierana przez stack, network server i plan misji.

Gateway odbiera równolegle wiele kanałów/SF, ale zwykle ma ograniczoną liczbę torów TX i podczas nadawania może nie odbierać części uplinków. Downlink zużywa cenny airtime i podlega duty cycle.

Potwierdzanie każdego uplinku skaluje się źle. Confirmed message jest mechanizmem niezawodności dla wybranych danych, nie domyślnym pingiem 10 Hz. Retransmisja może dostarczyć stary stan, więc payload ma timestamp/version.

Alarm można powtórzyć z kontrolowanym backoff, ale nie w nieskończoność. Network server i aplikacja powinny deduplikować po event ID.

ADR#

Adaptive Data Rate dobiera data rate i power na podstawie historii łącza. Celem jest skrócenie airtime i oszczędność energii przy zachowaniu margin. Semtech podkreśla znaczenie ADR dla capacity.

Klasyczny ADR pasuje najlepiej do urządzeń o względnie stabilnym kanale. UAV szybko zmienia pozycję; historyczny margin może nie reprezentować kolejnych sekund. Profil mobilny potrzebuje konserwatywnych parametrów, ograniczonej adaptacji albo mechanizmu szybkiego fallback zgodnego ze stackiem.

Zawsze należy logować aktualny DR, power, channel i ADR commands. Sam RSSI ostatniego pakietu nie wystarcza.

Gateway diversity#

Ten sam uplink może odebrać kilka gatewayów. Network server deduplikuje, co poprawia availability bez dodatkowego airtime end device. Różnorodność działa tylko, jeśli gatewaye mają:

  • niezależne położenie/antenę;
  • synchronizację i poprawny forwarder;
  • sprawny backhaul;
  • poprawny regional plan;
  • capacity na downlink.

Dwa gatewaye na tym samym maszcie i zasilaniu nie dają pełnej redundancji. Downlink selection może wybrać gateway na podstawie uplink metadata, ale przyszły channel zmieni się z ruchem UAV.

Payload design#

Mała telemetria nie powinna przenosić tekstowego JSON. Projektuje się wersjonowany format binarny:

version | message_type | vehicle_id | sequence
time_delta | flags | quantized fields | auth/MIC

Przykłady kompresji:

  • latitude/longitude jako integer fixed-point;
  • altitude w decymetrach lub centymetrach z określonym zakresem;
  • battery w mV/mA;
  • attitude jako kwantyzowane kąty, jeśli naprawdę potrzebne;
  • bitmask alarmów;
  • delta względem ostatniego pełnego stanu.

Każde pole ma jednostkę, znak, endian, sentinel i saturation. Parser odrzuca nieznaną wersję lub złą długość. Fuzz test sprawdza malformed frames.

Nie wysyła się wszystkich MAVLink wiadomości bez kontroli. Router wybiera minimalny zestaw i rate limit. Mavlink overhead oraz podpis trzeba doliczyć do ToA.

Harmonogram informacji#

Telemetria ma warstwy:

  • heartbeat/health często, minimalny;
  • pozycja adaptacyjnie;
  • pełny status rzadziej;
  • alarm natychmiast z powtórzeniem;
  • konfiguracja tylko w sesji serwisowej;
  • log nigdy przez podstawowy LoRa w locie, poza małym snapshotem.

Gdy link się pogarsza, nie zwiększa się automatycznie liczby retry wszystkich typów. Można ograniczyć dane mniej ważne, zachowując health. Scheduler pilnuje regionalnego airtime budget i ma rezerwę dla alarmu.

Latency#

Budżet LoRaWAN Class A:

t_downlink = wait_for_next_uplink + uplink_ToA
           + gateway/backhaul/server + RX1/RX2 delay
           + downlink_ToA + application

Może być rzędu sekund, nawet przy małym processing time. Nie nadaje się do szybkiego manual rate control.

W P2P z naprzemiennym harmonogramem latency może być mniejsza, ale długi ToA i half-duplex pozostają. Twardy bound wymaga TDMA-like schedule, zsynchronizowanych zegarów i kontroli wszystkich uczestników; pasmo nadal jest współdzielone z obcymi urządzeniami.

Bezpieczeństwo LoRaWAN#

LoRaWAN używa kluczy i liczników do ochrony ramek zgodnie ze specyfikacją. Activation może być OTAA lub ABP zależnie od wersji/urządzenia. Dla nowych wdrożeń preferuje się mechanizmy umożliwiające bezpieczne join i indywidualne klucze.

Wymagania systemowe:

  • unikalny root key per device;
  • secure provisioning i backup;
  • monotonic frame counters zachowane przez reset;
  • brak ponownego użycia session state;
  • odwołanie/rotacja urządzenia;
  • ochrona JoinEUI/DevEUI mapping;
  • szyfrowanie aplikacyjne end-to-end zgodnie z architekturą;
  • log join/replay/MIC failure bez wycieku kluczy.

ABP z jednym kluczem całej floty i zerowaniem countera po restarcie jest poważnym błędem. Secure element może chronić klucz, ale wymaga lifecycle i odpornego zasilania.

Bezpieczeństwo komend#

Nawet poprawnie uwierzytelniona komenda musi być:

  • przeznaczona dla właściwego vehicle ID;
  • świeża;
  • dopuszczalna w bieżącym stanie;
  • idempotentna lub mieć transaction ID;
  • potwierdzona stanem, nie tylko ACK transportowym.

ACK radiowy oznacza odbiór ramki, nie wykonanie działania. Maszyna stanów może odrzucić komendę, a telemetria raportuje reason.

Channel access i kolizje#

LoRaWAN uplink klasycznie używa losowego dostępu. Dwa pakiety na tym samym kanale/SF mogą kolidować. Capture effect może uratować silniejszy, co prowadzi do niesprawiedliwości near–far.

CAD wykrywa activity LoRa, ale nie wszystkie sygnały i ma false detections/misses. LBT/CSMA może być wymagane lub użyteczne zależnie od regionu i specyfikacji, ale hidden nodes pozostają.

W prywatnej flocie można rozdzielić sloty i kanały. Synchronizacja/guard time oraz drift są częścią airtime. Nie wolno zakładać, że różne SF zapewniają bezkolizyjność.

Zegar i TCXO#

Frequency error pochodzi z kryształu, temperatury i aging. Przy wąskim BW oraz długich symbolach margin częstotliwości jest istotny. TCXO poprawia stabilność kosztem mocy i start time.

Radio może mieć kalibrację image/frequency zależną od pasma. Firmware powinien wykonać ją zgodnie z datasheet po zmianie frequency/temperature. Dobór zegara i layout pochodzi z referencyjnego projektu exact chip.

SX1262 jako przykład#

SX1262 obsługuje LoRa, LR-FHSS i (G)FSK, ma zakres 150–960 MHz, deklarowane TX do +22 dBm, RX rzędu kilku mA i SPI control. Parametry strony producenta dotyczą chipa w warunkach datasheet.

Integracja wymaga:

  • matching/filter dla regionu;
  • TCXO/crystal control;
  • RF switch lub DIO2 control;
  • DIO1 interrupt i BUSY handling;
  • poprawnej sekwencji reset/wakeup;
  • DC-DC/LDO configuration;
  • thermal layout PA;
  • conducted/radiated compliance.

Moduł z certyfikacją upraszcza RF, ale trzeba sprawdzić antenna limits oraz region. Goły chip wymaga kompetentnego layoutu sub-GHz i pomiarów emisji.

Interfejs z flight controllerem#

Radio może być podłączone do FC przez UART/SPI/CAN albo obsługiwane przez companion MCU. Dobrym podziałem jest osobny modem MCU zarządzający regionalnym MAC i kluczami, a FC przesyła wersjonowane rekordy.

Interfejs wewnętrzny ma:

  • bounded queues per priority;
  • timestamp na wejściu;
  • status airtime budget;
  • radio state/channel/DR;
  • last uplink/downlink age;
  • error/rejoin counters;
  • watchdog i reset reason.

FC nie powinien blokować pętli czasu rzeczywistego na radio busy. Sterownik jest asynchroniczny, a ISR tylko sygnalizuje zdarzenie.

Zasilanie i EMI#

TX PA pobiera krótki wysoki prąd. Średnia może być mała, ale regulator i kondensatory muszą obsłużyć peak bez brownout oraz bez modulowania flight controllera.

Mierzy się:

  • napięcie przy PA ramp;
  • current profile per power;
  • ripple w IMU/GNSS;
  • harmoniczne i spurious;
  • receiver desense przy innych nadajnikach;
  • temperaturę PA przy maksymalnym legalnym duty cycle.

Radio sub-GHz blisko systemu RC w podobnym paśmie może wzajemnie blokować odbiorniki. Filtracja i harmonogram są ważniejsze niż samo rozdzielenie częstotliwości o kilka MHz.

Failsafe#

LoRa może być kanałem dodatkowego statusu, ale jego dostępność nie powinna maskować utraty głównego control link. Stany rozdziela się:

LoRa uplink fresh?
LoRa downlink authority fresh?
primary RC/data link fresh?
autonomy/navigation valid?

Komenda LoRa o dużym age jest odrzucana. Po utracie downlinku UAV wykonuje wcześniej określone zachowanie, nie czeka na retransmisję bez limitu.

Jeśli LoRa służy wyłącznie do recovery beacon, jego awaria nie zmienia lotu. Jeśli przenosi high-level mission update, update jest transakcyjny i ma wersję/CRC/signature; niepełny fragment nie staje się aktywnym planem.

Obserwowalność#

Logować należy:

  • timestamp, frequency, channel, SF, BW, CR i power;
  • packet length oraz calculated/measured ToA;
  • RSSI i SNR per gateway;
  • gateway ID oraz dedup count;
  • uplink/downlink frame counter;
  • retry/confirmed state;
  • ADR commands i current DR;
  • duty-cycle/dwell budget;
  • join/rejoin reason;
  • queue age/drop per message type;
  • radio IRQ/error/reset;
  • position, attitude i supply.

RSSI bez SF/BW i SNR jest nieporównywalne. Packet delivery bez offered load nie opisuje capacity.

Plan prób#

Protokół i czas#

  1. Dla każdej długości/profilu porównać wyliczony ToA z pomiarem logic analyzer/RF.
  2. Sprawdzić framing, CRC/MIC, counters i replay.
  3. Wymusić reset w każdej fazie TX/RX/join.
  4. Przepełnić kolejki i potwierdzić drop najstarszych danych.
  5. Zweryfikować regional scheduler.

RF conducted#

Mierzy się power, frequency error, sensitivity/PER, blocking, harmonics i current. Attenuator tworzy krzywą PER vs input dla każdego profilu.

Radiated#

Kompletne UAV obraca się w roll/pitch/yaw. Sprawdza się antenna pattern, body shadow, napęd i równoległe radia. Ground gateway jest testowany na kilku wysokościach.

Network#

Wyłącza się gateway/backhaul/network server, przeciąża downlink i usuwa jeden gateway z diversity. Mierzy się rejoin i application outage.

Lot#

Trasa obejmuje bliski strong-signal, edge, niski Fresnel i maksymalny zakres misji. Raport zawiera PDR, burst loss, age, SNR/RSSI per gateway oraz airtime.

Kryteria odbioru#

System jest zweryfikowany, gdy:

  1. każdy profil jest legalny w regionie;
  2. ToA i duty/dwell budget obejmują pełne ramki oraz retry;
  3. PDR i burst loss spełniają wymaganie na całej trasie;
  4. downlink latency odpowiada funkcji;
  5. kolejki utrzymują freshness;
  6. klucze/counters przeżywają reset bez replay risk;
  7. gateway/backhaul failure ma określoną reakcję;
  8. coexistence z RC/GNSS/LTE jest potwierdzone;
  9. antena i EIRP są zmierzone na platformie;
  10. failsafe nie zależy od niegwarantowanej komendy.

LoRa jest dobrym wyborem, gdy kilka wiarygodnych bajtów ma większą wartość niż duży strumień. Jest złym wyborem, gdy wymaganie ukrycie zakłada ciągłą małą latency bez policzenia airtime i downlinku.

Najczęstsze błędy#

  • Mylenie LoRa z LoRaWAN.
  • SF12 jako domyślny profil całej floty.
  • Brak obliczenia time-on-air.
  • Liczenie duty cycle z payload zamiast ramki.
  • Maksymalna moc chipa użyta jako legalna EIRP.
  • Parametry EU868 skopiowane do innego regionu.
  • Confirmed uplink dla każdej telemetrii.
  • ADR bez uwzględnienia mobilności UAV.
  • JSON/MAVLink flood w kanale LPWAN.
  • Jedna antena bez pattern test w attitude.
  • RSSI jako jedyny wskaźnik.
  • ABP/counters zerowane po restarcie.
  • ACK radia traktowany jako wykonanie komendy.
  • Gateway diversity ze wspólnym backhaulem/zasilaniem.
  • Brak rezerwy airtime dla alarmu.

Powiązane tematy#

Przypisy#

Bibliografia jest generowana z centralnego rejestru. LoRaWAN MAC i klasy opisuje TS001-1.0.4, kanały oraz data rates RP002, a parametry modulacji i przykładowego SX1262 materiały Semtech. Bieżący regional profile, errata i przepisy należy sprawdzić przed każdą implementacją; wartości dla jednego regionu nie obowiązują globalnie.

Źródła z centralnego rejestru

  1. LoRa Alliance TS001-1.0.4: LoRaWAN L2 Specification [specyfikacja protokołu]
  2. LoRa Alliance RP002-1.0.4: Regional Parameters [specyfikacja regionalna]
  3. LoRa Alliance: LoRaWAN for Developers — architecture and standards [dokumentacja organizacji standaryzacyjnej]
  4. Semtech AN1200.86: LoRa and LoRaWAN — Technical Overview [opracowanie techniczne producenta]
  5. Semtech SX1262 — official product data and datasheet [dokumentacja producenta]
  6. Sumit Sharma, „Drone Development from Concept to Flight” [książka]
  7. Ty Audronis, „Drony. Wprowadzenie” [książka]