Repository navigation
Smart UI 0.12
Smart UI 0.12 — настройки через Companion CLI
В этом выпуске переходим на более привычную для MeshCore схему взаимодействия с приложениями. Наш отдельный API пока отправлен в архив. Вместо него — короткие команды через стандартный транспорт Companion CLI, по схеме PR #3298.
Что изменилось простыми словами
- Приложению проще добраться до настроек ноды. Звук, мелодия, ADC, LED, GPS, AGC, FEM и мостовой звук доступны через команды
ui ..., когда функция поддерживается платой. Для разработчиков подготовлены описание, примеры и тесты. - USB-помощник обновлён до 1.5. Сохранена привычная консоль; режим USB-компаньона теперь тоже предназначен для настройки. Поддерживаемые функции определяются по ответу прошивки, а не по названию платы.
- Старый API сохранён в 0.11. Собственный протокол
0xC9, события и синхронизация прочтения в 0.12 выключены. В новом помощнике нет чата и кнопок «прочитано на телефоне». Чат, непрочитанные ЛС и напоминания на самой ноде остаются. - Исправлено сохранение FEM. Его параметры теперь записываются в существующие поля настроек и переживают перезапуск. Ранее утраченные значения восстановить нельзя; при отсутствии полей используются прежние значения по умолчанию платы.
- Сохранены проверки ADC и записи настроек. Калибровка требует пригодного замера и отдельного применения. Отказ памяти возвращает ошибку, а не ложное «успешно». Смена режима подключения откладывается до передачи подтверждения приложению.
- Сеть Wi-Fi сначала проверяется, затем сохраняется. Можно отменить настройку, не заменяя прежнюю сеть. Пароль не возвращается в ответах. На nRF52 Wi-Fi не появляется: его нет аппаратно.
Что показал аудит
Прямое копирование всего PR небезопасно для нашей сборки: в разборе некоторых команд есть неограниченное копирование, недостаточная проверка чисел и ответы об успехе без проверки сохранения. Поэтому перенесена схема локального транспорта, а настройки идут через наши проверяемые обработчики. Произвольного доступа к старой служебной консоли, форматированию и экспорту ключей через CMD66 не добавляли.
Основа остаётся MeshCore 1.17.1 / PowerSaving, companion-протокол 13. Признак расширения — smartui_cli:1. Это не полный переход на upstream dev, не заявление поддержки всех команд протокола 14 и не удалённый CLI через LoRa. Приватная ветка не менялась.
Как пользоваться помощником
- Скачайте
SmartUI_USB_Helper_1.5.htmlлибо распакуйте ZIP помощника. HTML открывается в браузере, его не нужно прошивать в ноду. - Откройте файл в Chrome или Edge на компьютере. Закройте веб-флешер и другие программы, использующие COM-порт.
- Если на ноде выбран Bluetooth или Wi-Fi, выберите в помощнике «Настройки (консоль)». Если на ноде выбран USB-компаньон — «Настройки (USB-компаньон)». В обоих случаях нужен USB-кабель с передачей данных.
- Подключите порт, дождитесь подтверждения и чтения настроек. V3 и Paper предварительно разбудите кнопкой.
- Меняйте нужное поле и сохраняйте его отдельно. Перед сменой режима отключитесь. При таймауте переподключитесь и перечитайте состояние: неизвестно, успела ли запись выполниться, поэтому помощник не повторяет её автоматически.
Помощник работает офлайн. Полная инструкция, ADC, Wi-Fi и устройства без экрана.
Если написано «только для чтения». Это может означать ошибку хранилища, а не проблему браузера. В выпуск включена безопасная диагностика этапа отказа и состояния памяти. Она не читает содержимое ключей и не форматирует память. Переход на CLI не объявляется исправлением повреждённой файловой системы; автоматическое восстановление конкретной T114 не подтверждено.
Для разработчиков приложений
- Прочитайте руководство интеграции и скачайте Developer Kit 0.12.
- В существующем companion-сеансе запросите CMD40 и проверьте
smartui_cli:1. Затем отправляйте CMD66 с текстом и принимайте RESP29. Номер версии сам по себе не подтверждает поддержку расширения. - Используйте
ui hello,ui caps <key>,ui get <key>,ui set <key> <value>. Команды и ответы ограничены 156 байтами текста; весь кадр — 160. Можно добавлять двухсимвольный префикс запросаAB|. В каждый момент ожидается один ответ. - Смена Wi-Fi и режима подключения, калибровка ADC — отдельные последовательности, описанные в руководстве. Ошибки, таймаут и смену сеанса нужно обрабатывать явно. Автоматические повторы записи, длинные ответы, страничное чтение и события в этом протоколе не предусмотрены.
- Старый API не перенесён автоматически. Существующему клиенту 0.11 нужен отдельный адаптер CLI; стандартное приложение MeshCore не получит новые кнопки само. Синхронизация «прочитано на телефоне — не напоминать на ноде» остаётся в архивной версии.
Wi-Fi/TCP допускает управление на порту 5000 без отдельного пароля и TLS. Используйте только доверенную локальную сеть, не открывайте порт в Интернет. Перенос CLI не добавляет сетевую аутентификацию. Настройка Wi-Fi разрешена по BLE/USB, не по TCP той же сети.
Какой файл скачать
- T096 FEM ON:
T096_UI_0.12.uf2. - T114:
T114_UI_0.12.uf2. - ProMicro nRF52840 + Heltec RA62:
ProMicro_RA62_UI_0.12.uf2. - Heltec V3 OLED:
Heltec_V3_UI_0.12-update.binилиHeltec_V3_UI_0.12-merged.bin. - Heltec V4.3 OLED FEM ON:
Heltec_V4.3_UI_0.12-update.binилиHeltec_V4.3_UI_0.12-merged.bin. - Heltec Wireless Paper:
Paper_UI_0.12-update.binилиPaper_UI_0.12-merged.bin. - Всё вместе:
SmartUI_0.12_all-boards.zip. Отдельно — помощник 1.5 и Developer Kit 0.12.
Всего 17 файлов: девять образов для шести плат, HTML и ZIP помощника, Developer Kit, примечания, две таблицы SHA-256, манифест и общий архив. Хеши образов, помощника и Developer Kit, а также исходный commit указаны в RELEASE-MANIFEST.json. Общий ZIP в эти таблицы хешей не входит.
Обновление без очистки
- T096, T114, ProMicro: UF2 своей платы поверх через загрузчик;
FLASH_ERASEдля обычного обновления не нужен. - Работающие V3, V4.3, Paper:
update.binпо0x10000, без Erase, с совместимыми загрузчиком и разметкой разделов. merged.binпо0x0— чистая установка. Он заменяет identity, контакты и настройки даже без Erase. Перед такой установкой сохраните нужные данные. Новый CLI сам по себе не требует чистой установки.
Не используйте файлы для V4 TFT, T114 без дисплея, FakeTec или произвольной ProMicro-распайки. Платы · Прошивка и проверка файлов.
Границы проверки
Публикация разрешается только после CI: сборки шести профилей из одного commit, проверки девяти образов, версии, исходного SHA, SPIFFS и всех комплектов. Host-тесты охватывают CLI, ошибки и лимиты, настройки, сохранение FEM, сеансы, Wi-Fi, ADC и помощник с имитацией USB. Проверки UI используют реальные метрики шрифтов и геометрию дисплеев.
Это программные проверки, не испытание всех физических плат. Аппаратная стабильность, отсутствие всех пауз радио/BLE и готовая интеграция со сторонними приложениями не заявляются. Полная отложенная запись контактов всё ещё может задержать основной цикл. AGC остаётся опциональной профилактикой с коротким окном без приёма, не доказанным лечением зависаний.
Smart UI 0.11 с прежним API и Helper 1.4 сохранён без замены файлов. Для отчёта об ошибке нужны плата, версия/build, режим подключения, действие и текст ошибки; не публикуйте пароли, ключи и сырые дампы сеанса.