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
@dina, да, есть такое. Это после сегодняшнего последнего изменения? Вчера я просто не обратил внимания.
Ладно, посмотрю еще.
 

vortigont

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Все обновляеться. Пол часа тыркал переключение эффектов ,ни одного падения! Это отличный результат. Теперь буду эффекты ,по контролам перебирать. Тут такая делема ,много эффектов на 32х64 ,не очень глядяться ( как головастикти и микробы). Наверно начну с красивых ,которые шикарно глядяться на панели. Уж очень охота режим демо ,чтобы ни чего не падало и красиво гляделось. В конце концов можно свой список эффектов ,для демо создать.
 
  • Лойс +1
Реакции: vortigont

vortigont

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

dina

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

vortigont

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

дисплей джейсон готовый лежит. Я могу его в дата закидывать
можно
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Почти 2 часа гонял лампу ,по переключению ,ни одного падения (контролы перебирал) 👍 Единственное падение по контролам ,только в эффекте 72 лавовая лампа ,при кручении контрола ФИЛЬТР. Увеличиваешь его 1.2.3 и потом на 0 и падение, там с 2 типа артефактов начинаються. Лог я выще выкладывал. П.С Сегодня потаскал лампу по всей квартире ,вифи отлично работает ,просадка в самой дальней точке (2 стены) по монитору RSSI лампы 55% ,возле роутера в 1.5 метрах 100%. Сука мышь беспроводная срала, она ближе всех к роутеру ))).Щас на проводной сижу.
 
Изменено:

Dimel

✩✩✩✩✩✩✩
28 Янв 2021
7
0
Может быть глупый вопрос.. Но нужен ли ESP какой-то минимальный обвес? Кнопка там или еще что? При попытке залить последнюю сборку получаю бутлуп, старые версии заливались без проблем. Если что у меня стандартная 38-ми ногая плата.
 

Вложения

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

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
@Dimel,тоже самое. Хоть с обвесом хоть нет. все одно и тоже. Что то в последней сборке не так. Думал контроллер что то с ним . Прошил пару сторонних проектов . ESP в норме. Странно одно . что кто то прошил и все норма. и тестируют себе на радость.
 

Дрон

✩✩✩✩✩✩✩
18 Окт 2019
28
5
Всем привет, я тоже решил обновиться, точки доступа нет. Заливал после полной очистки.
 

vortigont

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

Dimel

✩✩✩✩✩✩✩
28 Янв 2021
7
0
@vortigont, Я выше лог выложил. Не полный конечно. Хотел посмотреть "наголо". И не взлетело... ЕСП рабочая 100%.
 

vortigont

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

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

vortigont

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

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
Доброго времени суток всем. Скажите может у кого то получилось настроить пины панели хаб 75. Я как не танцевал с бубном около контроллера и веб морды . Ну не как и все. Назначаю пины нажимаю сохранить и после этого контроллер уходит в постаянный перезагруз . и в чем дело не пойму.
 

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
Нужна помощь. Собрал с нуля проект. Прошился нормально, без ошибок. Не могу правильно настроить матрицу. Параметры такие: ширина 20, высота 15, подключение правый нижний угол, лента идет змейкой снизу в верх. Что нужно выставить в настройках?
 

vortigont

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

@wadimsuv,
подключение правый нижний угол, лента идет змейкой снизу в верх. Что нужно выставить в настройках?
выставьте "змейка" и "вертикальная лента", зеркалирование потом поменяете если увидите что перевернутое изображение. Включите 12й эффект, там рисуются настроечные уголки - слева должны быть красные, справа зеленые.
 

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
@vortigont,
Выставил как посоветовали. На матрице мешанина. Нет ни каких уголков.
 

vortigont

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

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
@vortigont,
Лента рабочая точно. Еще вчера на ней был проект (тот который политизированный) Я решил перейти на ESP32 и на этот проект. Пин ленты gpio 4

@vortigont,
Самое интересное, что если в настройках указать ш15 а в20 то работает вроде нормально но все эффекты как бы на боку, т.е на 90%

@vortigont,
Вот добился нормальных эффектов только в режиме 15х15, Если ставить ширину 20, то каша.

@vortigont,
Если я правильно понял, то эта прошивка не поддерживает матрицы не стандартного размера?
 
  • Вау +0
Реакции: vortigont

vortigont

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

если в настройках указать ш15 а в20 то работает вроде нормально но все эффекты как бы на боку, т.е на 90%
эта прошивка не поддерживает матрицы не стандартного размера?
поддерживает как видите. Смотря что понимать под "боком" с вашей точки зрения.
"змейка" вам точно нужна включенная. Остается 3 флажка, это всего 8 комбинаций - включите 12й эффект и переберите их, не так это и сложно. Бегущее красное заполнение покажет вам куда что переворачивать.
Все возможные варианты непонятно как склеенных лент я не тестировал, но математически прямоугольные равномерные топологии транслируются нормально. У меня работает 16х32, где 32 высота, её же я могу перенастроить как лежащую на боку 32х16.