LoRa зблизька: чирп, spreading factor, час в ефірі й дальність
Під Meshtastic і Reticulum лежить одна й та сама фізика: модуляція, яка читає сигнал слабший за рівень шуму, і платить за це часом. Ця нотатка — про неї: як влаштований чирп, звідки береться дальність, що робить кожна ручка в налаштуваннях, з чого зроблене залізо і що будують зверху — від LoRaWAN до дронів і супутників.
Три слова, які постійно плутають
Більшість суперечок про LoRa починається з того, що одним словом називають різні речі.
| слово | що це насправді | хто це зробив |
|---|---|---|
| LoRa | Модуляція, фізичний рівень. Спосіб перетворити біти на радіохвилю. Нічого не знає про адреси, мережі й шифрування — тільки «як звучить байт в ефірі» | Розробка французької Cycleo, яку Semtech купив у 2012 році. Чипи виготовляє Semtech і його ліцензіати |
| LoRaWAN | Протокол і архітектура поверх LoRa. Адреси пристроїв, ключі, шлюзи, мережевий сервер, класи роботи, адаптивна швидкість. Відкритий стандарт | LoRa Alliance — консорціум компаній |
| «сира» LoRa | Байти по радіо без протоколу зверху. Так працюють Meshtastic і Reticulum: беруть тільки модуляцію, а мережу будують свою | Будь-хто |
LoRa — це алфавіт, LoRaWAN — мова. Алфавітом можна писати й власною мовою: так роблять Meshtastic, Reticulum, ExpressLRS і сотні саморобних проєктів. І навпаки: почути LoRa-сигнал ще не означає зрозуміти, що в ньому, — це залежить від протоколу зверху.
що дає модуляція
Дальність і живучість
Сигнал читається навіть тоді, коли він слабший за шум. Плюс стійкість до завад, відбиттів і зсуву частоти — усе це властивості самого чирпа.
чого модуляція не дає
Ані адрес, ані шифрування
Чип віддає отриманий шматок байтів і рівень сигналу — і все. Хто кому пише, як це захистити, що робити з колізіями, вирішує протокол зверху.
чим за це платять
Часом і швидкістю
Дальність купується тривалістю сигналу. Це не недогляд інженерів, а прямий обмін: що довше звучить символ, то далі його чути й то менше даних встигає пройти.
Фізика: що таке чирп
Звичайне радіо передає біти, змінюючи щось у несучій: амплітуду, частоту або фазу. Що слабший сигнал, то гірше ці зміни видно на тлі шуму. LoRa робить інакше — і саме тут уся її «магія».
Чирп — це свисток: сигнал, частота якого рівномірно повзе знизу вгору через усю відведену смугу. Один свисток — один символ. Дані закодовані тим, з якого місця свисток починається: він стартує десь посередині, доходить до верху смуги, стрибає вниз і добігає до точки старту. Точка старту й є переданим числом.
Перемикання 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 живе в місті з багатоповерхівками й у лісі, де вузькосмугові модуляції розсипаються.
Як приймач витягує сигнал з-під шуму
Найкрасивіша частина. Приймач не намагається «розчути тихий сигнал» — він складає докупи всю енергію свистка за весь час символу. Випадковий шум так не складається.
Скільки саме виграшу
Практична міра цього виграшу — мінімальне співвідношення сигнал/шум, за якого символ ще читається. Від'ємні числа означають, що сигнал слабший за шум:
| 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 подвоює час символу
| SF | символ | швидкість (125 кГц, код 4/5) | чутливість | типове застосування |
|---|---|---|---|---|
| SF7 | 1,024 мс | 5 469 біт/с | −123 дБм | Місто, близькі вузли, багато трафіку |
| SF8 | 2,048 мс | 3 125 біт/с | −126 дБм | Компроміс за замовчуванням у багатьох саморобках |
| SF9 | 4,096 мс | 1 758 біт/с | −129 дБм | Приміська зона |
| SF10 | 8,192 мс | 977 біт/с | −132 дБм | Село, пагорби |
| SF11 | 16,384 мс | 537 біт/с | −134,5 дБм | На смузі 250 кГц — це і є LongFast у Meshtastic |
| SF12 | 32,768 мс | 293 біт/с | −137 дБм | Гори, далекобій, рекорди дальності |
Правило, яке варто запам'ятати: +1 до SF — удвічі довший символ і приблизно +2,5 дБ чутливості. У вільному просторі 2,5 дБ — це десь на третину більша дальність. У місті чи в лісі — помітно менше, бо там заважає не відстань, а перешкоди.
Здається логічним поставити 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 працює прямо тут
- час в ефірі
- 2,30 с
- швидкість каналу
- 293 біт/с
- тривалість символу
- 32,768 мс
- пауза при ліміті 1 %
- 3,8 хв
Код 4/5, явний заголовок, контрольна сума ввімкнена, преамбула 8 символів. Оптимізація низької швидкості вмикається сама, коли символ довший за 16 мс.
| корисних байт | SF7 · 125 кГц | SF9 · 125 кГц | SF11 · 250 кГц | SF12 · 125 кГц |
|---|---|---|---|---|
| 20 | 57 мс | 185 мс | 330 мс | 1,32 с |
| 50 | 98 мс | 329 мс | 575 мс | 2,30 с |
| 100 | 174 мс | 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 без потреби».
Бюджет лінка: скільки децибелів у запасі
Уся радіозв'язність зводиться до однієї арифметики: скільки потужності випустили, скільки втратилося по дорозі й чи лишилося досить, щоб приймач почув.
запас = потужність передавача + підсилення антен − втрати по дорозі − |чутливість приймача|
Запас 43,8 дБ — з таким можна жити: на непередбачене закладають 10–20 дБ.
На кресленні за замовчуванням — типовий європейський лінк: 25 мВт (+14 дБм), штирі по +2 дБі, 10 км прямої видимості на 868 МГц. Траса з'їдає 111 дБ, а запас лишається понад сорок децибелів. Здається, що це багато. Але в реальному світі їх з'їдають рельєф, дерева, стіни, дощ і власне тіло, якщо тримати пристрій у руках: повзунок «перешкоди» показує, як швидко. Тому інженери закладають ще 10–20 дБ на непередбачене — і саме тому розрахункові сто кілометрів на практиці стають п'ятьма. Ту саму арифметику для своїх чисел рахує калькулятор бюджету лінка.
що додає децибели
Антена і висота
Підсилення антени працює в обидва боки — і на передачу, і на прийом. Заміна «огризка» на нормальний штир легко дає 3–5 дБ, тобто плюс 40–80 % дальності.
що їх з'їдає
Усе матеріальне
Стіна — 5–15 дБ. Дерева в листі — до 10–20 дБ на сотню метрів. Людське тіло поруч з антеною — кілька децибелів. Поганий кабель — ще кілька.
що обманює
Розрахунок у вільному просторі
Формула вільного простору не знає про землю. Уже на кількох кілометрах над ґрунтом працюють відбиття й дифракція, і реальні втрати зазвичай на 10–30 дБ більші.
Дальність насправді: рельєф і зона Френеля
Найчастіше розчарування звучить так: «пряма видимість є, а зв'язку немає». Причина зазвичай одна, і новачкам про неї майже не розповідають.
Радіохвиля летить не тонким променем, а об'ємним веретеном навколо прямої лінії. Це веретено — зона Френеля, і воно має бути вільним. Якщо в нього залазить пагорб, дах чи ряд дерев, сигнал просідає, навіть коли антени формально «бачать» одна одну.
Практичний наслідок: підняти антену на кілька метрів часто дає більше, ніж будь-які налаштування радіо. Це не «додає потужності» — це витягує веретено з-під перешкоди. Тому один вузол на пагорбі змінює мережу сильніше, ніж десяток на підвіконнях. Радіус зони для своєї траси рахує калькулятор зони Френеля, горизонт для своїх щогл — калькулятор дальності прямої видимості.
Дві формули, які варто знати
радіус зони посередині, м ≈ 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» і отримує назад готовий результат.
Сімейства чипів
| чип | діапазон | особливості | де трапляється |
|---|---|---|---|
| SX1276 / SX1278 | 137–1020 МГц | Класика, на якій виросло все. Прийом ≈ 10 мА, передача до +20 дБм | RFM95, старіші Heltec і TTGO, більшість саморобок |
| SX1262 / SX1268 | 150–960 МГц | Наступне покоління: прийом ≈ 4,6 мА, передача до +22 дБм, краща чутливість і стійкість до сусідніх сигналів | Сучасні плати, модулі E22, майже все нове |
| SX1280 | 2,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.
Увімкнути передачу без антени — значить відбити всю потужність назад у підсилювач. Він цього не любить і може згоріти. Це не забобон, а перше правило роботи з будь-яким радіо.
Антена — найдешевше покращення
Жодне налаштування не дає такого приросту, як нормальна антена, правильно орієнтована й піднята. І жодна помилка не коштує так дорого, як неправильна.
Практичний наслідок «бублика» на діаграмі спрямованості: дрон точно над головою або вузол поверхом вище можуть чутися гірше, ніж такий самий вузол за кілометр збоку. І ще: антени з обох боків мають стояти однаково — вертикально. Одна вертикальна, друга горизонтальна — це близько 20 децибелів утрат ні за що. Довжину штиря й противаг під свою частоту рахує калькулятор антени Ground Plane.
безкоштовно
Підняти вище
Кожен метр висоти витягує зону Френеля з-під перешкод і відсуває горизонт. Найдешевші децибели у світі.
майже безкоштовно
Поставити вертикально
Однакова поляризація з обох боків. Антена, покладена набік «щоб не стирчала», коштує дорожче за будь-яку іншу помилку.
за гроші
Спрямована антена
Для постійного лінка між двома точками Yagi дає +8–12 дБ і відрізає завади збоку. Для рухомого вузла не годиться: треба цілитися.
1. Увімкнути передачу без антени. 2. Поставити антену не на той діапазон — 433-мегагерцову на 868 МГц і навпаки. 3. Прокласти два метри дешевого тонкого кабелю й дивуватися, куди поділася половина потужності.
LoRaWAN: що будують зверху
Найпоширеніший протокол на базі LoRa. Побудований під один сценарій: мільйони дешевих датчиків, кожен з яких прокидається кілька разів на добу, каже одне речення й засинає на роки.
Ключова ідея архітектури: пристрій не знає ні про які шлюзи й нікуди не «підключається». Він просто кричить у ефір. Хто почув, той переслав, а сервер прибирає дублікати й розбирається, з ким має справу. Тому пристрій може переїжджати між містами й не помічати цього: розривати нема чого, з'єднання просто немає.
клас 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 % |
|---|---|---|
| 20 байт на SF7 | 57 мс | 5,6 с |
| 237 байт на SF7 | 374 мс | 37 с |
| 50 байт на SF12 | 2,30 с | 3,8 хв |
| 237 байт на SF12 | 8,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. Перед практикою варто звірити їх із документацією свого чипа й правилами свого регіону.
- Meshtastic зблизька — готовий чат на «сирій» LoRa: керований флуд, канали, ролі вузлів
- Reticulum зблизька — мережевий стек, де адреса — це ключ, а LoRa — лише один із носіїв
- Чотири інтернети — Reticulum, I2P, Yggdrasil і Nostr поруч: хто на якому поверсі
