Samovar 7.00: обновление через Arduino IDE поддерживается. Как равноправный вариант можно запустить конфигуратор нового выпуска и нажать «Прошить»; LittleFS загружается отдельной кнопкой «Загрузить LittleFS» и заменяет файлы web-интерфейса (пользовательские файлы в LittleFS при этом могут быть потеряны). Ваши значения конфигуратор хранит в файле user_config_override.h рядом со скетчем - скопируйте его в каталог нового выпуска, и настройки сохранятся. Прошить можно и по Wi-Fi: кнопка «Обновить» находит Самовар в сети, если в разделе «Сеть» включено «Разрешить обновление по Wi-Fi» (USE_UPDATE_OTA).
По мере выхода новых версий возникнет необходимость в обновлении. В комплекте с новым релизом могут идти новые или измененные библиотеки и инструменты. Поэтому, во избежание ошибок, каждый раз, рекомендуется использовать именно те библиотеки и инструменты, которые находятся в архиве с конкретным релизом.
Внимание! Важно!
С версии 6.0 При условии, что Самовар подключен к интернету интерфейс будет автоматически обновляться для конкретной версии скетча , т. е. в случае необходимости отката на старую версию скетча, интерфейс так же откатится на соответствующую версию. Если подключения к интернету нет, то интерфейс необходимо устанавливать самостоятельно - локально.
Обновление скетча
Используя раздел
Первичная загрузка скетча мы подготовили определенную структуру расположения файлов и каталогов в ...Documents\Arduino. Продолжим на основе прежней организации.
Подготавливаем каталог ... Documents\Arduino\ в следующей последовательности:
-
Каталоги libraries и tools перемещаем перетаскиванием (или вырезать - вставить) в каталог Samovar.
-
Каталог Samovar перемещаем в пустой каталог Samovar-7.00.
-
Каталог Samovar-7.00 перемещаем в каталог OLD.
-
Архив Samovar-7.00.zip с оригинальным скетчем перемещаем в каталог OLD.
Таким образом в каталоге ... Documents\Arduino\ останется только каталог OLD.
А внутри OLD будут: архив Samovar-7.00, каталог Samovar-7.00 с вложенным каталогом Samovar.
Такая система хранения исключает ошибки при обновлении, позволит использовать прежние настройки для нового релиза и при необходимости быстро откатиться на прежнюю или еще более раннюю версию.
Далее делаем пошагово, как при первой установке: "разворачиваем" новый релиз в ... Documents\Arduino\ в плоть до получения прежней
структуры каталогов. Соответственно, архив и каталог полученный из архива будут содержать в имени новый номер версии.
Но теперь сразу не загружаем скетч в ESP, а делаем необходимые настройки файла Samovar_ini.h. Это можно сделать двумя способами:
1. Правильный.
Для удобства потребуется специальные программы способные сравнивать два разных файла, визуально отображая различия между ними.
Рекомендуется программа
WinMerge — (
Инструмент сравнения и слияния для Windows, который может сравнивать как файлы, так и папки, отображая различия в визуальной текстовой форме . Программа проста в использовании, имеет русский интерфейс.)
Или более продвинутая, но и более сложная в освоении программа
Notepad++ с установленным плагином
Compare.
Пример при использовании программы WinMerge.
Для сравнения нужно выбрать два разных файла Samovar_ini.h
Первым выбираем файл из каталога OLD, в который мы только что переместили прежнюю версию Самовара. Он находится по пути: ... \Documents\Arduino\OLD\Samovar-7.00\Samovar\
Второй файл берем из каталога с новым релизом Самовара. Он находится в ... \Documents\Arduino\Samovar\
Программа сравнит оба файла и подсветит строки с различиями.
Различия будут выделены более светлым тоном. Можно править значения справа вручную, а можно поставить курсор слева дать команду "Копировать направо".
Так, построчно, корректируется файл настроек под ваше оборудование. По окончании всех правок нажимаем иконку "Сохранить"
Главное не перепутать, что файл старых настроек находится слева, а файл по которому будет работать Самовар - справа.
2. Быстрый
При обновлении через Arduino IDE сравните Samovar_ini.h нового и прежнего выпусков и перенесите только свои значения. Не вставляйте старый Samovar_ini.h с заменой: даже небольшой выпуск может содержать новые обязательные параметры.
Если в новом релизе вводятся новые функции Самовара, редактировать файл Samovar_ini.h необходимо, иначе новые функции будут недоступны и Самовар будет работать не корректно.
Если настройки делались в конфигураторе, Samovar_ini.h править не нужно: свои значения хранятся в user_config_override.h, который переопределяет Samovar_ini.h. Достаточно перенести этот файл в новый выпуск.
Настройка закончена. Можно загружать скетч в ESP. Поскольку это обновление ранее установленного скетча настраивать вновь подключение к Wi-Fi не придется и
загружать настройки по умолчанию не нужно.
При обновлении уже можно будет не подключать ESP к USB порту, а обновлять прошивку
"по воздуху"
"Откат" на старую версию.
Что-то не понравилось в новом релизе или он работает не корректно. Есть желание вернуться к предыдущим версиям. С данной системой хранения старых версий это совсем просто.
Подготавливаем каталог ... \Documents\Arduino как для обновления:
-
Каталоги libraries и tools перемещаем перетаскиванием (или вырезать - вставить) в каталог Samovar.
-
Каталог Samovar перемещаем в пустой каталог Samovar-7.00.
-
Каталог Samovar-7.00 перемещаем в каталог OLD
-
Архив Samovar-7.00.zip с оригинальным скетчем перемещаем в каталог OLD
Далее:
-
Идем в каталог OLD, выбираем прежнюю версию и проходим во внутрь до каталога Samovar: ... \Documents\Arduino\OLD\Samovar-6.16\
-
Копируем (рекомендуется именно копировать, а не перетаскивать) весь каталог Samovar в ... \Documents\Arduino\
Из каталога Samovar перемещаем перетаскиванием (или вырезать - вставить) на уровень выше, в ... \Documents\Arduino\ два каталога libraries и tools.
Все. Можно загружать скетч в ESP .
В последствии, при обновлении на новую версию, нужно будет просто очистить каталог ... \Documents\Arduino удалив Samovar, libraries и tools. Перемещать их в OLD нет необходимости, поскольку они там присутствуют, а мы использовали копию.
При обновлении скетча уже можно использовать Arduino IDE версий 2.x.х. Но в этих версиях нет пункта "ESP32 LittleFS Data Upload", и без плагина обновить интерфейс локально не получится. Соответственно, если доступа Самовара к сети интернет нет, то web-интерфейс не будет обновлен.
Дополнение. На версиях Arduino IDE 2.x.х появилась возможность локальной установки интерфейса с помощью плагина. Инструкция здесь. Плагин (arduino-littlefs-upload-1.1.7.vsix) есть в архиве Самовара в каталоге tools\ESP32LittleFS_Arduino IDE 2.X, см. Первичная загрузка скетча.
Вы можете одновременно установить на свой компьютер несколько Arduino IDE 2.x.x и Arduino IDE 1.x.х , и они не вызовут никаких проблем друг для друга. Поэтому вы можете продолжать использовать Arduino IDE 2.x в качестве основной IDE и использовать Arduino IDE 1.x только тогда, когда вам нужно загрузить локально файловую систему LittleFS (в т.ч. интерфейс) на ваш ESP32.
При использовании разных версий Arduino IDE их нужно устанавливать в разные каталоги. Для этого достаточно добавить к имени каталога номер версии.
Например.
C:\Program Files(x86)\Arduino1_1_18;
C:\Program Files\Arduino IDE_2_3_2;
C:\Program Files\Arduino IDE_2_3_1
При этом появляется возможность использовать в каждой версии Arduino IDE разные версии SDK для ESP32 от Espressif Systems.
Но, нужно учесть, что каждую из используемых версий Arduino IDE, для использования ESP32, нужно будет настраивать отдельно.
Внимание!
Если использовать дополнение для ESP32 “ESP32 by Espressif Systems” версии 3.0.0 и выше, то обновление по WiFi (OTA) прошивка отключает сама - параметр USE_UPDATE_OTA в этом ядре не действует, загрузка только по USB. Кроме того, нужно изменить тип используемой платы и выбрать правильные партиции. Таблица разделов Samovar в ядре 3.x отсутствует, её добавляют вручную (описание есть в начале файла Samovar.ino):
скопируйте файл partitions\samovar.csv из каталога скетча в ...\Arduino15\packages\esp32\hardware\esp32\3.x.x\tools\partitions\ (в Windows каталог Arduino15 находится в C:\Users\<имя>\AppData\Local\);
в файл ...\esp32\3.x.x\boards.txt добавьте три строки:
esp32.menu.PartitionScheme.samovar=Samovar
esp32.menu.PartitionScheme.samovar.build.partitions=samovar
esp32.menu.PartitionScheme.samovar.upload.maximum_size=1507328
перезапустите Arduino IDE и выберите «Инструменты» → «Partition Scheme» → «Samovar».
Конфигуратор PlatformIO использует ядро 2.0.17 и эту же таблицу разделов (partitions/samovar.csv), ничего добавлять не нужно.
Вопросы и ответы. FAQ
Нигде не нашёл описание как обновлять прошивку "по воздуху". Подскажите...Первый раз в любом случае нужно прошить про проводу и подключить Самовар к вашей WiFi сети. В Samovar_ini.h должен быть включён параметр USE_UPDATE_OTA (по умолчанию включён; в конфигураторе - «Разрешить обновление по Wi-Fi»), ядро ESP32 - 2.0.17.
Перезагрузить Самовар и перезапустить Arduino IDE. После этого в сетевых портах Arduino IDE появится IP адрес Самовара (сетевой порт с именем samovar).
Вместо USB (СОМ) порта выбрать IP адрес - и обновление пойдет по воздуху.
В последствии, если подключить Самовар на USB кабель к компьютеру, то в портах будут доступны два варианта - обновлять по "воздуху" или по СОМ порту. Какой канал выберете - по нему и будет передан скетч.
В конфигураторе то же самое: нажмите «Обновить» - в списке портов появятся и COM-порт, и найденный в сети Самовар; выберите сетевой и нажмите «Прошить». Так же по сети работает и кнопка «Загрузить LittleFS».