Найдена причина: чип 2 МБ при настройке IDE 4 МБ

Плата имеет физически 2 МБ флеша, в IDE было выбрано 4MB (FS:2MB).
При этой раскладке сектор EEPROM лежит по смещению 0x3FB000, а начало
LittleFS — по 0x400000, тогда как чип заканчивается на 0x200000. Обе
области вне микросхемы, поэтому spi_flash_erase_sector() проваливался
и EEPROM.commit() возвращал false.

Лечится настройкой Flash Size = 2MB (FS:128KB OTA:~960KB), а не кодом:
любая раскладка 2MB кладёт файловую систему ниже 0x1FB000, а EEPROM в
сектор 511. С верной настройкой работали бы оба механизма хранения.

Ранее записанная в README гипотеза про «щель между FS и областью SDK»
была неверной и заменена подтверждённым разбором. Переход на LittleFS
остаётся оправданным по своим качествам, но проблему решает настройка
IDE — в документации это разделено явно, чтобы не ввести в заблуждение
при похожем симптоме на другой плате.

Документация исправлена: плата 2 МБ, а не 4 МБ; требование совпадения
выбранного размера с физическим; предупреждение о потере учётных данных
Wi-Fi при смене раскладки.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Vitali
2026-08-07 19:51:38 +07:00
co-authored by Claude Opus 5
parent b18f0d0ce0
commit f0844a15af
3 changed files with 75 additions and 25 deletions
+5 -3
View File
@@ -172,9 +172,11 @@ STATUS: OK
Настройки сохраняются в файл во внутренней памяти прибора, переживают
отключение питания и сброс Wi-Fi.
> Если панель показывает красное предупреждение «Файловая система недоступна»,
> настройки работают только до перезагрузки. Причина почти всегда в настройке
> `Flash Size` при прошивке — нужен вариант с файловой системой, не `FS:none`.
> Если панель показывает красное предупреждение «Файловая система недоступна»
> или настройки пропадают после перезагрузки — причина в настройке `Flash Size`
> при прошивке. Она обязана совпадать с фактическим размером памяти платы:
> для этих приборов **`2MB (FS:128KB OTA:~960KB)`**. Вариант `4MB` на плате с
> 2 МБ приводит ровно к такому симптому.
> Русские буквы и пробелы в имени устройства **не сохранятся** — они будут
> отброшены. Это не ошибка: ограничение защищает формат уведомления от поломки.