Repository navigation
Smart UI 0.10
Smart UI 0.10 — API для приложений и разработчиков
Публичный выпуск SmartUI 0.10 для прежних шести плат. Главное дополнение — API v1, через который стороннее приложение может прочитать возможности ноды и управлять поддерживаемыми настройками. Обычное приложение MeshCore и USB-помощник 1.3 можно использовать по-прежнему. Публичный 0.09, его файлы и приватная линия остаются отдельно.
Что изменилось
- Настройки стали доступны разработчикам приложений. API позволяет читать настройки и, если запись разрешена, менять звук, громкость, общую мелодию, LED, GPS, защиту АКБ, AGC и доступные FEM-переключатели. Доступен также существующий мостовой режим пьезозуммера между двумя поддерживаемыми GPIO — это не ретрансляция сообщений или передача аудио. Он требует подходящего подключения между двумя выводами, не между выводом и землёй. Приложение сначала запрашивает возможности сборки: отсутствующее оборудование и неподдерживаемые функции не становятся доступными от одной команды.
- Калибровка батареи требует отдельного сохранения. Измеренное мультиметром напряжение используется для предварительного расчёта, затем приложение явно подтверждает применение. Заводская калибровка сбрасывается отдельно от остальных данных ноды.
- Настройка Wi-Fi через приложение. На платах с Wi-Fi данные сети можно передать по BLE или бинарному USB, проверить подключение и отдельно сохранить. До подтверждённого сохранения остаются прежние настройки; отмена, таймаут или разрыв сеанса удаляют черновик. Пароли не возвращаются в ответах API. Передача Wi-Fi-пароля через TCP не разрешена. Переключение режима подключения выполняется после ответа приложению и может разорвать текущий сеанс.
- Это расширение companion-протокола, не новый протокол радиообмена. Существующие команды MeshCore сохранены. Поддержка обнаруживается через
smartui_api:1, затемHELLO; API использует отдельный код0xC9, сигнатуруSUIи кадры не более 160 байт. Обычные сообщения LoRa не переводятся в новый формат. - Есть готовый Developer Kit. В архиве — Python SDK, пример чтения состояния, тесты, русская и английская спецификации и лицензия. Событий и подписок пока нет:
events=0. После неопределённого результата или разрыва связи приложение не должно считать запись успешной или слепо повторять действие.
API сам по себе не добавляет кнопки в стороннее приложение: его разработчик должен встроить поддержку новых команд.
Для обычного пользователя
Если вы пользуетесь экранным меню или USB-помощником, изучать API не требуется. Помощник остаётся версии 1.3; в этом выпуске расширена его совместимость с 0.10, без нового интерфейса.
- На ноде выберите Bluetooth, затем подключите USB-кабель к компьютеру. Телефон и сопряжение Bluetooth не нужны.
USB-компаньон— другой режим: в нём текстовая консоль помощника недоступна. - Откройте
SmartUI_USB_Helper_1.3.htmlв Chrome или Edge. Закройте флешер и другие программы, занявшие порт. Используйте кабель с передачей данных; V3 и Paper сначала разбудите кнопкой. - Нажмите
Выбрать USB-порти дождитесьКонсоль SmartUI подключена. Настройки прочитаются автоматически. Для повторного чтения нажмитеПрочитать настройки; изменение применяйте кнопкойСохранитьу поля. - Если экрана нет и нода уже работает USB-компаньоном, перезапустите её. После запуска прошивки, в первые 8 секунд, выполните долгое нажатие пользовательской кнопки: при успешном сохранении нода вернётся в Bluetooth. Не удерживайте ESP BOOT во время перезапуска — это вход в загрузчик.
AGC из 0.09 сохранён: Настройки → Система → AGC-сброс, по умолчанию ВЫКЛ. Это пробная профилактика с интервалом не менее 60 секунд и отсрочкой при активности; короткое окно без приёма остаётся. Доказанное исправление зависаний или улучшение связи не заявляется. Отдельного AGC-переключателя в USB-помощнике 1.3 нет.
Полная инструкция USB-помощника.
Для разработчика приложения
- Начните с русской инструкции API или английской спецификации. Не отправляйте новый opcode в неизвестную прошивку без discovery.
- Скачайте
SmartUI_Developer_Kit_0.10.zipи откройте егоREADME.md. Исходники сохраняют структуру репозитория; ссылки между инструкциями работают после распаковки без Интернета. - Python SDK требует Python 3.10+. TCP использует стандартную библиотеку; для USB нужен отдельно установленный
pyserial. BLE-адаптера в комплекте нет: подключайте SDK к существующему BLE-клиенту и проверяйте согласованный размер пакета. Ничего не устанавливается и не подключается автоматически. - Один транспортный сеанс должен принадлежать одному согласованному клиенту. Бинарный USB-компаньон и текстовая USB-консоль — разные режимы; нельзя одновременно занимать порт SDK, флешером и USB-помощником.
Безопасность Wi-Fi/TCP. В существующем TCP-режиме API допускает запись, если нода не находится в состоянии только чтения. Нового пароля доступа или TLS нет; первое приложение принимается автоматически, как и раньше. Используйте только доверенную локальную сеть, не пробрасывайте порт 5000 в Интернет. Ограничение передачи Wi-Fi-пароля каналами BLE/USB не делает TCP зашифрованным или защищённым от других участников сети.
Какой файл скачать
- T096 FEM ON:
T096_UI_0.10.uf2. - T114:
T114_UI_0.10.uf2. - ProMicro RA62:
ProMicro_RA62_UI_0.10.uf2. - Heltec V3 OLED:
Heltec_V3_UI_0.10-update.binилиHeltec_V3_UI_0.10-merged.bin. - Heltec V4.3 OLED FEM ON:
Heltec_V4.3_UI_0.10-update.binилиHeltec_V4.3_UI_0.10-merged.bin. - Wireless Paper:
Paper_UI_0.10-update.binилиPaper_UI_0.10-merged.bin. - Весь комплект:
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.
Обновление без очистки
- T096, T114 и ProMicro: скопируйте UF2 своей платы на диск загрузчика. Erase для обновления не требуется.
- Работающие V3, V4.3 и Paper: используйте
update.binпо адресу0x10000, без Erase, с совместимыми загрузчиком и таблицей разделов. merged.binпо адресу0x0— чистая установка: он заменяет identity, контакты и настройки даже без Erase. Сначала сохраните нужные данные. API не требует чистой установки.
Границы проверки
- CI должен собрать все шесть профилей из одного commit и проверить девять образов, встроенную версию, исходный SHA, хранилище ESP32, комплект файлов и контрольные суммы до публикации.
- Программные проверки охватывают обработчик API, доступ к настройкам, границы кадров, ответы по страницам, повтор запросов, ошибки и Python-клиент с имитацией транспорта. Они не заменяют испытание физической платы и длительного BLE/USB/TCP-соединения.
- Физическая совместимость со всеми сторонними приложениями, надёжность каждого экземпляра платы и отсутствие всех пауз радио/BLE не заявляются. Полная отложенная запись контактов всё ещё синхронна. Аппаратные результаты AGC в этом выпуске не измерялись.
Предыдущий публичный Smart UI 0.09 сохранён без замены файлов. При сообщении об ошибке укажите плату, имя прошивки, транспорт, команду и ответ без паролей, BLE PIN и полных дампов сеанса.