mirror of
https://github.com/anklimov/lighthub
synced 2026-10-28 11:15:00 +00:00
Frozen copy of the official wiki (lazyhome.ru) used as the audit reference while the repo documentation is brought in line with the code.
51 lines
4.0 KiB
Plaintext
51 lines
4.0 KiB
Plaintext
==== OTA ====
|
||
Контроллер имеет возможность обновлять свою прошивку "по воздуху" через http [[api]]
|
||
Данная возможность доступна для следующих вариантов прошивки:
|
||
* due
|
||
* lighthub21
|
||
* esp32-wifi
|
||
* esp8266-wifi
|
||
* mega2560-optiboot
|
||
* m5stack
|
||
|
||
Прошивка должна быть скомпилирована с опцией OTA (предкомпилированные версии прошивок для указанных выше окружений уже скомпилированы с такой опцией)
|
||
|
||
=== Управление размером/опциями прошивки ===
|
||
Чтобы прошивка могла успешно обновиться, она должна занимать строго не более 50% flash памяти. Это не является проблемой для всех архитектур, исключая MEGA2560. Данный контроллер имеет очень скромные характеристики, поэтому приходится ужиматься. В пред-компилированной версии для этой архитектуры отключены почти все опциональные модули (DMX, Modbus, 1-wire). Но перекомпилировав проект, можно подключить нужные опции, пожертвовав чем-то еще (например, MDNS)
|
||
|
||
См файл build-flags/build_flags_mega2560-optiboot с опциями по умолчанию, которые можно переопределить в custom-build-flags/build_flags_mega2560-optiboot
|
||
|
||
Подробнее про опции компиляции в разделе [[опции_компиляции]]
|
||
|
||
=== OptiBoot ===
|
||
Для того, чтобы Mega2560 имела возможность обновлять сама себе прошивку, необходимо заменить ее штатный кривой бутлоадер на optiboot. Кроме всего прочего, этот загрузчик занимает намного меньше места, чем штатный. Поэтому, если вы зачем-то до сих пор используете Mega - загрузчик лучше обновить (тем более, что у старых штатных загрузчиков не работает watchdog)
|
||
|
||
Проект Optiboot живет здесь: https://github.com/Optiboot/optiboot
|
||
|
||
Конкретно вариант для Mega2560 тут: https://github.com/MCUdude/MegaCore
|
||
|
||
Инструкция для загрузки там имеется. Шить проще всего "штатным" Arduino IDE, используя любую другую AVR Arduino в качестве программатора.
|
||
|
||
Как ее приспособить для этого, описано тут https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP/
|
||
|
||
|
||
|
||
=== Где что лежит ===
|
||
Компилированные образы прошивок доступны в папке compiled
|
||
Там же размещены примеры скриптов, прошивающих образ (как по кабелю так и OTA)
|
||
|
||
Тулзы для этого выложены в папке compiled/tools
|
||
|
||
Пример прошивки по воздуху:
|
||
|
||
<code>
|
||
arduinoOTA -address 192.168.1.2 -port 80 -username arduino -password password -sketch firmware.bin -b -upload /sketch
|
||
</code>
|
||
|
||
В примере приведены username и password по-умолчанию
|
||
Пароль необходимо сменить на свой
|
||
|
||
Задать пароль и сохранить его в NVRAM можно при помощи команды otapwd [[cli_интерфейс]]
|
||
|
||
для коммита прошивки от 20/05/24 и позднее, можно воспользоваться опциями компиляции DEFAULT_OTA_USERNAME и DEFAULT_OTA_PASSWORD
|