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
Вообщем ,перезагрузка при сохранении настроек мп 3 плеера . Так же были перезагрузки при переключении эффектов , поймал. Есть не рабочие эффекты пустая матрица, много эффектов раздвоилось как бы. Например эффект блуждающий кубик ,их скачет 2 штуки ,каждый на своей половинке матрицы ( как бы отзеркаливание). Ну и текст раздвоился. Сделал полное стирание ,появился нормальный лог. Чудеса. Большие логи не лезут.Если мало информации буду резать из логов ,что надо.
 

Вложения

Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
перезагрузка при сохранении настроек мп 3 плеера
Каких конкретно настроек? Пинов подключения или каких-то параметров?
Давайте поконкретнее если ожидаете исправлений, "есть нерабочие эффекты" также мало о чем говорит.
много эффектов раздвоилось как бы
у вас, похоже просто матрица неверно настроена, проверьте параметры ориентации, отражения и пр.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Да матрица не была змейка вкл.Настройки ,дфп плеер ,настройки не сохраняються (ЭФФЕКТ СБРОС) , мп 3 плеер не работает ,при манипуляциях с плеером перезагрузка лампы. Выше логи перезагрузок ,при вкл откл мп3 плеера. Перезагрузка при переключении эффектов (РЕДКО). Микрофон не работает. Со вкл микрофоном эффект 2 ,4 ,55 , 63 не работают. На эффекте 250 часы ,тянучки за цифрами. Случайный эффект демо не работает. А так в интерфейсе вэбуи все нажимаеться ,вроде ошибок нет. После работы ,жара , мысли путаються ))).
 
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, исправил падения с мп3 плеером, вроде работает и что-то поёт. При переключении тоже падало по этой же причине (только в дебаг версии). Залил правки.

Случайный эффект демо не работает
у меня работает.

Микрофон не работает. Со вкл микрофоном эффект 2 ,4 ,55 , 63 не работают.
у меня работает. Не знаю насколько красиво/некрасиво, но работает. На 2м эффекте сразу заметно, на вышиванках я разницу не увидел, но я не знаю что там дожно быть. На 52м эффекте довольно четко видно как работает микрофон.

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

На эффекте 250 часы ,тянучки за цифрами
по-моему это так и задуманно, не знаю зачем, все равно толком ничего не видно когда эти цифры дергаются и моргают разными цветами.
 
  • Лойс +1
Реакции: dina

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Со вкл чекрыжиком микрофон эффект 2 ,4 ,55 , 63 не работают,черный экран. С откл. чекрыжиком эти эффекты работают. Микрофон вообще не работает, на других эффектах.У меня такое ощущение ,что пин микрофона перестал назначаться ,у меня он 34 ,а по умолчанию я так понял 36. Прошивку последнюю залил ,демо заработало. А нельзя сделать чекрыжик дебаг в интерфейсе? Залил обычную прошивку ,а дебаг ,чекрыжиком акктивировал если нужно. Сейчас стоит просто есп32 без дебага. Плеер работает ,перезагрузок нет.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, У Вас как подключен микрофон ( перемычки на плюс или минус ,которые дицибеллы) ?Просто у меня всегда ,на Вашей прошивке (коэф. коррекции нуля) ,вообще нули и калибровка не проходит ,даже когда работал микрофон нули были. У меня подключение + - и out без подтяжек ,так всегда подключено было. И я всегда в конфиг файле 34 пин руками задавал ,по умолчанию там A0 стоит.Вообщем с акктивированым и вкл микрофоном ,на эффектах 2,4,55,63 темный экран в остальных эффектах он не работает. Физически выдергиваю микрофон ,со вкл чекрыжиком ,поведение не меняеться. С деактивированым микрофоном в прошивке ,все работает ,но на эффектах 254 и 255 темный экран. Еще вывод текста ,настройки ,смещение вывода текста не сохраняеться при выкл лампы.
 
Изменено:

vortigont

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Модуль есп 32 другую подкидывал ,то же самое. Микрофон другой смысла нет ,что с физически подключенным микрофоном ,что с отключенным поведение не меняеться. Именно когда чекрыжек микрофона вкл. ,такая байда. В логе тоже ,ничего не видно. Там сначала с откл .чекрыжиком ,потом с вкл.
 

Вложения

  • 11 KB Просмотры: 0

vortigont

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Блин заработал. Настройки не сохранялись ,коэф нуля. С 3 раза применились. Я тыкал и не глядел туда ,от этой жары у нас ,совсем качан пустой ))) Странно до этого обновления с коэф ноль ,микрофон работал.Все победили ,жду новый квест.p.s может восстановите калибровку микрофона ?
 
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

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

p.s может восстановите калибровку микрофона ?
можно, но пока не понятно нужно ли. Даст ли это какой-то полезный эффект или проще ползунок шумодава сделать в каких-то разумных пределах. Насколько я помню, вопрос "как откалибровать микрофон" постоянно всплывал и процесс был неочевидным.
Вообще я думал другой движек анализатора запихать туда как-нибудь при наличии свободного времени, надо тоже перебрать, проверить, посмотреть как работает и выяснить под какой лицензией эти проекты, можно ли заимствовать код оттуда.
Дел навалом если кому интересно заняться.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
если не лень, то проверьте что получается с микрофоном при полном стирании конфига
Как это сделать ,фс перезалить? Калибровка микрофона, наверно нужна ,у китайцев параметры от партии к партии пляшут )))
 

vortigont

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
проще ползунок шумодава сделать
Проверил микрофон от 0.2 начинает реагировать, отличное от 0. Разницы не увидел ,что 0.2 что 1.2. Надо сделать какое то одно подключение ,с подтяжками или без, от него и плясать. У меня щас подтяжек нет.А настройки , тогда по шумодаву делать.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Выпуск v3.3.0 - закрепил накопившиеся изменения, как оказалось их уже немало накопилось.

в feat ветке:
Я полностью переписал движек, который крутит эффект - заменил его на отдельный ртос-процесс и динамический оверлей-микшер, который сводит слой эффекта со слоем куда должны накладываться всякие тексты, рисовалки и прочее.
Текст и прочая чепуха сейчас отвалилась, ее нужно будет переписывать на новый движёк. На это есть отдельные планы с учётом заделов обсуждаемых здесь.


у кого есть желание потратить время на тестирование - есть одна задачка.
"Рисование" сейчас работает по-разному на разных эффектах. Где-то оно выглядит как обычно, а где-то "нарисованные" пиксели размазываются вместе с тем что происходит на холсте эффекта. (пример: эффект 61 - размазывается, эффект 6 - не размазывается)
Нужно перебрать все эффекты по очереди, порисовать на них и выбрать те которые размазываются по номерам, потом пойти в этот файл, найти следующую таблицу
C++:
static constexpr std::array<bool, 256> eff_persistent_buff = {
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 0-15
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 16-31
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 1, // 32 - 47
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 48 - 63
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 64 - 79
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 80 - 95
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 96 - 111
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 112 - 127
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 128 - 143
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 144 - 159
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 160 - 175
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 176 - 191
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 192 - 207
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 208 - 223
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 224 - 239
  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, // 240 - 255
};
и повтыкать в неё единички в те порядковые места эффектов которые размазываются. Пересобрать прошивку, перепроверить и новую табличку выдать мне.
Внимание: ставить везде единички без проверки не надо! Я и так знаю что тогда все будет нормально, мне нужно выделить эффекты, которые переиспользуют данные буфера между кадрами для того что бы выполнять разный режим работы оверлея и не расходовать память где не надо.
Задача не горит, меня неделю где-то все равно не будет. Просто мне самому с этим возиться лень и я на это рисование забью, есть более насущные задачи.

Ну и заодно посмотреть как работает новый движек - попереключать эффекты, поглядеть не начало ли где падать и т.д. (красивости эффектов меня сейчас не волнуют)
 
  • Лойс +1
Реакции: dina и andy040670

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Докладываю. Единички поставил в эффектах 5,14,19,27,28,32,40,41,46,50,61,66,70 (помогли). Эффект 25 остаються ,артефакты после рисования ,очистка рисования не работает. Эффект 65 ,после рисования подвисает ,очистка рисования не работает ,но лампа не падает. Эффект 250 ,лампа падает ,перезагрузка. Прикрепляю картинку ,как смог )))
 

Вложения

  • Лойс +1
Реакции: vortigont

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
Новая версия лампы поддерживает только esp32. Распиновку я так и не нашел. Даже на git её нет.
 

Dhorohiy

★✩✩✩✩✩✩
30 Июл 2020
41
10
@PavelNMSK, да, только есп32.
Пины все (кроме кнопки/энкодера) настраиваются из вебморды. Рекоммендуемая раскладка есть в WiKi
Любая ЕСП 32 подойдет? (хотел заказать ,но столкнулся с тем,что есп32 много разновидностей)
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Классическая esp32 вполне подойдет, напр Wemos D1 Mini32
С заделом на будущее можно взять подороже плату с большой флешкой, psram памятью и разъемом под сд-карту - TTGO T8 16MiB/8MiB flash/PSRAM. Но в текущей прошивке это пока не восстребованно.
Если не нужно много свободных пинов, то мне нравятся модули ESP32-CAM - они дешевые, компактные, там есть слот под карточку и PSRAM. Камеру можно снять и выкинуть )))
 
  • Лойс +1
Реакции: Dhorohiy и PavelNMSK

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
и тут Остапа понесло... повозился я над лед буфером, отвязанного от устройва вывода, в итоге скроил новую библиотеку.
Получилось замороченно, но гибко, посмотрим что выйдет.
В качестве пробы пера - добавил поддержку HUB75 панелей вместо адресной матрицы. Оно даже собирается и работет, но т.к. панелей у меня нет, посмотреть что реально выводится на панель (и выводится ли вообще) я не могу. @Andron-65 у вас вроде их навалом, готовы потестировать? Но сразу предупреждаю, тестировать и описывать результаты придется весьма скрупулёзно, отзывы в стиле "не работает" без логов и детального описания мне бесполезны, даже не буду смотреть.
Экспериментальная ветка - hub75
Сейчас там статически забита матрица 64х32 через вот эту библиотеку. Настроек никаких нет, кроме gpio. Пины подключения панели меняются в файле include/hub75.h. Можно собрать, запустить и посмотреть как есть что получится. Собирается через свой env pio run -e hub75.
Настройки адресной матрицы в этой сборке игнорируются.
Т.к. я не знаю какая у вас матрица и насколько она совместима с библиотекой ESP32-HUB75-MatrixPanel-DMA, то, в случае если "ничего не работает".
Нужно будет пойти в реп этой библиотеки, собрать и запустить просты примеры, убедится что ваша панель с ней совместима или, возможно, требует каких-то особых настроек.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Ко мне едут панели 64х32 и 64х128. Когда лампу тестить ? Фит ветку ?