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,Вообщем стер есп ,заново на андроиде подключился без проблем.Сделал настройки тм и плеера. И все не могу я победить дисплей джейсон. Файл поместил (скрин выше показывал) ,фс залил.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, блин... вот думаешь как люди у вас это получается, а... из практически пошаговой инструкции люди все равно умудряются привнести что-то свое одним им известным способом... Задаешься вопросом "как, ну как так то", как оно может впринципе то не работать?
Я сколько раз говорил и в документации писал и в логах указывал вам - файл должен называться display.json, вот просто как есть - display.json. Вы же создали display.json.txt и уже который день страдаете, ёлки... ну неужили разницы не видно, а?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Откройте в проводнике папку дата, выделите файл мышкой, нажмите правую кнопку на мыше, выберите в меню "переименовать" и вбейте на клавиатуре прпвильное имя. Блин, ну это же базовые навыки работы с файлами
 
  • Лойс +1
  • Ахах! +1
Реакции: dina и Divin

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Я предупреждал ,что я как обезьяна на правильные кнопки нажимаю.Все получилось! Внутри вс коде переименовал его. Теперь получаеться ,что я могу с частотами поиграть и фазировкой? Редактировать его внутри вс коде и прошивать? P.S фазировка фалсе ,заметно улучшила работу. Теперь панели с мелкими артефактами ,хорошо работают. Панели с большими артефактами ,заметные улучшения ,но косяки есть. Удобно глядеть на радуге 2д с большой скоростью ,меняя картинку на горизонтальную и вертикальную. Вот видео на самую глючную панель ,после фазировки. То что осталось. https://youtube.com/shorts/S--cbJ07io8 Вы столько эффектов поправили ,здорово! Вообщем яркость тм 1637 не сохраняеться и кол-во файлов мп3. Побегал по эффектам ,класс. Ух красотища будет. Что тестировать и Вам отписывать? Вообщем панели с чипами 245 с 3 шт. замечательно работают ,с настройкой фалсе. С чипами 245 с 2шт. наверно только конвертеры уровня помогут.Жду уровни.
 
Изменено:

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
@vortigont,
Билдер поправил на лету, гляньте, уберите лишние бренчи (сейчас не в теме, какие актуальны), поправьте гит команды если устарели.
Хорошо бы кто проверил, у меня пока неначем.

0.png
3.png
 

Вложения

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Я так понимаю ,надо будет падения лампы отслеживать при переключении и настройки контролов эффектов. И Вам логи выкладывать? http://lamp/display.json у меня все равно он недоступен из браузера.
 

vortigont

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

падения лампы отслеживать при переключении и настройки контролов эффектов
ну я потыкал примерно первую половину, что нашел, поправил. Остальное позже. Логи не надо если падение стабильно воспроизводится каждый раз. Если иногда только, то желатльно с логом.

http://lamp/display.json у меня все равно он недоступен из браузера.
я уже даже не рискую предполагать что у вас не так :)))) вы, надеюсь, слово lamp заменили на свой адрес лампы?
http://lamp/config.json тоже так должен быть доступен.

@andy040670, спасибо, залил убрав все ветки кроме мастера. Проверить тоже негде, виртуалку для этого поднимать не оч хочется. Пусть так будет.
 
  • Лойс +1
Реакции: andy040670

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
:)))) вы, надеюсь, слово lamp заменили на свой адрес лампы
Вот теперь заменил и увидел.Спасибо :)
Ну билдер я могу потестировать ,если Вы готовы на глупые вопросы отвечать. Опять же ,людей нет кому это надо. Тем более тут пока заморочки с подкидыванием и редактированием конфиг файла панели ,сложно не будет?
МОжно по фтп заливать или через хттп запрос если знаете как
Конечно не знаю:)
На нулевом эффекте рисование не работает.
Добавлю ещё изысканий
это глючная панель с опущенным питанием 4.5в. Артефакт остался только на радуге вертикальной и то менее выраженный. Так что конвертер уровней решит проблемы любых панелей ,я думаю. В этом проекте заработают наверно все стандартные панели. Даже глючные ,если питание уронить.
У второй такой же глючной панели ,с опущенным питанием ,артефакты вообще пропали ,даже на радуге. С панелями проблем не должно быть ,даже без конвертеров уровня.
 
Изменено:
  • Лойс +1
Реакции: vortigont

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Ну билдер я могу потестировать ,если Вы готовы на глупые вопросы отвечать. Опять же ,людей нет кому это надо.
Как сказать. Мне вот например ни к чему ставить этот монстр VSC ради одного плагина pio, так как не занимаюсь написанием кода, для редактирования текстовых файлов вполне хватает Notepad++ и WinMerge, тем более VSC в фоне (не запущен) шариться в проводнике, от чего он заметно начинает подтормаживать, что сильно бесит. В общем ставить этот комбайн и использовать его на ~5% считаю не целесообразным.
Умение использования VSC у большинства наших пользователей, как показала практика, не велико, многие из за этого проходят мимо, билдер же на много упрощает процесс прошивки контролера, просто смотри подсказки и жми соответствующие кнопки.)))
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Поправил сохранение яркости для ТМ дисплея.
Убрал настройку "Кол-во файлов в папке MP3".

Про билдер я согласен что часто его будет вполне достаточно, но я поддерживать его не могу т.к. сижу под линуксом. Буду принимать исправления от всех кто готов этим заниматься. Вот тут можно еще добавить описание какое-то по его работе при желании.
 
  • Лойс +1
Реакции: andy040670

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@andy040670, На вопросы будете отвечать? На выходных готов потестировать. Вс коде удалять надо?
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
На вопросы будете отвечать? На выходных готов потестировать. Вс коде удалять надо?
В выходные, не уверен.
VSC удалять не надо. Вроде конфликтов не было.
Сперва надо запустить install.bat, установить/настроить локальное репо.
P/s
Сразу скажу, репо ставьте на другой диск, иначе он снесёт ваше репо и установит его заново с гита. ЭТО ВАЖНО!!!
 
Изменено:

dina

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

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Тут как то файл будет надо внедрять ,в папку дата.Если Вы поняли о чем , выше поглядите.
А в чём проблема? Закинуть файл в папку, а потом собрать фс?
Кстате, а почему его нет на гите в папке data?
Мне репо без разницы
Локальное репо это и есть папка проекта "FireLamp_vortigont" в которой идёт сборка, хоть VSC, хоть билдером без разницы.
Просто если будете устанавливать билдер, то устанавливайте репо на другой диск, иначе ваша папка "FireLamp_vortigont" будет перезаписана и вы потеряете настроенный user_config, придётся его настраивать заново.
я все равно прошивки ставлю через вс коде.
Тогда билдер вам не нужен.
Качаю последнюю с гита.
Зачем качать, что билдер, что VSC прекрасно обновляет репо без всяких закачек.
Разницы между VSC и билдером в сборке/прошивке НЕТ. Просто всё делается проще и быстрее, без необходимости установки всех пугающего, монструозного VSC.
 
Изменено:

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@andy040670, Мне так удобней шить. Все под контролем. По поводу файла сообщение Вортигонта от 14 ноября.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Мне так удобней шить.
Абсолютно без разницы, в билдере тоже лог пишется что при сборке, что при прошивке и стирании, а так же чтение по ком порту.
P/s
Билдер проверил, сбирает. Инсталл не проверял, не думаю что будут проблемы.

Вот коротенький гайд.

Чтоб собрать прошивку и записать её в контролер по USB:

Запускаем Builder.bat.
По очерёдно вводим команды:
E, сотрёт флеш, рекомендуется, если в контроллере уже есть какая ни будь прошивка.
1, Обновит ваш репо до актуального состояния из гита. Изменённые вами файлы затронуты не будут.
5, Соберёт прошивку и зальёт её в контроллер.
F, Соберёт ФС и зальёт её в контроллер.

Чтоб собрать прошивку и обновить её по воздуху на уже рабочей лампе/панели:
По очерёдно вводим команды:
1, Обновит ваш репо до актуального состояния из гита. Изменённые вами файлы затронуты не будут.
4, Соберёт прошивку, прошивка будет находиться в папке "out_bin".
b, Соберёт ФС, образ ФС будет находиться в папке "out_bin".
Захдим в веб лампы/панели, в настройках жмём "Обновление firmware", или как там сейчас, выбираем папку "out_bin" и поочерёдно шьём оба файла.
Можно собрать прошить только ФС, если были внесены какие ни будь изменения в папке "data".

Команды:
3, обновит и перезапишет ВСЕ файлы с гита, файл user_config.h затронут не будет.
С, удалит временную папки ".pio" и "out_bin". Рекомендуется удалять каждый раз перед новой сборкой
дабы избежать ошибок компиляции.

Остальные команды служебные, используются редко, по необходимости и смысл их понятен и так.

4.png
 
Изменено:

vortigont

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

Кстате, а почему его нет на гите в папке data?
потому что этот файл создается/обновляется в процессе работы контроллера, напр когда меняются настройки топологии ленты из вебморды.
Просто элементы управления для ХАБ75 панели я еще не нарисовал, поэтому Dina мурыжит его заливая руками. Можно это делать через ПостМан без перепрошивки, но т.к. у меня нет винды, я не буду писать инструкцию по постману, это уже выходит далеко за рамки проекта. Ждём добровольцев, ну или пока я дорисую эти контролы. Сейчас есть мысль доработать фреймворк чтобы перенести хранение объектов для шаблона страниц в файловую систему. Это займет какое-то время, но потом будет проще рисовать эти чекрыжики и заодно уменьшит размер кода прошивки.
 
  • Лойс +1
Реакции: dina и andy040670

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
Увидел инструкцию andy040670 и смог устоять, решил попробовать. Прошил контроллер и все заработало. Как я понял web страница не открывалась по причине того, что помимо прошивки нужно заливать файловую систему (три дня мучений). Тогда вопрос: в platformio это не делалось автоматом при прошивке, и как это делается? Заранее извиняюсь за глупые вопросы.

Также интересная ситуация- web страница открывается в браузере хром но не управляется (не реагирует на нажатие, кеш чистил), яндекс работает и на винде и на андроид. Также работает мобильная версия хром.
 

vortigont

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

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
может у вас что-то локальное проблемы.
Скорее всего. Один раз он на хроме запустился , как точка доступа, подключил к сети, перезагрузил и все, курсор двигает но не нажимает. Но это не важно главное стронулся с мертвой точки.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Погонял. По плееру ,при вкл плеере, если выкл. лампу или перезагрузить ,плеер автоматом не подхватываеться. Подхватываеться после переключения на другой эффект. На плеер надо звук зациклить ,а не однократное проигрывание (у кдн так было привык) На нулевом эффекте не работает рисование ,на других эффектах работает, если важно. Демо не работает ,если важно. Остальное вроде ,все крутит. Много падений лампы при переключении эффектов(хаб 75). Могу выкладывать логи ,если надо. И еще заметил ,если важно ,яркость ниже 3 панель не горит ,при шкале 20.При шкале 10 ниже 2 не горит. Это все для хаб панели ,на матрице 16х16 ,яркость работает во всем диапазоне. Я так понимаю консоль ,можно не тестировать ,если у алекса работает. В хроме на винде у меня лампа ,все крутит. И еще Вы говорили ,что на есп32 ,Вы запускали 256х64 панель ,какую тогда можно запустить на камне S3 N16R8 ?
 
Изменено: