ESP, IoT WiFi лампа/гирлянда/информер ws2812/HUB75 - Обсуждение прошивки FireLamp_EmbUI

FireLamp_EmbUI - деполитизированный форк проекта "огненной" лампы (исходный проект FireLamp_EmbUI)

Проект был пересобран из старых форков и архивов репозитория пользователей и участников разработки. В исходном проекте был полностью выпилен русский язык, задним числом переписана история разработки в Git и удалена соотвествующая тема форума. Данный форк это не срез исходного репозитория, хотя сохранил часть общей истории до определенного момента.

Проект эволюционировал от "лампы" в гибридную прошивку для адресных лент / HUB75 RGB панелей.

Эволюцию проекта и смежные вопросы (архив) в теме универсальный информер/часы/лампа/гирлянда

Примеры работы проекта:



Внимание!
Актуальное описание и документацию можно найти на странице проекта в GitHub, шапка обновляется редко.
Вопросы сообществу можно задать в группе телеграм - LampDevs
Документация доступна в WiKi проекта,.

Концепт
Исходный проект был значительно переписан и реструктурирован. В разработке основное внимание уделяется структуре кода, декомпозиции и объектоориентированности даже в ущерб функциональнсти и "фичам". Основная идея развития - вся конфигурация и управление периферией должна быть максимально доступна во время работы кода без необходимости пересборки всего проекта. Параметры в конфигурационных файлах и опции сборки сводятся к минимуму, упраздняются и заменяются настройками через WebUI.

ESP8266 vs ESP32

Разработка ведется только под контроллеры семейства esp32. ESP8266 морально устарел, было принято решение не тратить время на поддержку совместимости и уделить больше времени и ресурсов актуальной платформе. Последний стабильно работающий на контроллерах 8266 выпуск проекта - версия v3.1.1, используйте на свое усмотрение, корректная сборка с обновлёнными библиотеками не гарантируется.

Бинарные сборки
Самый простой способ залить прошивку это воспользоваться веб-прошивальщиком из браузера. Прошивка работает из Chrome, Opera, MS Edge. Перейдите на страницу ESPWebFlasher и следуйте описаным инструкциям.
Проект можно прошить в чистую плату используя готовые сборки со страницы выпусков. Бинарные образы подготавливаются и прикрепеляются к выпускам начиная с v3.6.0. В списке Assets можно нати архивы factory_images_XX.zip и firmware_images_v3.6.0.zip. Factory - полный образ прошивки готовый для заливки в чистую плату, содержит в себе полный набор компонентов включая образ файловой системы с веб-ресурсами. Firmware - образы для обновления предыдущей версии прошивки, пригодные для заливки по воздуху через WebUI (OTA).


Как собрать проект
Для Windows понадобится установить git, python, platformio, проще всего это сделать с помощью скрипта. Подробнее можно прочесть в WiKi

Легкий способ:
для пользователей Windows OS можно использовать builder скрипт. Билдер был изначально написан @kostyamat (за что ему спасибо), адаптирован под форк текущей комадой (@andy040670).
Запускаете билдер и последовательно проходите шаги установки питона, гит, платформио, клонирование репозитория и сборку требуемого варианта прошивки.

Правильный способ:
Проект собирается с помощью Platformio
Для сборки проекта понадобится следующее:
Установить IDE Visual Studio Code, и, в качестве плагина к ней, установить Platformio. О том как это сделать можно найти массу роликов на youtube, например этот.

Желательно еще установить Git, обновлять проект будет значительно проще

Как скачать/обновлять проект

Актуальный срез проекта всегда можно скачать в виде zip-архива по ссылке, рекоммендуется скачивать последний выпуск со страницы релизов. Для желающих принять участие в тестировании можно поддерживать клон репозитория и подтягивать свежие обновления перед каждой новой сборкой. Открываем Git-bash, клонируем репозиторий в тукущую папку командой git clone --depth 1 --no-single-branch https://github.com/vortigont/FireLamp_JeeUI.git В дальнейшем для того чтобы обновить репозиторий достаточно перейти в папку проекта и выполнить команду 'git pull'.
Рекомендуется периодически обновлять зависимые библиотеки после обновления репозитория, обновление выполняется командой pio pkg update.

После того как вы скопировали проект (в виде zip архива или через git clone), необходимо в папке include скопировать файл user_config.h.default под новым именем user_config.h и в нем настроить сборку под свои параметры матрицы, номеров выводов и требуемых функций.

заметки по установке ПО под windows от @dina
дляпроверки того что всё ПО было установленн корректно в консоли в папке с проектом должны успешно выпоняться следующие команды:
git --version
git pull обновление репозитария
git status
pio --version
pio pkg update - обновление библиотек
pio run -e esp32 -t upload - прошивка
pio run -e esp32 -t uploadfs - прошивка Фс
git switch master - переключение на ветку мастер
git switch feat переключение на ветку feat


Сборка

  • Открываем папку проекта в VSCode
  • Что бы собрать прошивку, можно воспользоваться кнопками в нижней статусной строке:
    • PlatformIO:Build - собрать прошивку
    • PlatformIO:Upload - загрузить прошивку через USB в плату.

Platformio сам скачает необходимые библиотеки для сборки проекта.

Также можно открыть терминал с помощью клавиш Ctrl+Shit+` и воспользоваться расширенными командами для сборки проекта.

  • pio run -t upload - собрать и записать в контроллер проект по умолчанию под платформу esp32
  • pio run -e esp32debug -t upload - собрать и записать версию esp32 с отладкой, будет собрана прошивка под esp32 c выводом отладочных сообщений через serial интерфейс
  • pio deviсe monitor - запустить serial-монитор для просмотра сообщений, выдаваемых контроллером


Для работы лампы нужно сформировать и залить в контроллер образ файловой системы. Выполняется это командой аналогично записи прошивки, но с параметром -t uploadfs, к примеру
  • pio run -t uploadfs - записать в контроллер образ ФС под платформу esp32

После первой прошивки дальнейшие обновления можно заливать в контроллер по воздуху. Для этого нужно зайти браузером на контроллер по URL вида http://embui-xxxx/update, где xxxx это ID контроллера, нажать на кномку 'Firmware', выбрать файл с прошивкой и загрузить его в контроллер. Файл с прошивкой Platformio кладет в подпапки проекта:

  • .pio/build/esp32/firmware.bin - версия под esp32

В случае каких-либо проблем со сборкой, перво наперво нужно полностью очистить рабочий каталог платформио и попробовать пересобрать прошивку (платфомио заново выкачает актуальные версии зависимых библиотек).
Для очистки рабочего каталога нужно удалить из папки прокта каталог .pio

О том как настроить обновление по воздуху (OTA) для своей лампы см страницу проекта на Гитхабе.


Озвучка для мп3 плеера
набор звуковых файлов для MP3 плеера можно скачать по ссылке из WiKi

Говорящие часы / кукушка
- настраиваема озвучка времени почасовая / пол часа / четверть часа
- тихие часы для отключения озвучки по ночам

Будильник
- 4 независимых будильника со своей мелодией у каждого
- каждый будильник может иметь один из режимов на выбор
- однократное срабатывание
- ежедневное срабатывание
- по будним дням
- по выходным дням

Управление
Лампа управляется через WEB-интерфейс или через мобильное приложение WLED-Native-Android, WLED-Native-iOS, старый WLED


Device API описан на странице в WiKi
 
Изменено:

Комментарии

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
v3.4 останется для исправлений, сам выпуск доступен по тегу v3.4.0
рел3.4.0 удалю, это времянка была для автотеста.
В мастер изменение для билдера прилетит со следующим пушем. Надо на гитхабе подчистить ветки старые
 
  • Лойс +1
Реакции: andy040670

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Что то я уже запутался. v3.4.0 обновляется с v3.4, а мастер получает обновления от куда?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
3.4.0 это тег конкретного выпуска, в нём больше никогда уже не изменится ничего
v3.4 это ветка - продолжение 3.4.0, туда, возможно, будут попадать исправления и, может быть застолбятся отдельные выпусти, типа 3.4.1

мастер это основная ветка-аггрегатор новых вещей. В мастер я или сливаю какие-то тестовые ветки или что-то комичу сразу вмастер, т.к. с кодом я один пока работаю
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
3.4.0 это тег конкретного выпуска, в нём больше никогда уже не изменится ничего
Значит критические правки туда надо вносить руками? Я к тому что последний коммит туда не попал и не попадёт автоматом никогда, только ручками?
v3.4 это ветка - продолжение 3.4.0
И почему v3.4.0 привязана к v3.4, а не к мастеру, ведь мастер по идее получает обновление последним и является более стабильным.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Значит критические правки туда надо вносить руками?
тут надо понимать как используется версионирование в гите.
В 3.4.0 не надо ничего вносить руками. Это просто метка, указывающая на конкретное состояние репозитория на определенный момент в виде как есть так и есть. Будущие исправления и дополнения это уже будет другая версия в другое время.

И почему v3.4.0 привязана к v3.4, а не к мастеру, ведь мастер по идее получает обновление последним и является более стабильным.
опять же 3.4.0 никчему не привязана, это метка - она по сути существует одновременно в 2х ветках, в мастере и v3.4.
v3.4 это ветка, в неё могут быть добавленны какие-то изменения как путём слияния с мастером так и от слияния с другими ветками.
Смысл в том чтобы как раз отделить ее от мастера. Т.е. в мастер я могу вносить какие-то новые функции которые могут сломать что-то старое или нарушить совместимость со сриптами и пр.
А в ветку 3.4 я буду вносить только исправления ошибок, которые точно являются проблемами и которые исправляются в рамках совместимости с выпуском 3.4.0

как-то так
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Если я скачиваю FireLamp_JeeUI-3.4.0.zip то внутри я вижу:
340.png
Соответственно ничего хорошего у меня не получится.

Обновляю в терминале на 3.4 из репо:
34.png
То есть не могу билдером переключаться между ветками, залип на мастере.
Переключился только в терминале "%ProgramFiles%\Git\bin\git" switch v3.4.

Добавил в билдер проверку загруженной версии в локальном репо.

6.png
 

Вложения

Изменено:
  • Лойс +1
Реакции: dina

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Так должно быть при переключении ,Переключить/обновить - выпуск v 3.4 ? При переключении на мастер ,фатала нету. Билдер из прошивки использую.
 

Вложения

  • 422 байт Просмотры: 2
Изменено:

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
@vortigont,Так должно быть при переключении ,Переключить/обновить - выпуск v 3.4 ? При переключении на мастер ,фатала нету. Билдер из прошивки использую.
Работать не будет, пока @vortigont, не поправит в мастере v3.3.0 на v3.4 в update-DEV-from-Git.cmd
Bash:
if "%param%"=="2" ( rem переключаем на дев
    "%ProgramFiles%\Git\bin\git" switch v3.3.0
    "%ProgramFiles%\Git\bin\git" pull
)
Я выше уже писал про это, так что ждём.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
7z zstd ,наверно так запакован.
да блин, я не знаю чем это распаковать под линуксом. zstd отдельно есть, 7zip и zip отдельно тоже есть, а zstd в зипе ничем из этих тулов не распаковывается. Жду понедельника когда до работы дойду. Ну или приложите в tar.zstd.
 
  • Лойс +1
Реакции: wadimsuv

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Консоль потыркал ,но не прошивал ,вроде все на своих местах. Со следующим тестом попробую прошить. Энди ,проверка текущей версии ,очень круто +улетел. Приехали конвертеры уровней ,в след. выходные спаяю. Результатами поделюсь. Да они и сейчас результаты ,очень хорошие для хаб панелей.
 
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
да с таром-то проблем нет, он штатными средствами распаковывается, zip походу только виндовым сторонним 7zip понимает что внутри не обычный хип. Ну не суть, разобрались ) Но в целом, наверное, лучше в tar.zstd паковать.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
В tar под виндой? На сколько я помню, tar часть файловой системы ext2 - ext4 c атрибутами и метаданными, а чем потом ужимать, вопрос другой. В NTFS механизм чуть другой, tar можно открыть, но создать...? Или я сильно отстал от жизни?
Линукс у меня только сервер, то есть без графической оболочки.
 

donatos696

★✩✩✩✩✩✩
17 Ноя 2019
44
10
Доброго времени суток. Можт кто подсказать как собрать под ESP32C3 mini/ESP32S3 mini?
 

donatos696

★✩✩✩✩✩✩
17 Ноя 2019
44
10
В том то и дело, что при замене на плату S3 или С3 выдает ошибку сборки - #error "ERROR: ESP32C3 not supported." :cautious::unsure:
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Вообщем докладываю. Прошивка с консоли версии 3.4 ,со стертым камнем ,прошел все настройки ,вифи ,пины забивал руками. Все отлично. Теперь по конвертерам уровней ,получилась засада. У меня задействован 12 пин ,без конвертера ,все нормально. С конвертером камень не стартует. Отключением пинов нашел его 12 пин ,мешает с конвертером. Перекинул его на 21 пин ,все запустилось. С 22 пином ,черные полосы чередуються. Пока на 21 пине ,вместо 12 ,все хорошо работает. Самая глючная матрица ,с конвертером и питанием 5в ,работает отлично.Конвертеры решают все проблемы. Теперь вопрос Вортигонт. Как выйти из положения ,21 пин нужен ,я бы хотел в перспективе туда ,датчики например бме 280 ,если Вы не против добавить. Энкодер ,плеер то же хотел бы оставить. Что колдануть ,на есп 32 38 пин? Свои пины подключения в файле прилагаю. Если не получиться ,хер с ним ,можно без конвертера ,уронить питание.
 

Вложения

  • 527 байт Просмотры: 3
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
12 пин ,мешает с конвертером
12й пин должен быть притянут к земле при загрузке. Наверное конвертор тянет его вверх, посмотрите по спеке конвертора как себя ведут его выводы, откуда и куда там берётся подтяжка. Может вполне можно обойтись внешней дополнительной поддяжкой к земле каким-нибудь 10к резистором. 21й с 12м нельзя менять, i2c data притягивается к питанию. Можно с 22м поменять, наверное.

Самая глючная матрица ,с конвертером и питанием 5в ,работает отлично.Конвертеры решают все проблемы.
круто! а что получилось, закиньте фотки хоть. Вы плату делали или на макетке?
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Да не чем красоваться ,старая школа. Макетка ,мгтф. С 22 пином не пошло. Я 12 пин ,заменил 21. Так написано. 40кОм и 4кОм.
 

Вложения

Изменено:
  • Лойс +1
Реакции: vortigont