Skip to content

Smart UI 0.10

Choose a tag to compare

@github-actions github-actions released this 06 Oct 13:31
· 0 commits to smartui-0.09 since this release

Smart UI 0.10 — API для приложений и разработчиков

Публичный выпуск SmartUI 0.10 для прежних шести плат. Главное дополнение — API v1, через который стороннее приложение может прочитать возможности ноды и управлять поддерживаемыми настройками. Обычное приложение MeshCore и USB-помощник 1.3 можно использовать по-прежнему. Публичный 0.09, его файлы и приватная линия остаются отдельно.

Что изменилось

  1. Настройки стали доступны разработчикам приложений. API позволяет читать настройки и, если запись разрешена, менять звук, громкость, общую мелодию, LED, GPS, защиту АКБ, AGC и доступные FEM-переключатели. Доступен также существующий мостовой режим пьезозуммера между двумя поддерживаемыми GPIO — это не ретрансляция сообщений или передача аудио. Он требует подходящего подключения между двумя выводами, не между выводом и землёй. Приложение сначала запрашивает возможности сборки: отсутствующее оборудование и неподдерживаемые функции не становятся доступными от одной команды.
  2. Калибровка батареи требует отдельного сохранения. Измеренное мультиметром напряжение используется для предварительного расчёта, затем приложение явно подтверждает применение. Заводская калибровка сбрасывается отдельно от остальных данных ноды.
  3. Настройка Wi-Fi через приложение. На платах с Wi-Fi данные сети можно передать по BLE или бинарному USB, проверить подключение и отдельно сохранить. До подтверждённого сохранения остаются прежние настройки; отмена, таймаут или разрыв сеанса удаляют черновик. Пароли не возвращаются в ответах API. Передача Wi-Fi-пароля через TCP не разрешена. Переключение режима подключения выполняется после ответа приложению и может разорвать текущий сеанс.
  4. Это расширение companion-протокола, не новый протокол радиообмена. Существующие команды MeshCore сохранены. Поддержка обнаруживается через smartui_api:1, затем HELLO; API использует отдельный код 0xC9, сигнатуру SUI и кадры не более 160 байт. Обычные сообщения LoRa не переводятся в новый формат.
  5. Есть готовый Developer Kit. В архиве — Python SDK, пример чтения состояния, тесты, русская и английская спецификации и лицензия. Событий и подписок пока нет: events=0. После неопределённого результата или разрыва связи приложение не должно считать запись успешной или слепо повторять действие.

API сам по себе не добавляет кнопки в стороннее приложение: его разработчик должен встроить поддержку новых команд.

Для обычного пользователя

Если вы пользуетесь экранным меню или USB-помощником, изучать API не требуется. Помощник остаётся версии 1.3; в этом выпуске расширена его совместимость с 0.10, без нового интерфейса.

  1. На ноде выберите Bluetooth, затем подключите USB-кабель к компьютеру. Телефон и сопряжение Bluetooth не нужны. USB-компаньон — другой режим: в нём текстовая консоль помощника недоступна.
  2. Откройте SmartUI_USB_Helper_1.3.html в Chrome или Edge. Закройте флешер и другие программы, занявшие порт. Используйте кабель с передачей данных; V3 и Paper сначала разбудите кнопкой.
  3. Нажмите Выбрать USB-порт и дождитесь Консоль SmartUI подключена. Настройки прочитаются автоматически. Для повторного чтения нажмите Прочитать настройки; изменение применяйте кнопкой Сохранить у поля.
  4. Если экрана нет и нода уже работает USB-компаньоном, перезапустите её. После запуска прошивки, в первые 8 секунд, выполните долгое нажатие пользовательской кнопки: при успешном сохранении нода вернётся в Bluetooth. Не удерживайте ESP BOOT во время перезапуска — это вход в загрузчик.

AGC из 0.09 сохранён: Настройки → Система → AGC-сброс, по умолчанию ВЫКЛ. Это пробная профилактика с интервалом не менее 60 секунд и отсрочкой при активности; короткое окно без приёма остаётся. Доказанное исправление зависаний или улучшение связи не заявляется. Отдельного AGC-переключателя в USB-помощнике 1.3 нет.

Полная инструкция USB-помощника.

Для разработчика приложения

  1. Начните с русской инструкции API или английской спецификации. Не отправляйте новый opcode в неизвестную прошивку без discovery.
  2. Скачайте SmartUI_Developer_Kit_0.10.zip и откройте его README.md. Исходники сохраняют структуру репозитория; ссылки между инструкциями работают после распаковки без Интернета.
  3. Python SDK требует Python 3.10+. TCP использует стандартную библиотеку; для USB нужен отдельно установленный pyserial. BLE-адаптера в комплекте нет: подключайте SDK к существующему BLE-клиенту и проверяйте согласованный размер пакета. Ничего не устанавливается и не подключается автоматически.
  4. Один транспортный сеанс должен принадлежать одному согласованному клиенту. Бинарный USB-компаньон и текстовая USB-консоль — разные режимы; нельзя одновременно занимать порт SDK, флешером и USB-помощником.

Безопасность Wi-Fi/TCP. В существующем TCP-режиме API допускает запись, если нода не находится в состоянии только чтения. Нового пароля доступа или TLS нет; первое приложение принимается автоматически, как и раньше. Используйте только доверенную локальную сеть, не пробрасывайте порт 5000 в Интернет. Ограничение передачи Wi-Fi-пароля каналами BLE/USB не делает TCP зашифрованным или защищённым от других участников сети.

Какой файл скачать

  1. T096 FEM ON: T096_UI_0.10.uf2.
  2. T114: T114_UI_0.10.uf2.
  3. ProMicro RA62: ProMicro_RA62_UI_0.10.uf2.
  4. Heltec V3 OLED: Heltec_V3_UI_0.10-update.bin или Heltec_V3_UI_0.10-merged.bin.
  5. Heltec V4.3 OLED FEM ON: Heltec_V4.3_UI_0.10-update.bin или Heltec_V4.3_UI_0.10-merged.bin.
  6. Wireless Paper: Paper_UI_0.10-update.bin или Paper_UI_0.10-merged.bin.
  7. Весь комплект: SmartUI_0.10_all-boards.zip. USB-помощник: SmartUI_USB_Helper_1.3.html или SmartUI_USB_Helper_1.3.zip. Для разработчика: SmartUI_Developer_Kit_0.10.zip, также включённый в общий архив.

В выпуске 17 файлов: девять прошивок, два файла помощника, Developer Kit, примечания, две таблицы SHA-256 для прошивок, манифест и общий ZIP. Хеш Developer Kit указан в RELEASE-MANIFEST.json; внутри самого набора есть манифест исходников и SHA256SUMS.txt.

Обновление без очистки

  1. T096, T114 и ProMicro: скопируйте UF2 своей платы на диск загрузчика. Erase для обновления не требуется.
  2. Работающие V3, V4.3 и Paper: используйте update.bin по адресу 0x10000, без Erase, с совместимыми загрузчиком и таблицей разделов.
  3. merged.bin по адресу 0x0 — чистая установка: он заменяет identity, контакты и настройки даже без Erase. Сначала сохраните нужные данные. API не требует чистой установки.

Границы проверки

  1. CI должен собрать все шесть профилей из одного commit и проверить девять образов, встроенную версию, исходный SHA, хранилище ESP32, комплект файлов и контрольные суммы до публикации.
  2. Программные проверки охватывают обработчик API, доступ к настройкам, границы кадров, ответы по страницам, повтор запросов, ошибки и Python-клиент с имитацией транспорта. Они не заменяют испытание физической платы и длительного BLE/USB/TCP-соединения.
  3. Физическая совместимость со всеми сторонними приложениями, надёжность каждого экземпляра платы и отсутствие всех пауз радио/BLE не заявляются. Полная отложенная запись контактов всё ещё синхронна. Аппаратные результаты AGC в этом выпуске не измерялись.

Предыдущий публичный Smart UI 0.09 сохранён без замены файлов. При сообщении об ошибке укажите плату, имя прошивки, транспорт, команду и ответ без паролей, BLE PIN и полных дампов сеанса.