Перейти до основного вмісту

LoRa зблизька: чирп, spreading factor, час в ефірі й дальність

· 22 хв. читання
UR3PKI
Software Engineer

Під Meshtastic і Reticulum лежить одна й та сама фізика: модуляція, яка читає сигнал слабший за рівень шуму, і платить за це часом. Ця нотатка — про неї: як влаштований чирп, звідки береться дальність, що робить кожна ручка в налаштуваннях, з чого зроблене залізо і що будують зверху — від LoRaWAN до дронів і супутників.

−20 дБСигнал у сто разів слабший за шум — і його все одно читають. Головний фокус LoRa
−137 дБмЧутливість приймача на SF12 і смузі 125 кГц
32,8 мсСтільки триває один символ на SF12. Сучасний Wi-Fi за цей час передає мегабайт
4096Можливих точок старту одного «свистка» на SF12 — 12 біт на символ

Три слова, які постійно плутають​

Більшість суперечок про LoRa починається з того, що одним словом називають різні речі.

словощо це насправдіхто це зробив
LoRaМодуляція, фізичний рівень. Спосіб перетворити біти на радіохвилю. Нічого не знає про адреси, мережі й шифрування — тільки «як звучить байт в ефірі»Розробка французької Cycleo, яку Semtech купив у 2012 році. Чипи виготовляє Semtech і його ліцензіати
LoRaWANПротокол і архітектура поверх LoRa. Адреси пристроїв, ключі, шлюзи, мережевий сервер, класи роботи, адаптивна швидкість. Відкритий стандартLoRa Alliance — консорціум компаній
«сира» LoRaБайти по радіо без протоколу зверху. Так працюють Meshtastic і Reticulum: беруть тільки модуляцію, а мережу будують своюБудь-хто
Найкоротше формулювання

LoRa — це алфавіт, LoRaWAN — мова. Алфавітом можна писати й власною мовою: так роблять Meshtastic, Reticulum, ExpressLRS і сотні саморобних проєктів. І навпаки: почути LoRa-сигнал ще не означає зрозуміти, що в ньому, — це залежить від протоколу зверху.

що дає модуляція

Дальність і живучість

Сигнал читається навіть тоді, коли він слабший за шум. Плюс стійкість до завад, відбиттів і зсуву частоти — усе це властивості самого чирпа.

чого модуляція не дає

Ані адрес, ані шифрування

Чип віддає отриманий шматок байтів і рівень сигналу — і все. Хто кому пише, як це захистити, що робити з колізіями, вирішує протокол зверху.

чим за це платять

Часом і швидкістю

Дальність купується тривалістю сигналу. Це не недогляд інженерів, а прямий обмін: що довше звучить символ, то далі його чути й то менше даних встигає пройти.

Фізика: що таке чирп​

Звичайне радіо передає біти, змінюючи щось у несучій: амплітуду, частоту або фазу. Що слабший сигнал, то гірше ці зміни видно на тлі шуму. LoRa робить інакше — і саме тут уся її «магія».

Чирп — це свисток: сигнал, частота якого рівномірно повзе знизу вгору через усю відведену смугу. Один свисток — один символ. Дані закодовані тим, з якого місця свисток починається: він стартує десь посередині, доходить до верху смуги, стрибає вниз і добігає до точки старту. Точка старту й є переданим числом.

частота ↑ · час → · SF12: 4096 позицій, символ 32,768 мсверх смуги125 кГцниз смугисимвол 10символ 21024символ 32457символ 43481крапка — точка старту свистка, вона і є даними: одне число з 4096, тобто 12 біт на символ

Перемикання SF на кресленні показує головне: що вищий SF, то більше можливих точок старту (2SF) — і то довше звучить кожен символ. Приймачу не треба ловити тонкі зміни амплітуди чи фази, йому досить знайти, де почався свисток. А свисток розмазаний по всій смузі й по всьому часу символу, тож вузька завада його не вбиває, а зсув частоти зміщує всі символи однаково й легко компенсується.

Скільки даних в одному свистку

Рівно SF біт. На SF7 свисток стартує з однієї зі 128 позицій — це 7 біт. На SF12 позицій 4096 — це 12 біт. Мало? Так і є: символ SF12 несе півтора байта й триває 33 мілісекунди.

  • SF7 — 27 = 128 позицій → 7 біт на символ
  • SF10 — 210 = 1024 позиції → 10 біт
  • SF12 — 212 = 4096 позицій → 12 біт

Звідки береться стійкість

Енергія символу розмазана по всій смузі й по всій його тривалості. Вузькосмугова завада зіпсує лише частину свистка — решти вистачить, щоб розпізнати старт. Відбиття від будівель приходять із затримкою, але форма свистка лишається впізнаваною. А повільний дрейф частоти зсуває всі символи разом, тож його видно й можна відняти.

Тому LoRa живе в місті з багатоповерхівками й у лісі, де вузькосмугові модуляції розсипаються.

Як приймач витягує сигнал з-під шуму​

Найкрасивіша частина. Приймач не намагається «розчути тихий сигнал» — він складає докупи всю енергію свистка за весь час символу. Випадковий шум так не складається.

демодуляція за три крокищо прийшло з ефірусвисток угору + шум×власний зворотний свистокприймач знає його точну форму=стала частотатим вища, чим більший був зсуві тількитепер —Фур'єспектр після згортки · один різкий пікрівень шумупікпозиція піка = передане числовисота піка = наскільки впевненоВесь час символу — до 33 мілісекунд — енергія свистка збирається в одну точку. Шум так не збирається: він випадковий.
Ось чому це працює під шумом. Корисний сигнал когерентний: множення на зворотний свисток «складає» його у вузький пік. Шум при тій самій операції лишається розмазаним. Що довший символ — то більший виграш. Саме це й купується високим spreading factor.

Скільки саме виграшу​

Практична міра цього виграшу — мінімальне співвідношення сигнал/шум, за якого символ ще читається. Від'ємні числа означають, що сигнал слабший за шум:

SFпотрібний SNRчутливість, смуга 125 кГцлюдською мовою
SF7−7,5 дБ≈ −123 дБмСигнал уже слабший за шум у 5–6 разів
SF8−10 дБ≈ −126 дБмУдесятеро слабший
SF9−12,5 дБ≈ −129 дБмМайже у двадцять разів
SF10−15 дБ≈ −132 дБмУ тридцять разів
SF11−17,5 дБ≈ −134,5 дБмУ шістдесят разів
SF12−20 дБ≈ −137 дБмУ сто разів слабший за шум — і все одно читається

Чутливість — для типового приймача сімейства SX127x; новіші чипи дають ще на кілька децибелів краще. Точні числа — у даташиті конкретного чипа.

Порівняння, від якого стає зрозуміло

Звичайний Wi-Fi-приймач здається, коли сигнал падає приблизно до −90 дБм. LoRa на SF12 ще працює на −137 дБм. Різниця в 47 дБ — це у 50 тисяч разів слабший сигнал. Ціна — швидкість, менша в сто тисяч разів.

Spreading factor — головна ручка​

Якщо в налаштуваннях крутити тільки щось одне, то SF. Він визначає все: швидкість, дальність, час в ефірі й те, скільки батареї з'їсть одне повідомлення.

тривалість символу T = 2SF / BW → кожен +1 до SF подвоює час символу

тривалість одного символу при смузі 125 кГцSF7SF8SF9SF10SF11SF121,024 мс2,048 мс4,096 мс8,192 мс16,384 мс32,768 мсОдин символ SF12 несе 12 біт. Тобто півтора байта за третину секунди — це швидкість близько 290 біт/с.Той самий півтора байта на SF7 пролетить за одну мілісекунду.
SFсимволшвидкість (125 кГц, код 4/5)чутливістьтипове застосування
SF71,024 мс5 469 біт/с−123 дБмМісто, близькі вузли, багато трафіку
SF82,048 мс3 125 біт/с−126 дБмКомпроміс за замовчуванням у багатьох саморобках
SF94,096 мс1 758 біт/с−129 дБмПриміська зона
SF108,192 мс977 біт/с−132 дБмСело, пагорби
SF1116,384 мс537 біт/с−134,5 дБмНа смузі 250 кГц — це і є LongFast у Meshtastic
SF1232,768 мс293 біт/с−137 дБмГори, далекобій, рекорди дальності

Правило, яке варто запам'ятати: +1 до SF — удвічі довший символ і приблизно +2,5 дБ чутливості. У вільному просторі 2,5 дБ — це десь на третину більша дальність. У місті чи в лісі — помітно менше, бо там заважає не відстань, а перешкоди.

Пастка високих SF

Здається логічним поставити SF12, «щоб точно дійшло». Але час в ефірі зростає в рази, а отже батарея сідає швидше, ліміт робочого циклу вичерпується за кілька повідомлень і — найгірше — довгий пакет має набагато більше шансів зіткнутися з чужим. У щільній мережі SF12 часто працює гірше, ніж SF9.

Смуга, кодування, преамбула​

Решту ручок крутять рідше, але кожна має ціну — і саме тут ховаються відповіді на питання «чому сусід мене не чує».

bandwidth · смуга

Ширше — швидше, але глухіше

Типові значення: 125, 250, 500 кГц. Подвоєння смуги вдвічі скорочує символ — і забирає близько 3 дБ чутливості, бо в ширшу смугу заходить удвічі більше шуму.

Це той самий компроміс, що й SF, тільки з іншого боку. Meshtastic, наприклад, бере широку смугу 250 кГц і компенсує її високим SF11.

coding rate · надлишковий код

Від 4/5 до 4/8

Пряме виправлення помилок: на кожні 4 біти даних додається від 1 до 4 службових. При 4/5 пакет довшає на чверть, при 4/8 — удвічі.

Рятує від коротких завад: імпульс зіпсував кілька символів — код їх відновив. Проти рівномірно слабкого сигналу майже не допомагає: там працює SF.

preamble · преамбула

Свистки «прокидайся»

Перед кожним пакетом іде серія однакових чирпів — типово вісім. За них приймач чіпляється й синхронізується. Довша преамбула — більше шансів, що приймач, який слухає ефір рідкими зазираннями, встигне прокинутися, але й більше часу в ефірі.

sync word · синхрослово

Найчастіша причина «нічого не чую»

Байт, що ділить ефір на «приватні» й «публічні» мережі. Пристрої з різними синхрословами практично не чують одне одного, навіть якщо в них збігаються частота, смуга й SF. Класика: LoRaWAN має одне значення, більшість саморобних мереж — інше.

Ще дві дрібниці, які кусаються

Оптимізація низької швидкості обов'язкова, коли символ довший за 16 мс (SF11 і SF12 на смузі 125 кГц). Вона компенсує дрейф кварцу; якщо в одного вузла її ввімкнено, а в іншого ні — зв'язку не буде. Інверсія IQ — трюк, яким LoRaWAN розділяє напрямки: пристрої не чують одне одного, лише шлюз. Готові прошивки налаштовують обидві речі самі, у саморобках це доводиться робити вручну.

Час в ефірі: формула, з якої все випливає​

Час в ефірі — це не просто «як довго летить». Це одночасно витрата батареї, витрата дозволеного робочого циклу й імовірність зіткнутися з чужим пакетом. Тому саме ця величина визначає, скільки вузлів витримає мережа.

Пакет складається з чотирьох частин: преамбула (типово 8 свистків плюс 4,25 символу синхронізації), заголовок, дані й контрольна сума. Рахується все не в байтах, а в символах — і кожен символ триває свої 2SF/BW.

Tпреамбули = (8 + 4,25) × Tсимволу
nданих = 8 + ⌈ (8·PL − 4·SF + 28 + 16·CRC) / (4·(SF − 2·DE)) ⌉ × (CR + 4)
Tпакета = Tпреамбули + nданих × Tсимволу

Тут PL — байтів корисних даних, CR = 1…4 для кодів від 4/5 до 4/8, DE = 1, коли ввімкнена оптимізація низької швидкості. Округлення вгору означає, що дані завжди добиваються до цілого блоку — тому один зайвий байт іноді коштує цілих п'яти символів.

час в ефірі · формула Semtech працює прямо тут

SF
смуга
50
преамбулазаголовок і данівся шкала — той самий пакет на SF12 · 125 кГц: 2,30 с
час в ефірі
2,30 с
швидкість каналу
293 біт/с
тривалість символу
32,768 мс
пауза при ліміті 1 %
3,8 хв

Код 4/5, явний заголовок, контрольна сума ввімкнена, преамбула 8 символів. Оптимізація низької швидкості вмикається сама, коли символ довший за 16 мс.

50 байт корисних даних · однакова шкала часуSF12 · 125 кГцпреамбула 401 мсзаголовок і дані — 1 900 мс2,30 секундиSF7 · 125 кГц97 мілісекунд — ті самі 50 байттой самий SF7, розтягнутий, щоб було видно структуру:12,5 мс85 мс
Різниця у 24 рази — за ті самі 50 байт. Варто подивитися на преамбулу: на SF12 вона сама по собі триває 0,4 секунди, тобто довше, ніж увесь пакет на SF7. Ось чому на високих SF навіть найкоротше повідомлення дороге.
корисних байтSF7 · 125 кГцSF9 · 125 кГцSF11 · 250 кГцSF12 · 125 кГц
2057 мс185 мс330 мс1,32 с
5098 мс329 мс575 мс2,30 с
100174 мс554 мс944 мс3,94 с
237 (стеля Meshtastic)374 мс1,17 с1,97 с8,53 с

Пораховано за формулою вище: код 4/5, явний заголовок, увімкнена контрольна сума, преамбула 8 символів. Колонка SF11 · 250 кГц — рівно пресет LongFast із Meshtastic.

Вісім із половиною секунд

Повний пакет на SF12 займає ефір на 8,5 секунди. Увесь цей час жоден вузол у радіусі не може передати нічого. Десяток балакучих вузлів на SF12 — і ефір закінчився. Звідси ростуть усі обмеження Meshtastic на довжину повідомлень і всі поради «не ставити SF12 без потреби».

Бюджет лінка: скільки децибелів у запасі​

Уся радіозв'язність зводиться до однієї арифметики: скільки потужності випустили, скільки втратилося по дорозі й чи лишилося досить, щоб приймач почув.

запас = потужність передавача + підсилення антен − втрати по дорозі − |чутливість приймача|

14 дБм
+2 дБі
4 → 10 км
0 дБ
частота
SF
+200-40-80-120-140чутливість SF12 · -137 дБмпередавач14+ антена16− траса-95,2− перешкоди-95,2+ антена-93,210 км · 868 МГц · втрати на трасі 111,2 дБ

Запас 43,8 дБ — з таким можна жити: на непередбачене закладають 10–20 дБ.

На кресленні за замовчуванням — типовий європейський лінк: 25 мВт (+14 дБм), штирі по +2 дБі, 10 км прямої видимості на 868 МГц. Траса з'їдає 111 дБ, а запас лишається понад сорок децибелів. Здається, що це багато. Але в реальному світі їх з'їдають рельєф, дерева, стіни, дощ і власне тіло, якщо тримати пристрій у руках: повзунок «перешкоди» показує, як швидко. Тому інженери закладають ще 10–20 дБ на непередбачене — і саме тому розрахункові сто кілометрів на практиці стають п'ятьма. Ту саму арифметику для своїх чисел рахує калькулятор бюджету лінка.

що додає децибели

Антена і висота

Підсилення антени працює в обидва боки — і на передачу, і на прийом. Заміна «огризка» на нормальний штир легко дає 3–5 дБ, тобто плюс 40–80 % дальності.

що їх з'їдає

Усе матеріальне

Стіна — 5–15 дБ. Дерева в листі — до 10–20 дБ на сотню метрів. Людське тіло поруч з антеною — кілька децибелів. Поганий кабель — ще кілька.

що обманює

Розрахунок у вільному просторі

Формула вільного простору не знає про землю. Уже на кількох кілометрах над ґрунтом працюють відбиття й дифракція, і реальні втрати зазвичай на 10–30 дБ більші.

Дальність насправді: рельєф і зона Френеля​

Найчастіше розчарування звучить так: «пряма видимість є, а зв'язку немає». Причина зазвичай одна, і новачкам про неї майже не розповідають.

Радіохвиля летить не тонким променем, а об'ємним веретеном навколо прямої лінії. Це веретено — зона Френеля, і воно має бути вільним. Якщо в нього залазить пагорб, дах чи ряд дерев, сигнал просідає, навіть коли антени формально «бачать» одна одну.

зона Френеля · на 10 км і 868 МГц її радіус посередині ≈ 29 метрівпряма видимістьпагорбщогла Aщогла Bвершина залізла в зонуна чверть — мінус кілька дБПравило великого пальця: щоб не втрачати нічого, вільними мають бути щонайменше 60% радіуса цього веретена.

Практичний наслідок: підняти антену на кілька метрів часто дає більше, ніж будь-які налаштування радіо. Це не «додає потужності» — це витягує веретено з-під перешкоди. Тому один вузол на пагорбі змінює мережу сильніше, ніж десяток на підвіконнях. Радіус зони для своєї траси рахує калькулятор зони Френеля, горизонт для своїх щогл — калькулятор дальності прямої видимості.

Дві формули, які варто знати

радіус зони посередині, м ≈ 8,66 × √(d / f)
d — відстань у км, f — частота в ГГц


горизонт, км ≈ 4,12 × (√h₁ + √h₂)
h — висота антен у метрах

Дві щогли по 10 метрів бачать одна одну максимум на 26 км — уже з урахуванням того, що радіохвиля трохи огинає землю. Підняти одну з них на сотню метрів — і горизонт відсувається до 54 км.

Чого чекати в реальності

де стоїть вузолреальна дальність
Щільна міська забудова0,5–2 км
Передмістя, малоповерхівка2–6 км
Село, поля, пряма видимість8–20 км
Вузол на пагорбі чи вежі30–80 км
Аеростат чи гора — до землісотні км

Рекорди дальності, про які пишуть, майже завжди зроблені з великої висоти й на найповільнішому режимі. Це чесні результати — просто не про вузол на балконі.

Залізо: що насправді стоїть на платі​

LoRa-модем — це один чип-трансивер плюс обв'язка. Уся «магія» чирпів зашита в кремній: мікроконтролер лише каже «передай оці байти на такому SF» і отримує назад готовий результат.

радіотракт · шлях байта до антени й назадмікроконтролертрансиверпідсилювачмалошумнийперемикачфільтрпрограмаSX1262 / SX1276тут живуть чирпипотужності PAпідсилювач LNAприйом ⇄ передачаріже сусідні смугиSPIРожевий шлях — передача, блакитний — прийом. Перемикач існує тому, що антена одна, а трактів два:потужний передавач і ніжний приймач ніколи не працюють одночасно.

Сімейства чипів​

чипдіапазонособливостіде трапляється
SX1276 / SX1278137–1020 МГцКласика, на якій виросло все. Прийом ≈ 10 мА, передача до +20 дБмRFM95, старіші Heltec і TTGO, більшість саморобок
SX1262 / SX1268150–960 МГцНаступне покоління: прийом ≈ 4,6 мА, передача до +22 дБм, краща чутливість і стійкість до сусідніх сигналівСучасні плати, модулі E22, майже все нове
SX12802,4 ГГцLoRa у всесвітньому діапазоні. Швидше, але помітно ближче. Уміє вимірювати відстань за часом польотуExpressLRS для дронів, локальні датчики
LR1110 / LR1120суб-ГГц; LR1120 — ще й 2,4 ГГцТрансивер із вбудованим скануванням GNSS і Wi-Fi для геолокації без окремого GPS. Сусідній LR1121 — та сама багатодіапазонність, але без геолокаціїТрекери, де важлива економія

Струми споживання — орієнтовні, з даташитів; конкретика залежить від напруги живлення й режиму підсилювача.

Скільки коштує одне повідомлення

Передача на повній потужності — це приблизно 120 мА. Множимо на час в ефірі:

  • SF7 — 374 мс → близько 0,012 мА·год на пакет
  • SF12 — 8,53 с → близько 0,28 мА·год на пакет

Тобто з акумулятора на 2000 мА·год теоретично виходить близько 160 тисяч пакетів на SF7 — і лише сім тисяч на SF12. І це ще без мікроконтролера, GPS і постійного слухання ефіру.

Дві деталі, які ламають зв'язок тихо

Термокомпенсований генератор (TCXO). На SF11 і SF12 символ довгий, і звичайний кварц може «поїхати» за температурою настільки, що приймач втратить синхронізацію. Плати для далекобою ставлять TCXO — і тому дешеві модулі іноді працюють на низьких SF і мовчать на високих.

Виявлення активності каналу (CAD). Режим, у якому чип за кілька мілісекунд перевіряє, чи є в ефірі преамбула, майже не витрачаючи енергії. На ньому будують «слухай перед тим, як говорити» — зокрема в Meshtastic.

Передача без антени

Увімкнути передачу без антени — значить відбити всю потужність назад у підсилювач. Він цього не любить і може згоріти. Це не забобон, а перше правило роботи з будь-яким радіо.

Антена — найдешевше покращення​

Жодне налаштування не дає такого приросту, як нормальна антена, правильно орієнтована й піднята. І жодна помилка не коштує так дорого, як неправильна.

чвертьхвильовий штир · у масштабі05 см10 см15 см20 см17,3 см433 МГц8,6 см868 МГц8,2 см915 МГцДовжина = чверть довжини хвилі. Помилився на сантиметр — узгодження поїхало, частина потужності повернулась назад.діаграма спрямованості · вид збокувгору — майже нічоговниз — тежубік —максимумШтир світить «бубликом»: найкраще — в горизонт, найгірше — точно вгору й точно вниз.

Практичний наслідок «бублика» на діаграмі спрямованості: дрон точно над головою або вузол поверхом вище можуть чутися гірше, ніж такий самий вузол за кілометр збоку. І ще: антени з обох боків мають стояти однаково — вертикально. Одна вертикальна, друга горизонтальна — це близько 20 децибелів утрат ні за що. Довжину штиря й противаг під свою частоту рахує калькулятор антени Ground Plane.

безкоштовно

Підняти вище

Кожен метр висоти витягує зону Френеля з-під перешкод і відсуває горизонт. Найдешевші децибели у світі.

майже безкоштовно

Поставити вертикально

Однакова поляризація з обох боків. Антена, покладена набік «щоб не стирчала», коштує дорожче за будь-яку іншу помилку.

за гроші

Спрямована антена

Для постійного лінка між двома точками Yagi дає +8–12 дБ і відрізає завади збоку. Для рухомого вузла не годиться: треба цілитися.

Три способи зіпсувати радіо за секунду

1. Увімкнути передачу без антени. 2. Поставити антену не на той діапазон — 433-мегагерцову на 868 МГц і навпаки. 3. Прокласти два метри дешевого тонкого кабелю й дивуватися, куди поділася половина потужності.

LoRaWAN: що будують зверху​

Найпоширеніший протокол на базі LoRa. Побудований під один сценарій: мільйони дешевих датчиків, кожен з яких прокидається кілька разів на добу, каже одне речення й засинає на роки.

зірка з зірок · один пакет чують кілька шлюзівдатчикспить 99,9% часушлюз Aшлюз Bшлюз Cшлюз нічого не вирішує: чує 8 каналів і всі SF одразу — і пересилає далімережевийсерверувесь розум тут✕✕дублівідкидаютьсязастосуноктут читають дані

Ключова ідея архітектури: пристрій не знає ні про які шлюзи й нікуди не «підключається». Він просто кричить у ефір. Хто почув, той переслав, а сервер прибирає дублікати й розбирається, з ким має справу. Тому пристрій може переїжджати між містами й не помічати цього: розривати нема чого, з'єднання просто немає.

клас A

Найекономніший

Пристрій передає, коли сам захоче, а потім двічі ненадовго вмикає прийом — приблизно через секунду й через дві. Поза цими вікнами він глухий, тож сервер не може достукатися першим і чекає наступного виходу на зв'язок. Живе роками від батарейки.

клас B

Компроміс

Шлюзи регулярно шлють маячки, пристрій синхронізується за ними й відкриває додаткові вікна прийому за розкладом. До нього можна достукатися з передбачуваною затримкою — ціною більшого споживання.

клас C

Завжди на зв'язку

Приймач увімкнений постійно, пауза — лише на час власної передачі. Затримка мінімальна, споживання — максимальне. Для пристроїв від мережі: лічильники, замки, освітлення.

Безпека й адаптація​

Два ключі, а не один

Шифрування в LoRaWAN — AES-128, але ключів два: мережевий перевіряє цілісність пакета й належність його мережі, прикладний шифрує сам вміст. Тому оператор мережі бачить, що пакет справжній, але не бачить, що всередині.

Пристрій потрапляє в мережу або через процедуру приєднання з обміном ключами, або з наперед прошитими ключами — другий варіант простіший і небезпечніший.

Адаптивна швидкість

Сервер бачить, з яким запасом доходять пакети, і вказує пристрою знизити SF, якщо зв'язок упевнений. Вигода подвійна: пристрій економить батарею, мережа — ефір.

Тому в стаціонарних датчиків SF із часом сам сповзає вниз, а в рухомих лишається високим — сервер не встигає підлаштуватися.

Найдефіцитніший ресурс — зворотний напрямок

Шлюз не може одночасно слухати й передавати, а ще на нього діють ті самі обмеження робочого циклу. Тому в LoRaWAN пакет «вниз» коштує набагато дорожче за пакет «вгору». Мережі, де кожен датчик чекає підтвердження, впираються в цю стелю значно раніше, ніж у будь-яку іншу.

Меші, дрони, супутники​

LoRaWAN — найвідоміше, але далеко не єдине, що будують поверх цієї модуляції.

мережі без інфраструктури

Meshtastic і Reticulum

Беруть лише модуляцію й будують поверх неї власну мережу без шлюзів і серверів. Meshtastic — готовий чат із флудовою ретрансляцією, Reticulum — повноцінний мережевий стек із криптографічною адресацією. Обидва працюють на тих самих дешевих платах.

керування дронами

ExpressLRS

Несподіване застосування: та сама модуляція, але вивернута навиворіт. Замість дальності ціною часу — мінімальна затримка: крихітні пакети по кілька байт, сотні разів на секунду, на низьких SF і часто на 2,4 ГГц. Те саме залізо, протилежний компроміс.

вимірювання відстані

Ranging на 2,4 ГГц

Чипи для 2,4 ГГц уміють міряти час польоту сигналу туди й назад, тобто відстань між двома вузлами з точністю до метрів. Цим користуються для локації в приміщеннях, де GPS не працює.

зв'язок із космосу

Супутники й аеростати

Кілька операторів приймають LoRa просто з низької орбіти: датчик у полі говорить із супутником без жодної наземної інфраструктури. Для цього є окремий режим зі стрибками по частоті, який краще переживає доплерівський зсув і перевантажений канал.

Що з цього випливає

Одна модуляція обслуговує і датчик, який говорить двічі на добу з батарейкою на десять років, і пульт дрона з затримкою в кілька мілісекунд. Різниця — цілком у налаштуваннях і протоколі зверху. Тому питання «а яка в LoRa дальність / швидкість» не має відповіді без уточнення, про який компроміс ідеться.

Регуляторка: duty cycle і потужність​

LoRa живе в неліцензованих діапазонах — тих самих, де радіоняні, метеостанції й пульти від воріт. За користування не платять, але правила є, і вони прошиті прямо в поведінку пристроїв.

Головне європейське правило — робочий цикл: частка часу, коли дозволено передавати. Типово це один відсоток. Звучить нестрашно, доки не порахувати в секундах: після кожної передачі треба мовчати у 99 разів довше, ніж передавав.

правило одного відсотка · на одному піддіапазоні1% — передача99% — обов'язкове мовчанняОдин повний пакет на SF12 — це 8,5 секунди в ефірі.Далі — 14 хвилин, коли передавати не можна взагалі.

Це не теорія, а поведінка прошивки: стек сам рахує витрачений ефір і просто не відправляє наступний пакет, поки не мине пауза. Тому «повідомлення зникло» іноді означає «ліміт вичерпано», а не «сигналу немає». Паузу для довільного пакета показує калькулятор часу в ефірі вище.

що надсилаємочас в ефіріпауза при ліміті 1 %
20 байт на SF757 мс5,6 с
237 байт на SF7374 мс37 с
50 байт на SF122,30 с3,8 хв
237 байт на SF128,53 с14 хв

Як це виглядає по регіонах​

регіондіапазонтипова потужністьяк обмежують ефір
Європа, зокрема Україна868 МГц14 дБм (25 мВт)Робочий цикл: типово 1 %, на окремому вузькому піддіапазоні — до 10 % і вища потужність
Європа433 МГц10 дБмТеж робочий цикл; діапазон вужчий і галасливіший, зате хвиля довша й краще огинає перешкоди
США, Канада902–928 МГцдо 30 дБмРобочого циклу немає, але є стрибки по частоті й обмеження часу на одному каналі
Азія, Океанія920–923 МГцзалежить від країниЧасто вимагають «слухай, перш ніж говорити»
Це орієнтир, а не юридична консультація

Конкретні межі потужності, робочого циклу й дозволених піддіапазонів прописані в національних правилах і змінюються. Перш ніж ставити підсилювач чи крутити потужність, варто звірити їх із чинними правилами. Плату теж купують під свій діапазон: «не та» частота налаштуваннями не лікується.

Межі: колізії та ємність мережі​

Останнє, про що зазвичай мовчать: у LoRa немає диригента. Пристрої передають, коли їм заманеться, і час від часу говорять одночасно.

два пакети в один часрівні за силоюперекриття✕ обидва втраченіодин сильніший✓ сильніший читається✕ слабший втраченийРізниці приблизно в шість децибелів уже досить, щоб сильніший сигнал «перекрив» слабший і був прочитаний.

Це називають ефектом захоплення, і саме він рятує реальні мережі: у житті сигнали рідко бувають однакової сили. Але статистики він не скасовує — що більше пристроїв, то більше зіткнень, і росте це швидше, ніж лінійно.

Скільки вузлів витримує один канал

Для мереж без узгодження працює класична оцінка ALOHA: корисно використати вдається приблизно 18 % часу каналу, далі зіткнення з'їдають більше, ніж додає навантаження.

Для SF12 і пакета на 100 байт (3,94 с): за годину в каналі 3600 секунд, корисних із них близько 648 — тобто десь 160 пакетів на годину. Якщо кожен вузол говорить раз на годину, це приблизно 160 вузлів на канал. На SF7 той самий канал витримає у двадцять разів більше.

Чому меші впираються швидше

У LoRaWAN пакет звучить в ефірі один раз, далі його несе дріт. У меші кожен вузол-ретранслятор передає той самий пакет знову. Одне повідомлення в мережі з трьома рівнями ретрансляції — це п'ять-сім реальних передач.

Тому меш на LoRa — завжди компроміс: він дає покриття без інфраструктури, але платить за це багаторазовим використанням того самого дефіцитного ефіру.

Один абзац, який пояснює всі обмеження

Кожне рішення в LoRa впирається в одне: ефір спільний і повільний. Звідси й стеля на розмір пакета, і обмеження на хопи, і поради ставити нижчий SF, і робочий цикл, і те, чому мережі з тисячами датчиків проєктують так, щоб кожен говорив якнайрідше. Це не недоліки технології — це її ціна за дальність.

Словник​

  • Chirp — свисток: сигнал, частота якого рівномірно йде через усю смугу. Один чирп — один символ.
  • CSS — Chirp Spread Spectrum, сама модуляція. Те, що й називають словом LoRa.
  • SF · spreading factor — 7–12. Скільки біт несе символ і водночас наскільки він довгий. Кожен +1 подвоює час.
  • BW · смуга — 125 / 250 / 500 кГц. Ширше — швидше, але на 3 дБ глухіше з кожним подвоєнням.
  • CR · coding rate — від 4/5 до 4/8. Надлишковий код проти коротких завад.
  • Preamble — серія однакових чирпів на початку пакета, за яку чіпляється приймач.
  • Sync word — байт, що розділяє «приватні» й «публічні» мережі. Різні значення — вузли не чують одне одного.
  • Time on air — скільки пакет реально займає ефір. Головна величина в усій LoRa.
  • SNR — наскільки сигнал сильніший за шум. У LoRa буває від'ємним — і це нормально.
  • RSSI — абсолютний рівень прийнятого сигналу в дБм. Разом із SNR показує якість лінка.
  • Чутливість — найслабший сигнал, який приймач ще розбирає: від −123 до −137 дБм залежно від SF.
  • Бюджет лінка — потужність плюс антени мінус втрати мінус чутливість. Скільки децибелів у запасі.
  • Зона Френеля — веретено навколо прямої лінії, яке має бути вільним. Пряма видимість — ще не гарантія.
  • Duty cycle — частка часу, коли дозволено передавати. У Європі типово 1 %.
  • CAD — дешевий режим, у якому чип перевіряє, чи є в ефірі преамбула, майже не витрачаючи енергії.
  • LoRaWAN — протокол і архітектура поверх LoRa: шлюзи, мережевий сервер, класи, два ключі, адаптивна швидкість.

Числа чутливості й споживання — типові значення з даташитів Semtech; час в ефірі пораховано за формулою Semtech. Перед практикою варто звірити їх із документацією свого чипа й правилами свого регіону.

Серія «зблизька»