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,Радар по центру панели крутиться ,нормально ,без вкл. чекрыжека субпиксель. А с вкл чекрыжеком субпиксель ,один радар по центру крутиться ,а второй на четвертинке панели крутиться )))
Узоры 59 работают. 53 фейерверк тоже чет начал делать.
 
Изменено:

donatos696

★✩✩✩✩✩✩
17 Ноя 2019
44
10
Подскажите, пожалуйста - после перезагрузки (по не совсем понятным причинам), отключения питания лампа не восстанавливает режим ДЕМО, а проигрывает один эффект (в моем случае РАДУГА 2D) - так и должно быть?
 

vortigont

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

отключения питания лампа не восстанавливает режим ДЕМО
я недавно там менял схему контроля включения, вероятно прошляпил где-то это демо, посмотрю.

P.S. Починил ориентацию у часов с тетрисом.
 
  • Лойс +1
Реакции: dina

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Нужно поправить. Плеер статус конектед ,не работает (нужно зациклить воспр ещё) Режим Демо слетает ,после перезагрузки. Мосфет пин ,не работает. Эффект 8 акварель ,при откл. чекрыжике поведение ,темная панель ,при вкл. нормально. Эффект 41 днк ,темная панель. Эффект 69 змеинный остров ,темная панель. Ну и мелочь ,эффект 24 прыгающие мячики ,мячики напополам разделены темной полоской. Эффект 16 елки палки ,контрол эффект ,положение 6 ,палки рванные стали ,пунктиром. Хер знает ,откуда навылазило ,не надо больше пока всякие масштабирование делать ,для 128х64. Пока ,еще какую нибудь стабильную ,не застолбим )))
 
Изменено:

vortigont

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

Транзистор и демо я переписываю на работу через шину сообщений, пока не доделал еще
 

LowriderA

✩✩✩✩✩✩✩
19 Дек 2021
3
0
Добрый день, подскажите не нахожу настройки размеров матрицы и пина матрицы в юсер конфиге,
Где это поменять? По форуму чтото не нашел
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@LowriderA, Это все в вэб морде ,все настройки. В юзер конфиге пока остался энкодер ,кнопка и микрофон.
 

LowriderA

✩✩✩✩✩✩✩
19 Дек 2021
3
0
@dina,
Спасибо, пытаюсь прошить но ругается на файл pins_arduino.h, буду ковырять
 

LowriderA

✩✩✩✩✩✩✩
19 Дек 2021
3
0
@donatos696,
Не могу добиться, все та же ошибка, уже все заново переустановил
Не понимаю где копать

PS: победил, добавил файлик pins_arduino.h
 
Изменено:

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Там в вики на гитхабе ,с пинами ошибочка маленькая. Пин панели Е-5 ,и Е там 2 раза ,надо D. И эта комбинация проверенная для панели 128х64.
Для 64х32 вот проверенная комбинация.
"R1":0,"G1":19,"B1":2,"R2":17,"G2":4,"B2":25,"A":26,"B":27,"C":23,"D":18,"E":-1,"CLK":13,"OE":33,"LAT":32,
На переферию пины как у Вас в таблице.
 

vortigont

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

P.S. поправил проблему с "потухшими" эффектами и МОП-транзистором
 
  • Лойс +1
Реакции: dina

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Я же выше писал об этом. Вот в этой комбинации для 64х32 R1":0,"G1":19,"B1":2,"R2":17,"G2":4,"B2":25,"A":26,"B":27,"C":23,"D":18,"E":-1,"CLK":13,"OE":33,"LAT":32,
Добавляю пин Е-5 и на панели 128х64 артефачит.
128х64 работает эта комбинация
R1":25,"G1":26,"B1":27,"R2":17,"G2":18,"B2":23,"A":12,"B":16,"C":13,"D":14,"E":5,"CLK":15,"OE":33,"LAT":32
Я ссылку давал ,что может быть, Вы чего нибудь прояснили. Я могу попробывать из этой комбинации ,убрать пин Е и запустить 64х32 ,если заработает ,то можно считать 100% комбинацией ,для двух панелей :)
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, ну попробуйте. По той ссылке что вы привели я не понял в чем смысл. 8-ми битные порт-регитстры есть на атмелках, на есп32 в режиме ДМА это не имеет смысла.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,
Вообщем так. Эффекты и транзистор починено. Испытал вот эту комбинацию
R1":25,"G1":26,"B1":27,"R2":17,"G2":18,"B2":23,"A":12,"B":16,"C":13,"D":14,"E":5,"CLK":15,"OE":33,"LAT":32 Пин Е можно отключать для панели 64х32 РАБОТАЕТ !
Переферия энкодер 39 ,35 ,36. Микрофон 34. Дисплей CLK 22 DATA 21. Плеер RX 0 TX 4. Оставшиеся пины 2 ,19. Как то так ,на всё хватает 128х64 и 64х32. И ещё остаёться ;)
Но у меня для 64х32 эта комбинация распаена
"R1":0,"G1":19,"B1":2,"R2":17,"G2":4,"B2":25,"A":26,"B":27,"C":23,"D":18,"E":-1,"CLK":13,"OE":33,"LAT":32
На переферию пины как у Вас в таблице. Рекоммендуемые выводы для подключения периферии
 
Изменено:

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
По той ссылке что вы привели я не понял в чем смысл
Тем не менее комбинация влияет ,как не знаю. Все через руки и голову пропустил. Если я к этой комбинации
"R1":0,"G1":19,"B1":2,"R2":17,"G2":4,"B2":25,"A":26,"B":27,"C":23,"D":18,"E":-1,"CLK":13,"OE":33,"LAT":32
Добавляю пин Е-5 или 14 ,15 ,панель 128х64 артефачит.
В таблице нужно исправить пин D -14. Пин Е минус один ,для 64х32 или 5 для 128х64. Тогда 100% работает для 64х32 и 128х64 :)
 
Изменено:
  • Лойс +1
Реакции: vortigont

donatos696

★✩✩✩✩✩✩
17 Ноя 2019
44
10
По прежнему возникают проблемы - по каким то причинам, проработав в режиме "ДЕМО" некоторое время, отключается (режиим "ДЕМО") и проигрывает один эффект (тот, который был первым при включении "ДЕМО"); пишет "DFplayer: DFPlayer Mini online", но звук не воспроизводит (архив скачан, рраспакован, закинут на карту памяти), кнопка (сенсорная) не срабатывае на вкл/выкл. Из оборудования установлены кнопка и DFplayer. В качестве контроллера используется вот такая платка ESP32 wroom32 (в platformio.ini изменено board = upesy_wroom).
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
На новогодние праздники беру тайм-аут. И лучше, да, пока использовать последний релиз, из мастера не ставить.
 

donatos696

★✩✩✩✩✩✩
17 Ноя 2019
44
10
@dina,
Спасибо за совет) У меня матрица 30х13 - вроде в релизе тоже косяки были, в частности с развертыванием некоторых эффектов на бОльшую, чем 16х16 матрицу 🤔
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, С Новым Годом ! Вопрос ,к нам украинские пакости ,в прошивку не залетят ,как в соседней теме?
 
Изменено:

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, В теме Мишани тс , в 00-00 запрещенная бегущая строка , выбежала.