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
 
Изменено:

Комментарии

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Хаб 75 ,Работает! 😍 Поведение такое,те эффекты которые идут (обзавем поддерживаються) ,работают и через вэб морду переключаються. Как только доходим ,до эффекта который не поддерживаеться ,то панель не горит. И дальше ,при выборе рабочего эффекта ,то же темная панель. Что бы заработали рабочие эффекты ,я передергиваю питание. Рабочие эффекты крутяться и переключаються. Красотища 🤩. Пины для хаб 75 ,я выкладывал их можно взять за основу Есп 32 38 пин. Теперь Вам вопрос ,какие из оставшихся пинов есп 32 38 пин ,можно заряжать под плеер и энкодер без проблем? И на перспективу ,для датчиков и мах 7219 по i2c ? Очень нравица 👍 В выходные готов потестировать ,что тестировать?
 
Изменено:

vortigont

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

Эффекты некторые, наверное, переписывать надо под разные размеры. Этим мне лень заниматься пока. Но для примера можете расписать какие рабочие, какие ломают вывод, я подумаю что там может быть.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,По пинам ,я использую есп 32 38 пинов. Там нет 20 ,24, 28 ,29 ,31 пина. Остаток пинов 1 ,3 ,4 ,6 ,7, 8 ,9 ,10 ,11 ,13 ,32 ,33. Какие из них пробывать ,в место отсутствующих? Эффекты перебиру не идущие.
 

Вложения

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
на вики есть описание и ссылка, почитайте там внимательно какие пины служебные, 1,3,6-11 нельзя использовать. остальные перебирайте какие свободные есть. Я же не знаю что у вас куда подключено, на всё сразу одновременно пинов не хватит. хаб75 панель ргб пины можно подлючать на любые выводы.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Внимательно почитал ,с первой попытки попал ,важные пины не задеты.🧐 Вот основа есп32 38пин. Надо наверно добавить ,для хаб 75 нужна есп 32 38 пинов. Других не хватит, для остального.
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
тогда уж на esp32-s3 собирать, там ног больше.
Залил там толстую пачку наработок. Из заметного глазами особо ничего нет, в основном работа с движком и фреймворком. Перетряхнул MQTT, сделал более адекватные настройки и убрал кучу хлама. Часть управления сейчас не работает, меняю схему топиков, еще не все доделал.
В качестве бонуса подрихтовал эффект "неопалимая купина" (или как там его) что бы работал нормально на неквадратных матрицах.
Как по мне один из наиболее удачных эффектов. Проверьте как на хаб панели будет выглядить.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
тогда уж на esp32-s3 собирать, там ног больше.
Есп 32 38 пинов ,вроде все хватает впритык. А Вы на esp32-s3 будете адаптировать?
Проверьте как на хаб панели будет выглядить.
Проверю. Я там в исуе написал ,про не идущие эффекты. неопалимая купина работает ,хорошо. На последнем обновлении ,нестабильно работает ,сама отключаеться ,чекрыжек тоже отключаеться. Если по настройкам лазеешь. Вот логи. По ходу не все эффекты ,не идущие перезагрузку вызывают. Я поглядел в дебаге они идут ,только панель не светиться. Кнопку деактивировал ,выключения прекратились. После не идущих эффектов ,надо перезагрузку делать ,рабочие эффекты не светяться ,а в дебаге видно типа выполняеться.
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Судя по логу, да ,выключается программно по реакции на кнопку. Возможно наводки какие-то, кнопка сенсорная?
В эффектах, похоже, много где есть проблемы с кодом под неквадратную матрицу, возможно еще какие-то более специфичные вещи есть именно под панель. Будет сильно удобнее если вы по каждому эффекту завёдете отдельный issue с комментарием, чем больше подробностей, тем лучше, т.к. у меня стенда с панелью нет, мне сложно вслепую отлаживать. Оно не горит, время будет - заводите, ибо возня с эффектами оч муторная, надо постоянно перешивать контроллер и смотреть глазами. В отладчике и в эмуляторе не всегда можно отловить проблему как она визуально выглядить.
Я поставил у себя две адресные матрицы последовательно, получилось 32х16, пока так смотрю когда дома бываю.

Починил "Огонь2018", он падал при переключении.
А куда товарищ @digex с мкутт пропал? )
 
  • Лойс +1
Реакции: Andron-65 и Дрон

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
@vortigont, Доброго утра всем тестерам. Я кнопку при прошивке закоментировал. Значит ее нет. и все равно при переходе с эффекта на эффект виснет. Потом выкл вк и работает на работающем эффекте. Может имеет смысл на данном этапе тестирования оставить только идущие эффекты и с ними тестировать как работает . Потом добавлять и шлифовать по одному неидущему эффекту. А может и не надо копаться в кривых эфектах от KDN.

у меня такие пины. Что соответствует проекту Игоря Шилова информера с веб радио. Цвета соответствуют матрица отображает правильно
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Ну вы можете сами убрать из списка ненужные эффекты на странице "Управление списком эффектов", чекрыжики "Включен в список выбора ", "Включен в Демо ".
А пины под хаб75 можно практические любые использовать, кроме тех что только на вход. Попозже доделаю настройку из вебморды.
 
  • Лойс +1
Реакции: dina и Andron-65

digex

✩✩✩✩✩✩✩
16 Окт 2023
7
0
@digex с мкутт пропал? )
Воюю с littlefs, не шьется или не собирается правильно.
Ошибки:
08:40:05.803 -> [ 49515][E][vfs_api.cpp:105] open(): /littlefs/connecttest.txt/index.html does not exist, no permits for creation
08:40:05.990 -> [ 49691][E][vfs_api.cpp:105] open(): /littlefs/eff_list.json.gz does not exist, no permits for creation
08:40:06.131 -> [ 49826][E][vfs_api.cpp:105] open(): /littlefs/connecttest.txt.gz does not exist, no permits for creation
08:40:06.131 -> [ 49833][E][vfs_api.cpp:105] open(): /littlefs/connecttest.txt does not exist, no permits for creation
08:40:06.131 -> [ 49840][E][vfs_api.cpp:105] open(): /littlefs/connecttest.txt/index.html.gz does not exist, no permits for creation
08:40:06.178 -> [ 49850][E][vfs_api.cpp:105] open(): /littlefs/connecttest.txt/index.html does not exist, no permits for creation
08:40:23.626 -> [ 67327][E][vfs_api.cpp:105] open(): /littlefs/eff_list.json.gz does not exist, no permits for creation
08:40:34.416 -> [ 78099][E][vfs_api.cpp:105] open(): /littlefs/eff_list.json.gz does not exist, no permits for creation
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Возможно наводки какие-то, кнопка сенсорная?
Кнопка мех HIGH_PULL.
Ну наверно эффекты для панели ,не корректно упрекать в кривизне ,основа то была 16Х16. Хотя у меня на гирлянде 20х24 они все нормально вертяться.
 
Изменено:

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
@dina,Может тогда и не парится с этими эффектами для этой панели может нужно попробовать текст ну или какие либо заставки для будущих информеров выводить. Думаю это более радостное занятие созерцать прототип будущих информеров. Самое главное сделано панель выводит пусть корявые но эффекты. Значит и текстовые сообщения будет и эффекты например смена экранов. . В проекте Игоря Шилова экраны меняются резко вот один пропадает ,а другой резко появляется. думаю если бы через какой то плавный переход например плавная отрисовка и плавное затухание . вот было бы супер. Ну и картинка что бы красивая. Собственно для информеров думаю было бы достаточно одного двух десятков эффектов .
 
Изменено:

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
@dina, Я думаю из готовых проектов около десятка шрифтов можно дернуть и бегущую строку тестировать сам пишншь и смотришь . в проекте Игоря как то можно было через MQTT сообщения текстовые слать .
 

digex

✩✩✩✩✩✩✩
16 Окт 2023
7
0
@vortigont,
не выходит

@digex,
Завелось только после OTA обновления с Release v3.3.0 . Если шить начисто - то падает.
mqtt завелся, к серверу подключается, статус отправляет.
Вопрос - как менять параметры через MQTT?
 

Вложения

  • 5.6 KB Просмотры: 3

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Потестировал эффекты ,на большинстве не идущих эффектов ,не светиться панель.Что бы панель светилась после не рабочих эффектов ,нужна перезагрузка. Но иногда на не рабочих эффектах лампа падает ,четкой тенденции не увидел. Также при переключении рабочих эффектов ,бывают падения лампы. Могу только логи падений выкладывать ,надо? Просто я не знаю ,что дальше делать? А так на панели ,очень много красивых эффектов ,которые на матрице 16х16 совсем по другому выглядели.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, у вас в логах нет стек-трейсов, невозможно понять что было причиной. Вы esp32debug профиль собирали или свой какой-то? Падение на чистой прошивке проверю, возможно какие-то мелкие правки нужны во фреймворке.
MQTT управления пока нет, я как раз его переделываю. Будет схема интегрированная с сообщениями которые бегают через websocket.
Какой у вас сценарий использвания?

@dina, пока не надо. Там нужно еще повозиться посмотреть самому. Код эффектов местами проблемный есть, у меня на неквадратной матрице на адресных лед тоже не все нормально отображаются, напр., "3д шум" показывает квадрат на одну матрицу.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@digex, если потрудитесь описать принцип работы HA, то я учту это в структуре контроля через MQTT.
Есть какие-то "забитые" топики через которые ХА управляет лампами? Может ли он отправлять/получать в качестве команд и данных сериализованне объекты и сам их разбирать? Владелец ХА сам этой настройкой и программированием занимается?
Сейчас планируется следующая схема: абсолютно всё что переключается, дергается в вебморде через вебсокет будет в том же виде доступно через мкутт в том же формате джейсон объектов.
Какие-то особые топики с упрощенными именами и контролами нужно будет делать дополнительно в зависимости от хотелок.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Ещё заметил ,на последней прошивке ,часовая зона не выбираеться.
 

bort707

★★★★★★✩
21 Сен 2020
3,046
909
Я думаю из готовых проектов около десятка шрифтов можно дернуть
не понятно зачем что-то дергать, если библиотека https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA. которую @vortigont добавил в проект, уже использует AdafruitGfx. А Адафруит - это сотни и тысячи шрифтов на любые языки, не только латиница и русский, но хинди или арабский
радостное занятие созерцать прототип будущих информеров.
не зацикливайтесь на информерах. Проектов бегущих строк на ХАБ-матрицах в инете тысячи, соль этого проекта совсем в другом.
В проекте Игоря Шилова
а ссылку можно?
 
  • Лойс +1
Реакции: dina