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
@Константин 271,
смотрите, вам вскоде как таковой не нужен что бы собрать прошивку. Просто скачайте зип моего репозитория, распакуйте куда-нибудь и оттуда можете запускать Костин билдер, если я правильно там все поправил, то он соберет вам прошу из моего репа.

я смотрю вы начали этот топик вообще, давайте так - я распишу вам как дернуть репозиторий гитом и дальше его обновлять, а вы обновите шапку топика и насобираете туда кусочки информации которая тут опять по сообщениям появляется по крошкам, идет? Иначе все так и осядет в омуте бестолку.
 
  • Лойс +1
Реакции: Divin

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Просто скачайте зип моего репозитория, распакуйте куда-нибудь и оттуда можете запускать Костин билдер, если я правильно там все поправил, то он соберет вам прошу из моего репа.
Не всё так просто.
Надо сменить проект.
Если билдером уже собиралась другая прошивка, то и в новом проекте git будет тянуть из старого репо.
Сменить проект можно только удалив git в "Панель управления->Программы", а потом установить из папки нового проекта запустив install.bat от имени администратора и выполнив пункты 3 и 4.
Хотя я уже об этом писал.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@andy040670,
я поправил билдер, добавил туда переменные с указанием пути до репа. Гит удалять точно не надо, достаточно запустить билдер из моего репа из другой папки где-нибудь. Он склонирует реп и у него ориджин будет смореть на мой реп.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
я поправил билдер, добавил туда переменные с указанием пути до репа. Гит удалять точно не надо, достаточно запустить билдер из моего репа из другой папки где-нибудь. Он склонирует реп и у него ориджин будет смореть на мой реп.
Нет, вы не поняли, при установке git из install.bat прописываются пути проекта, (как локальные так и удалённые) изменить их можно через консоль гита, но для обычного пользователя проще переустановить git из папки проекта.
Билдер ссылается не git, а там привязка к предыдущему проекту.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@andy040670,
ну да, я не понял что значит "переустановить git из папки проекта". Сам гит как приложение переустанавливать не надо, нужно склонировать новый реп в новую папку. Но вообще я не оч понял как пользоваться билдером. Для того чтобы запустить сам билдер, все равно нужно так или иначе склонировать или скачать и распаковать репу в которой собственно сам скрипт билдера и лежит. Зачем тогда внутри него жестко вшиты пути куда клонить реп вне моего понимания. Вполне достаточно было бы запускать его из произвольной папки по выбору пользователя.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Зачем тогда внутри него жестко вшиты пути куда клонить реп вне моего понимания. Вполне достаточно было бы запускать его из произвольной папки по выбору пользователя.
install.bat - vortigont/FireLamp_JeeUI.git:
Bash:
set "lamprepo=https://github.com/vortigont/FireLamp_JeeUI.git"

if "%choice%"=="4" (
    Set /p diskInstal="Enter a drive letter C,D etc. (Введите букву диска C,D и т.п): "
    rem echo  test !%diskInstal!
    if not exist "!diskInstal!:\" (
        echo Disk letter is wrong!
        pause
        cls
        goto m1

    ) else (
        echo "Firmware repo wil be instaled on disk !diskInstal!:"
        !diskInstal!:
        if exist "!diskInstal!:\FireLamp_JeeUI_original_int" (rmdir /S /Q !diskInstal!:\FireLamp_JeeUI_original_int)
       "%ProgramFiles%\Git\bin\git" clone %lamprepo%
        start .\FireLamp_JeeUI_original_int
    )
)
install.bat - andy040670/FireLamp_JeeUI_original_int.git:
Bash:
if "%choice%"=="4" (
    Set /p diskInstal="Enter a drive letter C,D etc. (Введите букву диска C,D и т.п): "
    rem echo  test !%diskInstal!
    if not exist "!diskInstal!:\" (
        echo Disk letter is wrong!
        pause
        cls
        goto m1

    ) else (
        echo "Firmware repo wil be instaled on disk !diskInstal!:"
        !diskInstal!:
        if exist "!diskInstal!:\FireLamp_JeeUI_original_int" (rmdir /S /Q !diskInstal!:\FireLamp_JeeUI_original_int)
       "%ProgramFiles%\Git\bin\git" clone https://github.com/andy040670/FireLamp_JeeUI_original_int.git
        start .\FireLamp_JeeUI_original_int
    )
)
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
поправил путь в скрипте чтобы писал в другую папку, но как по мне так выучить пяток команд самого гита и платформио проще
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
поправил путь в скрипте чтобы писал в другую папку
Дело не в папке, а в репозитории.
Ваш install.bat настраивает git на ваш репо:
set "lamprepo=https://github.com/vortigont/FireLamp_JeeUI.git"
"%ProgramFiles%\Git\bin\git" clone %lamprepo%
start .\FireLamp_JeeUI_original_int
---------------------------------------------------------------------
Мой же на:
"%ProgramFiles%\Git\bin\git" clone https://github.com/andy040670/FireLamp_JeeUI_original_int.git
start .\FireLamp_JeeUI_original_int
----------------------------------------------------------------------
То есть, если ранее был установлен git с настройкой на мой репо, то он так и будет ссылаться на него не зависимо какой проект используется на данный момент.
При переходе с проекта на проект надо менять настройки git'a.
Для простого пользователя проще переустановить git из папки проекта.
Можно конечно в install.bat добавить команду для смены репо на актуальный.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Дело не в папке, а в репозитории.
То есть, если ранее был установлен git с настройкой на мой репо, то он так и будет ссылаться на него не зависимо какой проект используется на данный момент.
Я понял о чем вы. Не, это не так работает. Источник откуда был склонирован проект гитом хранится в рабочем каталоге самого проекта (внутри подкаталога .git). Т.е. сам гит (git.exe) при работе берет эту информацию из того проекта (каталога) откуда он был запущен.
Открываете d:\FireLamp_original работаете с ним, открываете d:\Firelamp_vortigont работаете с другим репом. Больше никаких настроек гита менять не нужно. Более того, переустановка гита (дистриба) ничего не меняет. Адерса удаленных репов (remote) проекта так и остаются в его рабочем каталоге, можно посмотреть командой git remote -v
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
105
@andy040670, нет, я про вашу. У меня ж она. 8266 - ok, 32 - не собирается, картинки выкладывал. Ещё и накачало 2 Гб чего-то, при первой попытке, но так и не заработало.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Источник откуда был склонирован проект гитом хранится в рабочем каталоге самого проекта (внутри подкаталога .git). Т.е. сам гит (git.exe) при работе берет эту информацию из того проекта (каталога) откуда он был запущен.
В том то и беда, что нет.
Допустим у меня установлен проект из моего репо, git установлен из рабочего каталога по средству .bat файла.
Далее скачиваю ваш проект, распаковываю, запускаю билдер, ввожу 1, 2 или 3 и получаю опять клон своего проекта + частично ваш.
32 - не собирается, картинки выкладывал. Ещё и накачало 2 Гб чего-то, при первой попытке, но так и не заработало
Не знаю что там у вас накачало на 2 Гб, таких объёмов нет не в проекте не софте (Python+git+pio).
Ветка мастер не рабочая, собирайте DEV, для этого в билдере введите 2 - enter.
На есп32 может быть ошибка одна, не хватка флэш памяти, чтоб её избежать надо изменить разметку памяти, для этого надо открыть в блокноте noota.csv, скопировать содержимое, затем так же открыть esp32_4MiB.csv и вставить, прежде удалив содержимое.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
105
Не знаю что там у вас накачало на 2 Гб, таких объёмов нет не в проекте не софте (Python+git+pio).
.platformio\packages\framework-arduinoespressif32 и toolchain-xtensa-esp32 - вот этого, вроде, не было "до того как".
Возможно, ещё toolchain-xtensa и [email protected]*.**** и ещё папки там есть

Ветка мастер не рабочая, собирайте DEV, для этого в билдере введите 2 - enter.
по-моему, я это делал. Надо поискать.

На есп32 может быть ошибка одна, не хватка флэш памяти, чтоб её избежать надо изменить разметку памяти, для этого надо открыть в блокноте noota.csv, скопировать содержимое, затем так же открыть esp32_4MiB.csv и вставить, прежде удалив содержимое.
я тут приводил скрины свои с ошибками - @Константин 271
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
я тут приводил скрины свои с ошибками -
Похоже вы собираете мастер - он не рабочий.
Для есп32 правьте user_config с учётом особенности нумерации пинов, иначе будут ошибки аналогичные скринам.
Для примера:
 

Вложения

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
105
Похоже вы собираете мастер - он не рабочий.
Нашёл историю, 2 в билдере вводил, переводил на dev - для 32 он отдельно переводится?

с учётом особенности нумерации пинов
для 8266 вводятся напрямую имена ног - D2 и т.д., не через gpio, а для 32 какое правило?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Допустим у меня установлен проект из моего репо, git установлен из рабочего каталога по средству .bat файла.
Далее скачиваю ваш проект, распаковываю, запускаю билдер, ввожу 1, 2 или 3 и получаю опять клон своего проекта + частично ваш.
git по-другому не может работать, что-то вы путаете. Вы запускате Builder.bat или Install.bat?
По идее надо запустить Install.bat и там выбрать цифру 4, т.к. пио и гит у вас уже установлен. Тогда мой реп склонируется в паку C:\FireLamp_vortigont с вашим репом оно смешаться не может никак.
Дальше уже из C:\FireLamp_vortigont запускаете обновление.

P.S. стооп, я вам наврал, у Кости там не указано куда клонировать репозиторий-то... т.е. он склонируется в текущий каталог.
Блин, а я то никак не мог понять как решается проблема курицы и яйца, а она никак не решается. М-да... Ща добавлю путь куда клонивать.
Блин, ну это маразм, сначала скачать архив репа, потом его же опять клонировать по фиксированному пути на диск. Чего только люди не придумают что бы 3 команды не выучить
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
По идее надо запустить Install.bat и там выбрать цифру 4, т.к. пио и гит у вас уже установлен.
Так тоже не проходит, вылетает ошибка, что репозиторий уже определён или что то типо того, уже не помню.
Вот по этому только с переустановкой git.))
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@andy040670,
см выше обновленный пост, потому и пишет что "уже определен". Я, правда, не понимаю как переустановка гита тут помогает. Вероятно переустанавливаете через тот же билдер, который и сносит с каталогом проекта?
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Вероятно переустанавливаете через тот же билдер, который и сносит с каталогом проекта?
Нет.
4 пункт пытается записать в конфиг гита удалённый ркпо, но он уже существует, хотя и другой, по этому и ошибка. Надо сперва удалить старый репо, а потом прописывать новый.
Блин, ну это маразм, сначала скачать архив репа, потом его же опять клонировать по фиксированному пути на диск. Чего только люди не придумают что бы 3 команды не выучить
Именно так.))
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
4 пункт пытается записать в конфиг гита удалённый ркпо, но он уже существует, хотя и другой, по этому и ошибка.
Да нету никакого конфига гита. Все параметри репозитория хранятся в рабочем каталоге в подкаталоге .git. Ну естественно гит не будет клонировать ничего в каталог в котором уже есть .git. Наверное тут самый полезный это батник который ставит гит, питон и платформио, а билдер смуту больше вносит.

Кстати, а что такое Install_builder&repo.exe?