ESP, IoT WiFi лампа/гирлянда/информер ws2812/HUB75 - Обсуждение прошивки FireLamp_EmbUI

vortigont

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

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

Showing 149 changed files with 14,587 additions and 12,448 deletions.

настроил событие, выключил лампу(движком), утром она не сработала, и потерялось окно "События"
я недавно там переписал кучу функций-обработчиков, наверняка что-то сломал в событиях ибо документации нет по формату этих событий, а распутывать код я не стал. Пока обдумываю переписывать целиком или рихтовать то что есть, посмотрю по наличии свободного времени.
 

Дрон

✩✩✩✩✩✩✩
18 Окт 2019
28
5
я недавно там переписал кучу функций-обработчиков, наверняка что-то сломал
Большое Вам спасибо за работу над проектом, другие ветки этого проекта почти заброшены. Терпения Вам и удачи.
По поводу "События": сегодня крутил и так, и сяк, вроде срабатывает(вкл., выкл., вывод строки). Что было утром, не знаю.
Сегодня опять "заряжу".
Можете подробнее описать, дать ссылку(создать инструкцию) как работать с логами?

"События" заработали только после "перезаливки" ФС, код не "заливал".
 

dina

★★✩✩✩✩✩
3 Окт 2021
369
94
50
Нажимаешь Default (41), выбираешь esp 32 debug (39) , заливаешь прошивку с дебагом ,после прошивки нажимаешь вилку розетки (40), пойдет лог.
 

Вложения

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

Дрон

✩✩✩✩✩✩✩
18 Окт 2019
28
5
Здравствуйте, сегодня запустилась нормально, что было вчера- не знаю. Может то, что прошил ещё раз ФС ?
Кстати, ФС прошивать первой, а потом код, или наоборот?
 

Дрон

✩✩✩✩✩✩✩
18 Окт 2019
28
5
@Дрон, глюки )
заливать сначала прошивку, потом образ ФС
В первый раз так и делал.
Теперь по выключенной кнопке "Плавное переключение эффектов" :
Переключал два эффекта "Пейнтбол" и "Эффект 3Д шума", менял настройки и переходил с эффекта на эффект.
Настройки не сохранялись, и в какое то переключение лампа выключилась.
 

Вложения

vortigont

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

попровил эту проблему
 
  • Лойс +1
Реакции: Дрон

Дрон

✩✩✩✩✩✩✩
18 Окт 2019
28
5
попровил эту проблему
Обновился, стало ещё хуже, при переключении эффект может включиться, а может нет. Если эффект включился, то ведёт себя не как положено.
Но теперь настройки сохраняются, и кнопка "Плавное переключение эффектов" остаётся в том положении, в котором была.
 

Вложения

Дрон

✩✩✩✩✩✩✩
18 Окт 2019
28
5
@vortigont,
После этой(в файле) перезагрузки всё устаканилось и работает нормально. Чудеса какие то. Перезагружалось 2 раза.

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

Вот здесь вроде поймал фрагмент.

Причём, происходит через раз, или 4-5раза(выключения)

не может влиять если у меня выход на лампу на пине RX0, по программе "LED Matrix gpio" 3.

@Дрон,
перевёл на D2-тоже самое.
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
@Дрон,
по вашим логам нашел и поправил еще кучку багов
- вылет за границы списка в пикассо
- чистую перезагрузку эффекта при включении лампы
- исправил остатки мусора на матрице при выключении без фейдера, это был интересный случай
 
  • Лойс +1
Реакции: Дрон

Дрон

✩✩✩✩✩✩✩
18 Окт 2019
28
5
@vortigont,
Здравствуйте,
1. Настройки эффектов сохраняются
2. Лампа выключается и включается нормально.
3. В приложенных логах проблема - при включении этого эффекта лампа перезагружается. В каких то один раз, в других постоянно при включении эффекта. Файлы подписаны.

Источник

Я не разбираюсь в коде, но мне кажется, что лампа постоянно хочет подключиться через MQTT:
UI: Connecting to MQTT...
UI READ KEY: 'm_pref' VAL: ''
UI READ KEY: 'm_host' VAL: ''
UI READ KEY: 'm_port' VAL: ''
UI READ KEY: 'm_user' VAL: ''
UI READ KEY: 'm_pass' VAL: ''
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
приложенных логах проблема - при включении этого эффекта лампа перезагружается
интересные баги вы находите, кстати. Полезли проблемы с плохим дизайном и отсутствием изоляции объектов. Под 8266 это было фиолетово, там всё выполнение линейное, а под есп32 проявляются проблемы с thread safety. Коряво написанные эффекты падают на циклических обращениях к контролам.
Исправил "тени" и добавил заплатку на действия по кнопкам '<<', '>>' в морде. Остальные эффекты, вероятно тоже перестануть падать, проверьте. Но в любом случае как минимум это править все корявые эффекты, а как максимум надо менять архитектуру управления эффектами более глубоко. Существующие контролы уже критики не выдерживают.

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

dina

★★✩✩✩✩✩
3 Окт 2021
369
94
50
Здравствуйте! Выдался денек выходной. Круто Вы лампу причесали, сколько не крутил вообще ни одной перезагрузки не было! Только точки на дисплее ,глаз режут ,живут своей не понятной жизнью. Ждать энкодер ,в меню гпио? Могу на выходных заморочиться ,с ds18b20 ,на пин aux ,светодиод напаять (поглядеть переключение) ,так же есть модуль rtc ds3231. Надо? Что на данный момент ,надо тестить?
 

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
ну т.е. считаем что реализация настроек параметров матрицы на лету вполне себе жизнеспособна. Слил то что есть в мастер ветку.
Падавшие эффекты все равно надо перебрать и исправить, муторно это, может с остальными контролами когда.
Дальше что пока думаю... остались крупные и неинтересные куски на переписывание целиком, лениво )
Наверное, таки перелопачу управление яркостью, ибо мешает дальше что-то менять - толи это контрол, толи не контрол. Да и надо что-то делать с неравномерностью динамического диапазона для эффектов. Добавлю разные кривые на каждый эффект. Эндину хотелку с индивидуальной яркостью пока думаю как сделать, весьма странная хотелка.
Плюс еще корявый вывод текста, тоже надо в либу вынести аккуратно как-то. ПОка хватит более чем.

Энкодер и кнопку пока не ждать - там такой беспредел что только с нуля писать. Для этого нужно сначала собрать какую-то шину событий для обмена данными. Это небыстро.
ds и rtc нафиг... это была какая-то Костина закидушка под его личный проект, не знаю кому оно еще может быть нужно впринципе? По идее надо выдрать это всё из существующих объектов и, при желании, оформить как какой-то плагин. Надо подумать на этим в долгую.
 

dina

★★✩✩✩✩✩
3 Окт 2021
369
94
50

@vortigont,
Ладно ,буду эффекты крутить ,в хвост и гриву ) На пин aux светодиод напаяю ,через События погляжу, его оставим ? Автоматизация ,наверно пускай будет ? Свистните ,если что.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
починил я эти дурацкие точки на тм экране, ппц... пользы на копейку, возни на килограмм

AUX останется как сейчас есть пока руки не дойдут на что-то более приличное
 
  • Лойс +1
Реакции: Дрон и dina

dina

★★✩✩✩✩✩
3 Окт 2021
369
94
50
Ура! Заработало! Куча перезагрузок ,всё чётко!
 
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
полностью переделал управление яркостью

шкала яркости теперь масштабируемая, по-умолчанию изменяется в пределах 0-20. Кому неудобно, можно поменять в "настройки" - "дополнительные" и выставить любое значение вплоть до 255 для особо упортых. Если выставить 100, получатся проценты. Думаю по-умолчанию и 0-10 хватило бы, но ладно, посмотрим.

Дополнительно управление яркостью корректируется с помощью кривых, кривые нужны что бы скорректировать нелинейность восприятия глазом света от светодиодов и разнобоя в интенсивности светопотока от разных эффектов.
По-умолчанию все эффекты используют кривую cie1931, как наиболее приближенную к "линейной" для использования со светодиодами.
Смысл кривой в том что половина шкалы примерно соответсвует "половине" яркости по ощущениям глаза человека.

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

1688119379311.png

exponent - экспонента самая медленно нарастающая кривая, хорошо подходит для эффектов "вырви глаз"
cie1931 - по-умолчанию, наиболее равномерная по восприятию
sine -
синус, нарастает медленне чем линейная по краям шкалы, но похожа на линейную в середине
linear - без какой либо коррекции, по сути это управление скважностью ШИМ светодиодов
square - квадратичная, нарастает медленее чем линейная, догоняет линейную к концу шкалы

синус, линейная и квадрат кривые, кажутся "ярче" чем по-умолчанию 1931. Далее надо подбирать под каждый эффект по вкусу. Сравнивать кривые лучше по 3м точкам - примерно на четверти, половине и 3/4 шкалы. Сравнивать только посерёдке смысла нет.

В целом я потыкал, если не упарываться до одури, то вполне норм влепить экспоненту на яркие эффекты, типа "метасферы" и квадрат или синус на убогие типа "акварель" или "бегающий кубик".

Периферию типа кнопок и энкодеров пока не тестировал, навреное там что-то сломалось из-за уменьшеной размерности шкалы, надо проверять.

P.S. То что некторые кривые будут в начале шкалы на малых значениях (1-2) гасить матрицу - это нормально ибо выходит за пределы динамического диапазона 8 битной матрицы. Хотите блеклые и потерянные цвета на очень малой яркости - ставьте шкалу на 255 и линейную кривую.

P.P.S. Для @andy040670 - сейчас "индивидуальной" яркости для каждого эффекта нет, но, в принципе в тукущую архитектуру ее вписать можно. Но будет несколько "но", на эти настройки не будет действовать масштабирование шкалы и кривые (что логичино, ибо нафиг тогда этот ручной контрол нужен). Другой вопрос что в текущей реализации я вот совсем не понимаю зачем этот рудимент таки нужен, кроме как потому что оно у вас просто есть и всё. Процесс ломать не охота.
Давайте так, у вас лампа все равно на 8266 сейчас и текущий проект, я так понимаю, вам ни к чему? Когда соберете лампу на есп32 - посидите и пощупайте новую реализацию, вдумчиво. Если прям вот совсем не зайдет и кровь из носу захотите сохранять значение для каждого эффекта, скажите мне, я сделаю. А пока посмотрим как оно будет жить.
 

dina

★★✩✩✩✩✩
3 Окт 2021
369
94
50
Кнопка работает,только на тм1637 клики ,не отображает.Эффект 8 акварель ,кривая яркости помогла ,на старте эффекта видно, но сам эффект кривой ,ползунок плотность двинешь ,всё резко меняеться. Эффект 42 Огонь 2018 поломался. Эффект 73 космогоншик ,было пару раз ,как будто стартует за пределами экрана (картинки нет) ,потом через какое то время появляеться нормальная картинка. Коль у нас клик кнопки энкодера ,глобальная яркость освободилась ,на него повесить вкл. выкл. Мп3 плеера. А так по яркости ,я как использовал примерно на 25- 30% ,так и здесь. У 8 эффекта акварель ,только кривую яркости изменил.Ну и с энкодером прошивка не собираеться. И ещё вопрос ,что чекрыжик Отладка ,должен делать? Еще интересное наблюдение. В Vsc ,прошивка с энкодером ,не собираеться. В консоли ,собираеться и прошиваеться ,только плеера ,дисплея ,микрофона нет ,хотя в конфиге акктивировано. Это как так работает?
 
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
С прошивкой - не знаю, выглядит так что что-то не то сибираете :) если в вебморде есть настройка плеера/дисплея значит должен работать. Если нет - значит собралось без поддержки онных.
Огонь я понимаю от чего сломался, я недавно что-то менял в классе 3д карты шумогенератора. Заведите тикет, позже поправлю. На выходных без компа.