Skip to content

Smart UI 0.11

Choose a tag to compare

@github-actions github-actions released this 06 Oct 18:27

Smart UI 0.11 — сообщения, события и USB-помощник 1.4

Публичный выпуск для прежних шести плат. Главное — новая синхронизация сообщений для приложений и обновлённый USB-помощник. Получение сообщения приложением и прочтение человеком теперь можно подтверждать отдельно. Обычный MeshCore-клиент может работать по-прежнему: новая модель включается явно, формат радиообмена не меняется.

Скачать выпуск · Исходники 0.11 · Предыдущий публичный 0.10.

Исправление от 2026-10-07

Это обновление файлов того же публичного выпуска 0.11, не новая версия. Если файлы скачаны раньше, скачайте их и контрольные суммы заново. USB-помощник остаётся версии 1.4; объяснение ошибки хранилища в нём уточнено.

  1. На подключённой по USB T114 со сборкой 26520e96 подтверждён статус storage=recovery-required. В коде найдена ошибка восстановления настроек подключения nRF52: повреждённый файл дописывался вместо замены. Такой сценарий возможен также на T096 и ProMicro.
  2. Исправление заменяет повреждённые настройки подключения и не делает лишнюю запись при запуске с исправными настройками. Форматирование не выполняется; ключ и адрес ноды (identity), контакты и остальные настройки не очищаются. Если настройки самого подключения повреждены, они могут восстановиться в режиме Bluetooth по умолчанию.
  3. ADC этим исправлением не затронут. Калибровка батареи и её ограничения остаются прежними. USB-помощник поясняет ошибку подключения, а не предлагает сбрасывать всю ноду.
  4. T114, T096 и ProMicro обновляйте UF2 своей платы без FLASH_ERASE. Для работающих ESP32 используйте update.bin по 0x10000 с совместимой разметкой, без Erase. merged.bin по 0x0 по-прежнему заменяет пользовательские данные даже без Erase и не нужен для этого исправления.
  5. Статус ошибки прочитан с физической T114, но исправленная прошивка на неё ещё не установлена. Устранение проблемы на конкретной плате пока не подтверждено; программная проверка не заменяет проверку после обновления.

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

  1. Получено — не значит прочитано. Новый API отдельно подтверждает приём конкретного сообщения приложением, прочтение человеком, отключение напоминания и доступную отсрочку. Получение текста само по себе не снимает непрочитанное. Действия на ноде и в новом клиенте можно сверять между собой; старые приложения не переводятся в эту модель автоматически.
  2. Приложение может следить за изменениями. Добавлены события сообщений, настроек, подключения и батареи, в том числе изменения через локальное меню. После пропущенных событий или переподключения клиент повторно сверяет состояние. После перезапуска ноды прежние идентификаторы сообщений недействительны.
  3. USB-помощник 1.4 стал отдельным офлайн-приложением. В нём два режима: прежняя текстовая консоль и новый USB-компаньон с сообщениями, событиями, состоянием уведомлений и настройками API. Одновременно порт использует только один режим. Сохранены консольные настройки, свои быстрые фразы, мастер Wi-Fi и проверка файлов прошивки.
  4. Настройки показываются по возможностям прошивки. Звук, общая мелодия, громкость, тишина, LED платы и уведомлений, вибрация, GPS, защита АКБ и калибровка доступны там, где поддерживаются. В режиме API помощника есть также AGC, FEM и мостовой режим пьезозуммера. Отсутствующая функция скрывается, а неподтверждённая запись не показывается как успешная.
  5. Developer Kit расширен. Python SDK, примеры, тесты и инструкции RU/EN описывают согласование возможностей, синхронизацию, события и восстановление сеанса. Это расширение API v1, а не новый протокол LoRa и не автоматическое добавление кнопок в сторонние приложения.
  6. Исправлена калибровка батареи ProMicro через USB. Расчёт теперь использует последний пригодный замер от АКБ не старше 120 секунд, полученный с тем же коэффициентом. Текущее напряжение при USB не подставляется вместо него. Если опорного замера нет, ошибка source блокирует расчёт, а не предлагает неверную поправку.

Как пользоваться помощником

Скачайте SmartUI_USB_Helper_1.4.html или ZIP с инструкцией и снимками. Откройте HTML в Chrome или Edge на компьютере. Интернет помощнику не нужен; нужен USB-кабель с передачей данных. Закройте флешер и другие программы, занявшие порт. V3 и Paper сначала разбудите кнопкой.

Прежние настройки через консоль

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

Сообщения и новые настройки API

  1. На ноде выберите USB-компаньон. В помощнике выберите Сообщения и API (USB-компаньон) и подключите USB-порт. Если вы переходите из консоли, сначала отключите её соединение.
  2. Помощник проверит наличие API и покажет поддерживаемые настройки. Для работы с сообщениями отдельно нажмите Включить синхронизацию.
  3. Сверить с нодой читает состояния, не тексты. Получить сообщения переносит доступные тексты в память вкладки и подтверждает получение каждого точного сообщения. Это не прочтение и не отключение напоминаний.
  4. Прочитано отмечает сообщение прочитанным. Не напоминать отключает напоминание без отметки о прочтении. Отложить на 10 мин доступно только там, где нода разрешает отсрочку. Появление карточки ничего из этого не выполняет.
  5. После обрыва связи подключитесь заново, включите синхронизацию и сверьте состояние. Если результат записи неизвестен, не повторяйте её вслепую: она могла уже выполниться.

Это не архив сообщений. Тексты остаются только в памяти открытой вкладки. После закрытия страницы уже полученные тексты нельзя заново скачать из очереди ноды; при повторном подключении карточка может показывать только состояние. Нода держит ограниченный рабочий список — до 32 записей и 32 событий в RAM, не полную историю чата. Отправки новых сообщений из помощника в этом выпуске нет.

Журнал событий и поле разработчика не выводят пароли, PIN, тексты сообщений или сырые кадры. Push-уведомление лишь сообщает о наличии изменений; точные события читаются отдельно. На случай пропущенного уведомления помощник повторяет проверку раз в 7,5 секунды, пока соединение свободно и синхронизация включена. Фоновые вкладки браузер может замедлять. Надпись об активном уведомлении означает состояние цепочки уведомлений, а не измерение работы зуммера или LED.

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

Калибровка батареи ProMicro

На ProMicro/SuperMini измеряемое напряжение питания может повышаться при подключении USB. Поэтому показание при USB не гарантирует фактическое напряжение аккумулятора; такая особенность описана в разборе схемы платы. Это не подтверждение одинаковой аппаратной причины на всех экземплярах.

  1. Если в 0.10 уже сохранили неверную поправку, нажмите в помощнике Заводская калибровка ADC и подтвердите. Сбрасывается только калибровка, не ключ ноды и не контакты. Обычную защиту АКБ 3,2 В оставьте включённой.
  2. Отключите USB, запустите ноду от аккумулятора и дождитесь замера. Измерьте мультиметром напряжение непосредственно на аккумуляторе.
  3. Подключите USB без перезапуска ноды. Пока опорному замеру не исполнилось две минуты, введите измеренное напряжение и нажмите Рассчитать поправку. При ERR settings source или ERR api source повторите шаги с питанием от АКБ.
  4. Проверьте расчёт и отдельно нажмите Сохранить калибровку с подтверждением. Затем отключите USB и сравните показание с мультиметром при питании от аккумулятора.

Штатный коэффициент ProMicro — 1.815, допустимый диапазон остался 1.36125…2.26875. Значение 1.97 не является верхним пределом. Исправлен выбор источника для расчёта; точность на конкретной физической плате ещё нужно проверить.

Настройки: важные ограничения

  1. Калибровка батареи: сначала измерьте напряжение мультиметром, получите предварительный расчёт, затем отдельно подтвердите сохранение. Сброс заводской калибровки затрагивает только ADC, не контакты и ключи. При выключении защиты 3,2 В остаётся аварийный порог 2,7 В — это не рекомендуемая цель разряда.
  2. AGC: Настройки → Система → AGC-сброс, по умолчанию ВЫКЛ; долгое нажатие переключает и сохраняет выбор. Интервал не менее 60 секунд, с отсрочкой при активности. Это не перезапуск ноды, а пробная профилактика с коротким окном без приёма. Доказанное устранение зависаний и измеренное улучшение связи не заявляются.
  3. Мостовой звук: это существующий режим пьезозуммера между двумя поддерживаемыми GPIO, не передача аудио и не ретрансляция сообщений. Требуется совместимый плавающий пьезоизлучатель между штатными выводами; такой выход нельзя соединять с землёй. Одной программной поддержки недостаточно для произвольной распайки.
  4. Wi-Fi: на V3, V4.3 и Paper введите сеть и пароль, проверьте подключение и отдельно сохраните успешный результат. До сохранения прежняя сеть не заменяется. Отмена, разрыв сеанса или таймаут удаляют черновик. Настройка Wi-Fi через API разрешена по BLE/USB, не через TCP той же настраиваемой сети. На T096, T114 и ProMicro Wi-Fi нет.

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

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

  1. Начните с инструкции RU или спецификации EN. Сначала discovery и HELLO, затем проверка отдельных возможностей; не определяйте поддержку только по номеру версии или названию платы.
  2. Скачайте SmartUI_Developer_Kit_0.11.zip. Внутри — SDK, примеры, тесты, инструкции и лицензия. Python 3.10+; TCP использует стандартную библиотеку, USB требует pyserial. Готового BLE-адаптера в комплекте нет: нужен существующий BLE-клиент и один согласованный обработчик транспорта.
  3. Синхронизацию включайте явно на сеанс. received подтверждает получение точного кадра приложением, а read — отдельное действие прочтения. Подписки, снимки состояний и ограниченный журнал событий требуют обработки пропусков, переподключений и смены загрузки ноды. Подсказка push не заменяет чтение событий.
  4. Существующие companion-команды сохранены. API использует 0xC9, сигнатуру SUI и кадры до 160 байт; поддержка синхронизации и событий объявляется отдельно. Доступность API не означает, что стороннее приложение уже умеет им пользоваться. Не запускайте два независимых читателя одного USB/BLE/TCP-сеанса.

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

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

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

Не используйте эти образы для V4 TFT, T114 без дисплея, FakeTec/HT-RA62 или произвольной ProMicro-распайки. Поддерживаемые платы.

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

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

Инструкция по прошивке · Проверка SHA-256.

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

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

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