diff --git a/README.md b/README.md index cac9343c..f6c618ba 100644 --- a/README.md +++ b/README.md @@ -397,6 +397,9 @@ MQTT-репитер использует: **Исправлено** +- коррекция ADC стала доступна на всех платах и отсчитывается от заводского значения платы: механизм вынесен в базовый класс `ESP32Board` (`adcMultiplierBase()` + `adcMultiplier()`), платы со своей формулой переведены на него (Heltec E213/E290/T190, tracker_v2, v2, ThinkNode M2/M5), а Station G2/G3 и T-Beam с PMU честно отвечают, что подстройка не поддерживается; +- в мастере настройки поле `ADC` открывается с действующего множителя платы (Heltec V4 — `5.420`, Meshadventurer — `2.000`) вместо нуля, формат `x.xxx`; на экране батареи заводское значение помечается словом `base`. У Meshadventurer множитель раньше был зашит числом 2 и команда `set adc.multiplier` отвечала `Error: unsupported`; +- экран загрузки: `meshcore.io`, версия с датой сборки и адрес `posadmesh.ru`; строка `< Repeater >` убрана; - ответы устройства в мастере настройки показывались строкой поверх экрана и сливались с содержимым (например `OK - reboot to apply` в верхней части). Теперь это модальное всплывающее окно с рамкой, собственным фоном, переносом текста и кнопкой `OK`; закрывается коротким нажатием, пока открыто — экран под ним не меняется; - мастер настройки: при выходе из меню отправлялась команда `set radio` с нулевыми значениями рабочей копии, если в этой сессии не открывали ни один радиопункт (например сразу `Save & exit`) — устройство отвечало `Error, invalid radio params`. Теперь радиопараметры отправляются только когда их действительно правили, значения перед отправкой перечитываются из настроек узла, а при каждом входе в мастер рабочая копия обновляется; - `set mqtt.meshcoretel on|off` не срабатывал: обработчик сравнивался со строкой `set mqtt.mqtt.meshcoretel `. Алиас `set mqtt.meshcoretel.ru on|off` читает значение по правильному смещению; diff --git a/posadmesh-docs/_assets/wizard/13-battery.png b/posadmesh-docs/_assets/wizard/13-battery.png index 674d4f7e..7ed1a41b 100644 Binary files a/posadmesh-docs/_assets/wizard/13-battery.png and b/posadmesh-docs/_assets/wizard/13-battery.png differ diff --git a/posadmesh-docs/_assets/wizard/14-adc.png b/posadmesh-docs/_assets/wizard/14-adc.png index 87edb441..753e7c30 100644 Binary files a/posadmesh-docs/_assets/wizard/14-adc.png and b/posadmesh-docs/_assets/wizard/14-adc.png differ diff --git a/posadmesh-docs/_assets/wizard/16-boot.png b/posadmesh-docs/_assets/wizard/16-boot.png new file mode 100644 index 00000000..c360b892 Binary files /dev/null and b/posadmesh-docs/_assets/wizard/16-boot.png differ diff --git a/posadmesh-docs/device-setup.md b/posadmesh-docs/device-setup.md index 71d731e3..9bfc3807 100644 --- a/posadmesh-docs/device-setup.md +++ b/posadmesh-docs/device-setup.md @@ -33,7 +33,7 @@ | `SF` | spreading factor, 5–12 | `set radio` | | `TX power` | мощность передатчика, 1–30 дБм | `set tx` | | `Battery` | напряжение, процент заряда и текущий множитель ADC — только просмотр | `get battery`, `get adc.multiplier` | -| `ADC` | множитель ADC для калибровки измерения батареи (0.00 — заводское значение платы) | `set adc.multiplier` | +| `ADC` | множитель ADC для калибровки измерения батареи: открывается с заводского значения платы (Heltec V4 — 5.420, Meshadventurer — 2.000), `0.000` возвращает заводское | `set adc.multiplier` | | `Repeat` | пересылка пакетов включена или выключена | `set repeat` | | `Path hash` | размер хэша пути: 0, 1 или 2 байта | `set path.hash.mode` | | `Advert int` | интервал advert в минутах (0 — выключено, иначе 60–240) | `set advert.interval` | @@ -124,9 +124,21 @@ Процент берётся у платы, если она умеет его считать (например T-Beam с PMU). Если не умеет — считается линейно по напряжению между `getBatteryMinMilliVolts()` и `getBatteryMaxMilliVolts()` платы; на большинстве плат это 3000–4200 мВ. -Пункт `ADC` правит множитель ADC поразрядно, формат `x.xx` — так же, как полоса: длинное нажатие входит в правку разряда, короткое `+1`, двойное `−1`, длинное применяет разряд, короткое после применения переходит к следующему разряду, а на пункте `Save & exit` длинное нажатие сохраняет значение и возвращает в меню. Под цифрами видно измеренное напряжение, поэтому калибровать удобно прямо на экране: подстроили множитель — сразу видите новое напряжение. +Пункт `ADC` правит множитель ADC поразрядно, формат `x.xxx` — так же, как полоса: длинное нажатие входит в правку разряда, короткое `+1`, двойное `−1`, длинное применяет разряд, короткое после применения переходит к следующему разряду, а на пункте `Save & exit` длинное нажатие сохраняет значение и возвращает в меню. Под цифрами видно измеренное напряжение, поэтому калибровать удобно прямо на экране: подстроили множитель — сразу видите новое напряжение. -`0.00` означает «использовать заводское значение платы»: команда `set adc.multiplier 0` возвращает расчёт по умолчанию. Значение применяется командой `set adc.multiplier ` — той же, что и в последовательном CLI. +Поле открывается **не с нуля, а с действующего значения платы**: у Heltec V4 это `5.420`, у Meshadventurer — `2.000`. Так видно, от чего отсчитывается коррекция, и не нужно угадывать заводское число. `0.000` означает «вернуть заводское значение платы»: команда `set adc.multiplier 0` сбрасывает подстройку. Значение применяется командой `set adc.multiplier ` — той же, что и в последовательном CLI. + +Коррекция доступна на всех платах, которые измеряют батарею через ADC: механизм живёт в базовом классе `ESP32Board` (`adcMultiplierBase()` + `adcMultiplier()`), платы со своей формулой переведены на него. Платы, у которых батарея измеряется не через ADC (Station G2/G3, T-Beam с PMU), честно сообщают, что подстройка не поддерживается — команда вернёт `Error: unsupported`. + +На экране батареи действующий множитель помечается словом `base`, если подстройки нет и используется заводское значение платы. + +## Экран загрузки + +При включении узел показывает логотип, ссылку на базовый проект, версию прошивки с датой сборки и адрес проекта: + +![Экран загрузки](_assets/wizard/16-boot.png) + +Версия — это база upstream и дата сборки (`v1.18.0 (15 Oct 2026)`), адрес `posadmesh.ru` ведёт на сайт проекта. ## Всплывающие сообщения diff --git a/release-notes.yml b/release-notes.yml index 6627b183..2460315e 100644 --- a/release-notes.yml +++ b/release-notes.yml @@ -911,7 +911,113 @@ releases: - type: changed area: release text: "Репозиторий переехал на , workflow GitHub Actions удалены: прошивки собираются локально через `posadmesh-build.sh` или ручным workflow Gitea Actions, а теги и релизы создаются вручную в веб-интерфейсе git.meshinfo.ru." - breaking_changes: - - "Формат тегов меняется на `repeater-mqtt-*`: прежние теги `observer-eastmesh-*` больше ничего не запускают и остаются только как история." - - "`EASTMESH_VERSION` переименована в `POSADMESH_VERSION`: локальные скрипты со старым именем соберут версию без суффикса PosadMesh." - - "Линия companion-прошивок удалена: трек `companion-wifi` и companion-сборки больше не выпускаются." + - track: repeater-mqtt-bridge + version: "2026.10.1" + tag: "repeater-mqtt-bridge-v2026.10.1" + date: "2026-10-16" + previous_version: "2026.10.0" + summary: "База обновлена до upstream MeshCore v1.18.0. В мастере настройки на дисплее появились экран батареи и калибровка ADC от заводского значения платы, ответы устройства показываются всплывающим окном с кнопкой OK, исправлена ложная ошибка invalid radio params при выходе из мастера, экран загрузки показывает версию и адрес posadmesh.ru. Настройка частоты, полосы, SF, CR и мощности доступна с экрана и кнопки." + changes: + - type: changed + area: upstream + text: "База прошивки обновлена до upstream MeshCore v1.18.0 (было v1.17.1): влит релизный тег `repeater-v1.18.0` через интеграционную ветку, сохранены возможности PosadMesh. Добавлена плата Waveshare ESP32-S3 LR1121 (`Waveshare_S3_LR1121_repeater_mqtt`, `_espnow`, `_bridge`), всего 112 MQTT-целей." + - type: added + area: ui + text: "Мастер настройки репитера (дисплей и кнопка): экран `Battery` с напряжением, процентом заряда, полоской и действующим множителем ADC, и пункт `ADC` для калибровки измерения батареи поразрядно в формате `x.xxx`." + - type: changed + area: ui + text: "Поле `ADC` открывается с действующего значения платы (Heltec V4 — `5.420`, Meshadventurer — `2.000`) вместо нуля; `0.000` возвращает заводское значение. На экране батареи заводское значение помечается словом `base`." + - type: changed + area: ui + text: "Ответы устройства в мастере показываются модальным всплывающим окном с рамкой, собственным фоном, переносом текста и кнопкой `OK`; короткое нажатие закрывает окно, пока оно открыто — экран под ним не меняется." + - type: fixed + area: ui + text: "Исправлена ложная ошибка `Error, invalid radio params` при выходе из мастера через `Save & exit`: команда `set radio` отправлялась с нулевыми значениями рабочей копии, если в этой сессии не открывали ни один радиопункт. Теперь радиопараметры отправляются только после реальной правки." + - type: changed + area: ui + text: "Экран загрузки: ссылка `meshcore.io`, версия с датой сборки и адрес `posadmesh.ru`; строка `< Repeater >` убрана." + - type: fixed + area: adc + text: "Коррекция ADC доступна на всех платах: механизм вынесен в базовый класс `ESP32Board` (`adcMultiplierBase()` + `adcMultiplier()`), платы со своей формулой переведены на него (Heltec E213/E290/T190, tracker_v2, v2, ThinkNode M2/M5). Платы без ADC для батареи (Station G2/G3, T-Beam с PMU) отвечают, что подстройка не поддерживается." + - type: fixed + area: adc + text: "Meshadventurer: добавлена поддержка множителя делителя батареи. Раньше делитель был зашит числом `2`, и команда `set adc.multiplier` отвечала `Error: unsupported`." + - type: docs + area: docs + text: "Страница «Настройка с дисплея и кнопки» дополнена разделами про батарею и калибровку ADC, всплывающие окна и экран загрузки, с макетами всех экранов; те же материалы опубликованы в вики проекта." + breaking_changes: [] + + - track: repeater-mqtt-espnow + version: "2026.10.1" + tag: "repeater-mqtt-espnow-v2026.10.1" + date: "2026-10-16" + previous_version: "2026.10.0" + summary: "База обновлена до upstream MeshCore v1.18.0. В мастере настройки на дисплее появились экран батареи и калибровка ADC от заводского значения платы, ответы устройства показываются всплывающим окном с кнопкой OK, исправлена ложная ошибка invalid radio params при выходе из мастера, экран загрузки показывает версию и адрес posadmesh.ru. Настройка частоты, полосы, SF, CR и мощности доступна с экрана и кнопки." + changes: + - type: changed + area: upstream + text: "База прошивки обновлена до upstream MeshCore v1.18.0 (было v1.17.1): влит релизный тег `repeater-v1.18.0` через интеграционную ветку, сохранены возможности PosadMesh. Добавлена плата Waveshare ESP32-S3 LR1121 (`Waveshare_S3_LR1121_repeater_mqtt`, `_espnow`, `_bridge`), всего 112 MQTT-целей." + - type: added + area: ui + text: "Мастер настройки репитера (дисплей и кнопка): экран `Battery` с напряжением, процентом заряда, полоской и действующим множителем ADC, и пункт `ADC` для калибровки измерения батареи поразрядно в формате `x.xxx`." + - type: changed + area: ui + text: "Поле `ADC` открывается с действующего значения платы (Heltec V4 — `5.420`, Meshadventurer — `2.000`) вместо нуля; `0.000` возвращает заводское значение. На экране батареи заводское значение помечается словом `base`." + - type: changed + area: ui + text: "Ответы устройства в мастере показываются модальным всплывающим окном с рамкой, собственным фоном, переносом текста и кнопкой `OK`; короткое нажатие закрывает окно, пока оно открыто — экран под ним не меняется." + - type: fixed + area: ui + text: "Исправлена ложная ошибка `Error, invalid radio params` при выходе из мастера через `Save & exit`: команда `set radio` отправлялась с нулевыми значениями рабочей копии, если в этой сессии не открывали ни один радиопункт. Теперь радиопараметры отправляются только после реальной правки." + - type: changed + area: ui + text: "Экран загрузки: ссылка `meshcore.io`, версия с датой сборки и адрес `posadmesh.ru`; строка `< Repeater >` убрана." + - type: fixed + area: adc + text: "Коррекция ADC доступна на всех платах: механизм вынесен в базовый класс `ESP32Board` (`adcMultiplierBase()` + `adcMultiplier()`), платы со своей формулой переведены на него (Heltec E213/E290/T190, tracker_v2, v2, ThinkNode M2/M5). Платы без ADC для батареи (Station G2/G3, T-Beam с PMU) отвечают, что подстройка не поддерживается." + - type: fixed + area: adc + text: "Meshadventurer: добавлена поддержка множителя делителя батареи. Раньше делитель был зашит числом `2`, и команда `set adc.multiplier` отвечала `Error: unsupported`." + - type: docs + area: docs + text: "Страница «Настройка с дисплея и кнопки» дополнена разделами про батарею и калибровку ADC, всплывающие окна и экран загрузки, с макетами всех экранов; те же материалы опубликованы в вики проекта." + breaking_changes: [] + + - track: repeater-mqtt + version: "2026.10.1" + tag: "repeater-mqtt-v2026.10.1" + date: "2026-10-16" + previous_version: "2026.10.0" + summary: "База обновлена до upstream MeshCore v1.18.0. В мастере настройки на дисплее появились экран батареи и калибровка ADC от заводского значения платы, ответы устройства показываются всплывающим окном с кнопкой OK, исправлена ложная ошибка invalid radio params при выходе из мастера, экран загрузки показывает версию и адрес posadmesh.ru. Настройка частоты, полосы, SF, CR и мощности доступна с экрана и кнопки." + changes: + - type: changed + area: upstream + text: "База прошивки обновлена до upstream MeshCore v1.18.0 (было v1.17.1): влит релизный тег `repeater-v1.18.0` через интеграционную ветку `integrate/upstream-1.18.0` (266 коммитов upstream, 201 файл, 12 конфликтных файлов), возможности PosadMesh сохранены. Добавлена плата Waveshare ESP32-S3 LR1121 (`Waveshare_S3_LR1121_repeater_mqtt`, `_espnow`, `_bridge`), всего 112 MQTT-целей. Новые платы 1.18.0 на nRF52 (ThinkNode M8/M4, Wio Tracker L1 1W, Muzi Base) в MQTT-треках не выпускаются: WiFi у них нет." + - type: added + area: ui + text: "Мастер настройки репитера (дисплей и кнопка): экран `Battery` с напряжением, процентом заряда, полоской и действующим множителем ADC, и пункт `ADC` для калибровки измерения батареи поразрядно в формате `x.xxx`. Частота, полоса, `CR`, `SF` и мощность TX настраиваются с экрана и кнопки, значения применяются через тот же `CommonCLI`, что и последовательный порт." + - type: changed + area: ui + text: "Поле `ADC` открывается с действующего значения платы (Heltec V4 — `5.420`, Meshadventurer — `2.000`) вместо нуля; `0.000` возвращает заводское значение. На экране батареи заводское значение помечается словом `base`." + - type: changed + area: ui + text: "Ответы устройства в мастере показываются модальным всплывающим окном с рамкой, собственным фоном, переносом текста и кнопкой `OK`; короткое нажатие закрывает окно, пока оно открыто — экран под ним не меняется." + - type: fixed + area: ui + text: "Исправлена ложная ошибка `Error, invalid radio params` при выходе из мастера через `Save & exit`: команда `set radio` отправлялась с нулевыми значениями рабочей копии, если в этой сессии не открывали ни один радиопункт. Теперь радиопараметры отправляются только после реальной правки, а значения перед отправкой перечитываются из настроек узла." + - type: changed + area: ui + text: "Экран загрузки: ссылка `meshcore.io`, версия с датой сборки и адрес `posadmesh.ru`; строка `< Repeater >` убрана." + - type: fixed + area: adc + text: "Коррекция ADC доступна на всех платах: механизм вынесен в базовый класс `ESP32Board` (`adcMultiplierBase()` + `adcMultiplier()`), платы со своей формулой переведены на него (Heltec E213/E290/T190, tracker_v2, v2, ThinkNode M2/M5). Платы без ADC для батареи (Station G2/G3, T-Beam с PMU) отвечают, что подстройка не поддерживается." + - type: fixed + area: adc + text: "Meshadventurer: добавлена поддержка множителя делителя батареи. Раньше делитель был зашит числом `2`, и команда `set adc.multiplier` отвечала `Error: unsupported`." + - type: docs + area: docs + text: "Страница «Настройка с дисплея и кнопки» дополнена разделами про батарею и калибровку ADC, всплывающие окна и экран загрузки, с макетами всех экранов; те же материалы опубликованы в вики проекта." + - type: added + area: release + text: "Прошивальщик в браузере () получил прошивки этого релиза: файлы разбиты по версиям, свежая версия показывается выше предыдущей." + breaking_changes: []