MeshTRX — Руководство пользователя
Приложение 4.4.5 | Прошивка 4.4.4 | Обновлено: 2026-08-31
Содержание
- Обзор
- Аппаратура
- Первое подключение 3.1. Настольный клиент
- Голосовая связь (PTT)
- Режимы прослушивания
- Система вызовов
- Текстовые сообщения
- Передача файлов
- Карта и радар
- Настройки
- Режим ретранслятора
- Кнопка на устройстве
- Индикация
- Технические характеристики
Обзор
MeshTRX — децентрализованная голосовая mesh-сеть на LoRa + BLE. Два (или более) устройства Heltec WiFi LoRa 32 связываются по LoRa на расстоянии до 5+ км. К каждому устройству подключается по Bluetooth BLE либо Android-смартфон, либо компьютер с настольным клиентом.
[Телефон A] <--BLE--> [Heltec A] <--LoRa 868МГц--> [Heltec B] <--BLE--> [Компьютер B]
Что можно делать
- Голосовая связь в режиме PTT или VOX
- Текстовые сообщения (до 84 символов)
- Передача фото и файлов (до 100 КБ)
- Отображение станций на карте и тактическом радаре
- Общие, личные и групповые вызовы
- Режим ретранслятора с WiFi-мониторингом
- 23 канала в диапазоне 863–870 МГц
- Работа с телефона (Android) или с компьютера (Windows, Linux, macOS)
Аппаратура
Устройство: Heltec WiFi LoRa 32 (V3 или V4)
| Параметр | Значение |
|---|---|
| MCU | ESP32-S3 (WiFi + BLE 5.0) |
| LoRa | Semtech SX1262 |
| Дисплей | OLED 128x64 (I2C) |
| Диапазон | 863–870 МГц (EU868) |
| Питание | USB-C или LiPo аккумулятор |
| Мощность TX | 1–22 дБм (настраивается) |
Поддерживаются обе ревизии платы. Прошивка у них разная — берите файл, в имени которого указана ваша:
| Плата | Что внутри | Файл прошивки |
|---|---|---|
| V3 | SX1262 без внешнего усилителя | firmware-v3-<версия>.bin |
| V4 rev 4.2 | усилитель GC1109 | firmware-v4-<версия>.bin |
| V4 rev 4.3 | усилитель KCT8103L | firmware-v4.3-<версия>.bin |
Ревизия напечатана на самой плате мелким шрифтом рядом с разъёмом антенны. Прошивка от чужой ревизии запустится, но усилитель будет управляться не тем выводом: устройство станет слышать хуже или не выйдет в эфир вовсе.
Что нужно
- 2+ устройства Heltec WiFi LoRa 32 (V3 или V4)
- на каждое устройство — Android-телефон (5.0+) или компьютер с настольным клиентом
- USB-C кабель для прошивки
- антенна на 868 МГц, прикрученная до подачи питания: передача без антенны выводит из строя выходной каскад
Первое подключение
1. Прошивка устройства
Проще всего — прошить прямо из браузера: откройте страницу прошивки в Chrome или Edge, подключите устройство по USB и выберите свою ревизию платы. Готовые файлы лежат на странице загрузки, если хотите прошивать своими средствами (см. таблицу ревизий выше). Из исходников:
cd firmware
pio run -e heltec_wifi_lora_32_V3 --target upload --upload-port /dev/ttyUSB0 # V3
pio run -e heltec_wifi_lora_32_V4 --target upload --upload-port /dev/ttyUSB0 # V4 rev 4.2
pio run -e heltec_wifi_lora_32_V43 --target upload --upload-port /dev/ttyUSB0 # V4 rev 4.3
После обновления прошивки обновите и приложение: они договариваются по общему протоколу, и старая пара «новая прошивка + старое приложение» может не найти друг друга по Bluetooth.
Прошивка вручную, через esptool. Понадобится, если прошиваете V4: мастер на сайте заливает только образ V3. Одного файла прошивки мало — после полного стирания на плате не остаётся ни загрузчика, ни таблицы разделов, и она уходит в бесконечную перезагрузку. Нужны четыре файла, каждый по своему адресу:
# esptool 5.x — команда и ключи через дефисы
esptool --chip esp32s3 --port COM3 --baud 921600 \
write-flash -z --flash-mode dio --flash-freq 80m --flash-size 16MB \
0x0 bootloader-v4.bin \
0x8000 partitions-v4.bin \
0xe000 boot_app0.bin \
0x10000 firmware-v4.3-<версия>.bin
# esptool 4.x — то же самое, но через подчёркивания
esptool.py --chip esp32s3 --port COM3 --baud 921600 \
write_flash -z --flash_mode dio --flash_freq 80m --flash_size 16MB \
0x0 bootloader-v4.bin \
0x8000 partitions-v4.bin \
0xe000 boot_app0.bin \
0x10000 firmware-v4.3-<версия>.bin
Версию покажет esptool version. В пятой версии команды и ключи переехали на
дефисы, а сам вызов стал просто esptool; со старым написанием она откажется
работать.
Два места, где ошибаются чаще всего:
- Загрузчик у ESP32-S3 лежит по адресу
0x0, а не0x1000. Адрес0x1000— от старого ESP32; с ним плата включается и сразу перезагружается, по кругу. - У V4 флеш на 16 МБ, поэтому
--flash_size 16MB. У V3 — 8 МБ, и файлы загрузчика с таблицей разделов у него свои:bootloader.binиpartitions.bin.
Все четыре файла лежат на странице загрузки, в блоке «Ручная прошивка V4» под кнопками с прошивками.
2. Установка приложения
Скачайте APK со страницы загрузки и разрешите установку из неизвестных источников — Android спросит об этом сам. Все версии подписаны одним ключом, поэтому обновление ставится поверх предыдущего, без удаления.
Из исходников:
cd android/MeshTRX
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
3. Подключение по BLE
- Откройте приложение MeshTRX
- Перейдите на вкладку Настройки
- Нажмите Подключить — начнётся сканирование
- Устройство появится как MeshTRX-XXXX
- На экране устройства нажмите кнопку (>1 сек) — появится PIN
- Введите PIN в приложении
- Статус изменится на ● Подключено (зелёный)
Если телефон не видит устройство в списке Bluetooth. Проверьте, что и телефон, и устройство на свежих версиях: до 4.4.3 устройство выходило в эфир без имени, поэтому телефон его не видел и не показывал в списке. Обновите обе стороны — по отдельности не поможет. Если не помогло, выключите и включите питание устройства: брошенное соединение оно отпускает само, но не мгновенно.
Настольный клиент (Windows / Linux / macOS)
С компьютера доступно то же, что с телефона: голос, сообщения, вызовы, файлы, радар, карта, настройки и ретранслятор. Плюс журнал диагностики, которого в телефоне нет.
python3 -m venv .venv
.venv/bin/pip install -r desktop/requirements.txt
.venv/bin/python desktop/run.py
Клиенту нужна системная библиотека Codec2 (libcodec2 в Linux и macOS,
codec2.dll рядом с программой в Windows). Если её нет, клиент скажет об этом
при запуске, а не останется молча без голоса.
Передача голоса — удержание кнопки мышью или пробелом, с тем же пределом в 10 секунд и тем же обратным отсчётом, что в телефоне. Подробности и разбор устройства программы — в desktop/README.md.
Голосовая связь (PTT)
Кодек
Используется Codec2 3200 bps — обеспечивает разборчивую речь при минимальном использовании радиоканала.
| Параметр | Значение |
|---|---|
| Битрейт | 3200 bps |
| Фрейм | 20 мс / 8 байт |
| Пакет | 4 фрейма = 32 байта = 80 мс |
| LoRa-пакет | 39 байт (7 заголовок + 32 аудио) |
| Время в эфире | ~53 мс |
Задержка складывается из нескольких мест. Первое неустранимо: пока не набралось 80 мс речи, отправлять нечего — это нижняя граница, заданная размером пакета. Дальше добавляется передача в устройство по Bluetooth (интервал соединения 30–50 мс), время пакета в эфире, обратный путь по Bluetooth и буфер воспроизведения. Сквозную задержку на живом железе мы не мерили, поэтому числа здесь не приводим: разговор идёт как по рации — сказал, отпустил, дождался ответа.
Сколько можно говорить: предел 10 секунд
Одна передача занимает канал целиком. LoRa работает в полудуплексе: пока кто-то говорит, остальные не могут ни ответить, ни позвать на помощь — их просто не слышно. Поэтому длительность речи ограничена десятью секундами во всех режимах:
| Где | Что происходит на десятой секунде |
|---|---|
| Удержание кнопки (PTT) | передача прекращается сама, на кнопке идёт обратный отсчёт; чтобы продолжить, отпустите кнопку и нажмите заново |
| Голосовая активация (VOX) | то же самое, с тем же отсчётом на кнопке; чтобы продолжить, сделайте паузу — передача начнётся с новой фразы |
| Голосовое сообщение в чате | запись останавливается, сообщение уходит как есть |
| Адресный голос | то же самое: пишется до 10 секунд и отправляется файлом |
Предел продублирован в самом устройстве, а не только в приложении: если
телефон завис или кнопка залипла, рация всё равно замолчит на десятой секунде
и освободит канал. На экране устройства при этом появится LIMIT 10s.
Говорить дольше — просто нажать кнопку ещё раз. Пауза между передачами нужна и по существу: за это время собеседник успевает ответить, а сеть — пропустить чужие сообщения и вызовы.
Режим PTT (Push-To-Talk)
- Убедитесь что переключатель PTT/VOX в положении PTT
- Нажмите и удерживайте большую круглую кнопку
- Говорите — статус покажет ● передача… осталось N с
- Отпустите кнопку — передача прекратится
- Собеседник услышит короткий двухтональный сигнал окончания передачи (его можно выключить в настройках, раздел «Аудио»)
Если не отпустить, на десятой секунде передача завершится сама.
Режим VOX (голосовая активация)
- Переключите PTT/VOX в положение VOX
- Передача начнётся автоматически при обнаружении голоса
- Статусы:
...(атака) →>>> TX <<<(передача) →TX (пауза)(затухание)
Настройки VOX (вкладка Настройки):
- Порог VOX (0–5000) — чувствительность, чем ниже тем чувствительнее
- Задержка VOX (200–2000 мс) — пауза перед окончанием передачи
Громкая связь
Кнопка динамика (справа сверху от PTT кнопки):
- Зелёная — динамик включён (по умолчанию)
- Серая — динамик выключен (звук через наушник)
Шумоподавление (PTT RMS)
В настройках слайдер PTT RMS (0–1000):
- 0 — отключено (передаётся всё, по умолчанию)
- 50–300 — лёгкая фильтрация фонового шума
- 300+ — агрессивная фильтрация (только громкая речь)
Громкость приёма
Слайдер Громкость приёма в настройках (50%–300%, по умолчанию 200%).
Режимы прослушивания
На PTT экране вверху две кнопки:
| Режим | Описание |
|---|---|
| Все | Слышите все передачи на канале |
| Мои | Слышите только адресованные вам вызовы |
Активный режим подсвечен зелёным.
Система вызовов
Типы вызовов
| Тип | Кнопка | Описание |
|---|---|---|
| Общий | ОБЩИЙ (синяя) | Вызов всем на канале |
| Личный | ВЫЗВАТЬ (зелёная) | Вызов конкретному абоненту |
| Групповой | Через picker | Вызов группе (до 8 участников) |
Как вызвать
- Общий вызов: нажмите кнопку ОБЩИЙ — все на канале получат уведомление
- Личный вызов: нажмите ВЫЗВАТЬ → выберите абонента из списка → вызов отправлен
- Входящий вызов: появится overlay с кнопками ПРИНЯТЬ / ОТКЛОНИТЬ
Последние вызовы
Внизу PTT экрана — скроллируемый список последних вызовов:
- Показывает уникальные записи (дубли заменяются)
- Направление: → исходящий, ← входящий
- Цвет по типу: синий (общий), зелёный (личный), жёлтый (группа)
- Нажатие — повторный вызов
Текстовые сообщения
Отправка
- Перейдите на вкладку Чат
- Введите текст (до 84 символов)
- Нажмите кнопку отправки (зелёная стрелка)
- По умолчанию — broadcast на канал
Адресная отправка
- Нажмите кнопку @ рядом с полем ввода
- Выберите получателя из списка
- Над полем ввода появится Кому: [имя]
- Сообщение получит только адресат
Фильтрация
Используйте выпадающий список фильтра для просмотра сообщений от конкретного абонента или всех.
Передача файлов
Отправка фото
- Перейдите на вкладку Файлы
- Нажмите Фото — откроется галерея
- Выберите фото — приложение само уменьшит его до 320×426 точек, пережмёт в JPEG и срежет метаданные; на выходе обычно 5–20 КБ
- Подтвердите отправку
- Прогресс виден в списке
Отправка файлов
- Нажмите Файл — откроется файловый менеджер
- Выберите файл (макс. 100 КБ)
- Передача стартует автоматически
Параметры передачи
| Параметр | Значение |
|---|---|
| Макс. размер | 100 КБ |
| Размер чанка | 120 байт |
| Интервал | 100 мс |
| Скорость | ~1.2 КБ/с |
| 11 КБ фото | ~10 секунд |
Сто килобайт — это потолок для любого файла, а не размер, до которого дожимается снимок: подготовленное приложением фото занимает 5–20 КБ и уходит секунд за десять. Потолок стоит по двум причинам сразу. Первая — память устройства: файл целиком лежит в оперативке рации, а её там около сотни килобайт свободной, поэтому запрос на больший размер прошивка отклоняет, а не обрывает передачу на середине. Вторая — эфир: канал один и полудуплексный, и всё время передачи остальные не могут ни поговорить, ни отправить сообщение. Отсюда и правило: чем меньше файл, тем меньше вы занимаете общий канал.
Действия с файлами
Нажмите на файл в списке:
- Поделиться — отправить в другое приложение
- Повторить — повторная отправка
- Удалить — удалить из истории
Карта и радар
Карта (OpenStreetMap)
- Отображает ваше местоположение и все обнаруженные станции
- Маркеры с позывными и уровнем сигнала
- Пунктирные линии к станциям (цвет по давности)
- Кнопки:
- Я — центрировать на своей позиции
- Все — показать все станции
Радар (тактический)
- Чёрный фон с зелёными кольцами дальности
- Компасная ориентация (реальный азимут)
- Станции отображаются относительно вашей позиции
- Кнопки масштаба +/− (100м–100км)
- Кнопка переключения контраста (обычный/яркий для улицы)
- Автомасштаб по дальней станции (5 км по умолчанию)
- Яркость по RSSI
- Позывной на точке
GPS
Используется Android LocationManager (работает без GMS). Обновление каждые 15 секунд. Статус GPS отображается на экране карты.
Настройки
Подключение
- Подключить/Отключить — управление BLE соединением
- Новое устройство — забыть текущее и найти новое
Позывной
- До 8 символов, отображается в шапке и в beacon
Радио
- Канал (0–22) — выбор рабочей частоты (863.15–869.75 МГц)
- Найти свободный канал — рация проходит по всем каналам, слушает эфир и показывает, где тише всего. Диапазон 868 МГц в городе людный: там работают домофоны, метеостанции, счётчики, сигнализации, и занятый канал бьёт прежде всего по голосу — ему нужно провести подряд десяток пакетов, тексту хватает одного удачного окна. Сканирование занимает пару секунд, приём на это время прерывается
- Сменить канал у всех — переводит на выбранный канал всю группу разом: рация рассылает команду в эфир, и все, кто её слышит (включая ретранслятор), переходят одновременно через 10 секунд. Обходить каждое устройство руками не нужно — а это и не всегда возможно, часть раций в этот момент у других людей. Тот, кто команду не услышал, остаётся на прежнем канале; тот, кто перешёл, но за две минуты никого на новом канале не услышал, сам возвращается обратно — так рация не остаётся в одиночестве там, куда за ней никто не пришёл
- Мощность TX (1–22 дБм) — дальность передачи
- Duty Cycle EU868 — ограничение 1% для соответствия EU нормам
Аудио
- Громкость приёма (50–300%)
- PTT RMS (0–1000) — шумоподавление
- Звук окончания передачи — короткий сигнал, которым заканчивается чужая речь. Можно выключить, если мешает; настройка запоминается (с версии 4.4.5)
- Порог VOX (0–5000)
- Задержка VOX (200–2000 мс)
Тембр самого голоса не настраивается: в эфир он идёт кодеком Codec2 с постоянной скоростью 3200 бит/с, и «модуляции» как отдельной регулировки нет. Разборчивость меняют громкостью приёма и порогом PTT RMS: чем выше порог, тем больше тихих звуков отсекается до передачи.
Начиная с версии 4.4.5 все настройки этого раздела запоминаются и переживают перезапуск приложения. В более ранних версиях они сбрасывались к заводским после каждого закрытия — если подобранный порог VOX «сам собой» возвращался к 800, дело было в этом.
Beacon
- Интервал отправки маячка (Никогда / 1–60 мин / 1 час)
Список станций
- Таймаут удаления неактивных (15 мин – 24 часа)
История файлов
- Срок хранения (7 / 14 / 30 / 90 дней / Без ограничений)
Ретранслятор
- См. раздел Режим ретранслятора
Язык
- Русский / English — переключение мгновенное
Применить и сохранить
Кнопка отправляет настройки радио на устройство и сохраняет в NVS.
Режим ретранслятора
Устройство может работать как автономный ретранслятор — принимает пакеты LoRa и пересылает их с уменьшением TTL.
Что ретранслируется
| Тип пакета | Ретрансляция |
|---|---|
| Голос (0xA0) | Да |
| Текст (0xB0) | Да |
| Файлы (0xC0, 0xC1, 0xC3) | Да |
| Beacon (0xD0) | Да |
| Вызовы (0xE0–0xE6) | Да |
| File ACK (0xC2) | Нет |
Включение
- Перейдите в Настройки → секция Ретранслятор
- Опционально введите WiFi SSID и пароль для подключения к сети
- Опционально введите статический IP
- Нажмите ВКЛЮЧИТЬ РЕТРАНСЛЯТОР
- Подтвердите в диалоге
- Устройство перезагрузится в режиме ретранслятора
WiFi мониторинг
После включения устройство поднимает WiFi:
- Без SSID: создаёт точку доступа
MeshTRX-Repeater(пароль:meshtrx123) - С SSID: подключается к указанной сети (fallback на AP при неудаче)
Веб-интерфейс доступен по адресу:
- AP режим:
http://192.168.4.1 - STA режим: по указанному или полученному IP
Кого слышит ретранслятор: радар и карта
По ссылке «Кого слышит ретранслятор» открывается список станций, чьи маяки он принимает: позывной, уровень сигнала, заряд батареи и когда слышали в последний раз. Там же две картинки на выбор.
Радар рисуется прямо в браузере и работает всегда, даже когда у ретранслятора нет интернета. Кольца — расстояние, точки — станции; за центр берётся первая станция с координатами, потому что у самого ретранслятора GPS нет. Станции, о которых не слышали больше десяти минут, показываются тусклее.
Карта — обычный OpenStreetMap с метками. Тайлы подгружает браузер того, кто смотрит страницу, поэтому карта появится, только если у ретранслятора есть доступ в интернет; иначе останьтесь на радаре, он показывает то же самое.
Координаты берутся из маяков, которые станции рассылают сами. Маяк по умолчанию уходит раз в 5 минут, так что метка может отставать — рядом всегда написано, когда станцию слышали.
Подключение ретранслятора к домашней сети
Ретранслятор поднимает свою точку доступа MeshTRX-Repeater, а может вместо
неё подключиться к обычной сети — тогда на его странице заработает карта, а сам
он станет доступен из этой сети по своему адресу. Годится любая сеть, в том
числе раздача с телефона: ретранслятору нужен лишь выход в интернет для тайлов
карты.
В разделе «Сеть» на странице: Обновить список — поиск сетей вокруг, дальше выбираете свою, вводите пароль и жмёте Проверить. Ретранслятор подключится на несколько секунд и честно скажет, вышло или нет — ничего при этом не сохраняя. И только если проверка прошла, кнопка Подключить сохранит сеть. Порядок именно такой не случайно: опечатка в пароле иначе оставила бы ретранслятор на мачте без связи.
Пока ретранслятор подключён к сети, своя точка доступа выключена: лишний передатчик у самой антенны ни к чему. Если сеть пропала дольше чем на полминуты — роутер перезагрузился, сменили пароль, — точка поднимается сама, и на страницу снова можно зайти с телефона рядом. Сразу после сохранения новой сети точка ещё три минуты работает в любом случае: иначе вы вылетели бы с неё ровно в тот момент, когда страница показывает новый адрес. Кнопка Забыть сеть возвращает всё к исходному состоянию.
Веб-интерфейс
Страница обновляется каждые 5 секунд и показывает:
- Uptime — время работы
- Канал — текущий + возможность смены через dropdown
- TX Power — мощность передатчика
- Forwarded / Dropped — счётчики пакетов
- По типам: Audio, Text, File, Beacon
- RSSI диапазон — мин/макс уровень сигнала
- IP адрес — текущий
Смена канала
Канал можно сменить:
- Через веб-интерфейс: выпадающий список и кнопка Set — только у самого ретранслятора, кнопка Set all — у всей сети сразу
- Через приложение (подключиться по BLE и сменить в настройках)
Выключение
- Через приложение: Настройки → Выключить ретранслятор (BLE доступен в режиме ретранслятора)
- Устройство перезагрузится в нормальный режим
Дедупликация
- Кеш 64 записи, окно 30 секунд
- TTL уменьшается на 1 при каждой ретрансляции
- Пакеты с TTL=0 не ретранслируются
- Случайная задержка 10–50 мс для избежания коллизий
Кнопка на устройстве
В нормальном режиме
| Нажатие | Действие |
|---|---|
| Короткое (<1 сек) | Включить экран на 30 сек |
| Среднее (>1 сек) | Показать PIN и имя устройства на 10 сек |
| Долгое (>3 сек) | Выключить устройство |
В режиме ретранслятора
| Нажатие | Действие |
|---|---|
| Короткое | Включить экран |
| Среднее (>1 сек) | Сбросить статистику |
| Длинное (>3 сек) | Выйти из режима ретранслятора |
| Долгое (>8 сек) | Выключить устройство |
Выключение и включение
Выключателя питания на плате нет, поэтому его роль играет кнопка. Держите её три секунды: на экране крупно появится SLEEP, и устройство уснёт — радио, усилитель и экран обесточиваются, потребление падает до микроампер, то есть батареи хватает на месяцы ожидания.
Включается тем же нажатием: короткого хватает. Выход из этого сна — полный
старт устройства, как после подачи питания, поэтому связь и настройки
восстанавливаются сами. В журнале это видно строкой reason=DEEPSLEEP wake=BUTTON.
В режиме ретранслятора порог больше — восемь секунд: там короткие удержания уже заняты сбросом статистики и выходом из режима. Пока вы держите кнопку, на экране идёт обратный отсчёт, так что вслепую держать не придётся.
Индикация
OLED дисплей
Нормальный режим: канал, частота, RSSI, SNR, мощность TX, BLE статус, напряжение батареи (2 знака), VOX статус.
Режим ретранслятора: ** REPEATER **, канал, частота, счётчики FWD/DRP, последний RSSI/SNR, TTL.
Экран автоматически выключается через 30 секунд.
LED (GPIO35)
| Паттерн | Значение |
|---|---|
| Постоянно горит | Передача (TX) |
| Мигание ~300 мс | BLE ожидает подключения |
| Короткая вспышка 5 сек | BLE подключено |
| Быстрое мигание | Передача файла |
| Короткий импульс | Приём пакета (RX) |
Шапка приложения
| Элемент | Положение | Описание |
|---|---|---|
| Позывной | Слева сверху | Крупный белый текст |
| Имя устройства | Слева снизу | Мелкий серый текст |
| Статус | Справа сверху | ● Подключено (зелёный) / Отключено (серый) |
| Канал + частота | Справа снизу | Зелёный текст "CH 5 · 864.65 MHz" |
Нижняя панель навигации
5 вкладок: PTT, Чат, Файлы, Карта, Настройки. Активная вкладка подсвечена зелёным.
Технические характеристики
LoRa радио
| Параметр | Значение |
|---|---|
| Диапазон | 863.15–869.75 МГц |
| Каналы | 23 (шаг 300 кГц) |
| Bandwidth | 250 кГц |
| Spreading Factor | 7 |
| Coding Rate | 4/5 |
| Sync Word | 0x34 |
| Мощность | 1–22 дБм |
| Дальность | до 5+ км в прямой видимости; замеры в городе — голос ~1 км, текст ~2 км; в поле — голос до 2 км, дальше текст |
Аудио кодек
| Параметр | Значение |
|---|---|
| Кодек | Codec2 3200 bps |
| Частота дискретизации | 8000 Гц |
| Фрейм | 160 сэмплов = 20 мс = 8 байт |
| Пакет | 4 фрейма = 32 байта = 80 мс |
| LoRa пакет | 39 байт (7 заголовок + 32 аудио) |
BLE протокол
| Параметр | Значение |
|---|---|
| Сервис | Nordic UART Service (NUS) |
| MTU | 128 байт |
| Команды | 40+ (0x01–0x28) |
| Аудио пакет | 36 байт (cmd + flags + отправитель + 32 payload) |
| Авторизация | 4-значный PIN (из MAC) |
Пакеты LoRa
| Тип | ID | Размер |
|---|---|---|
| Голос | 0xA0 | 39 байт |
| Текст | 0xB0 | до 91 байт |
| Файл (заголовок) | 0xC0 | 36 байт |
| Файл (чанк) | 0xC1 | до 128 байт |
| Файл (конец) | 0xC3 | 6 байт |
| Beacon | 0xD0 | 36 байт |
| Вызовы | 0xE0–0xE6 | 8–47 байт |
Батарея
| Параметр | Значение |
|---|---|
| ADC | GPIO1 через делитель |
| Управление | GPIO37 enable |
| Калибровка | множитель 5.55 |
| Усреднение | 8 замеров |
| Диапазон | 3.0V (0%) – 4.2V (100%) |