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

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
55
поправил затухание. Чисто по логам вроде работает, поглядите вживую как оно.
Всё отлично, теперь работает как надо.
Тут выяснилось, что эффект "68. Цветение" не работает от слова совсем, чёрный экран.
 
  • Лойс +1
Реакции: vortigont

Константин 271

★★★✩✩✩✩
12 Июл 2020
953
106
@andy040670, да, кстати, тоже замечал, что цветение не шло - думал, зима ещё, а вот весной - пойдёт сразу... А вот и не весной! :LOL:

@vortigont, мне бы как-то более по-русски, как моды на форумы - папка такая-то, файл такой-то, строка такая-то - замена на то-то, или добавление того-то. Ну, если не сложно.
 
  • Ахах! +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
@andy040670,
про цветение если не лень, то закиньте issue на гитхаб, пока зарылся в эти списки дурацкие, позже гляну.

@Константин 271,
так вы по ссылке сходите - там как раз как вы и просите в каком файле в какой строке что изменилось. Зеленые - добавленные строки, красные удаленные.

пример - в файле include/effects_types.h, добавить 326ю строку.
1678351865215.png

ну а дальше там ищите, строки могут плюс-минуст отличаться в зависимости от того откуда у вас код.
 

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
таки дошли руки, перелопатил я практически весь код работы со списками имен эффектов и их кеширования.
Выкинул все костыли с быстрыми/медленными/отложенными списками, превентивные и дублирующие операции. Бестолковые переключатели значков и номеров тоже выкинул.
Теперь конфиги эффектов и индекс создается в ленивом режиме только когда появляются какие-то изменения в параметрах конкретного эффекта.
Джейсоны для выпадающих списков имен эффектов генерируются через буфер в фоне, плюс с ними теперь корректно работает кеш браузера и не качает их каждый раз заново если ничего не менялось. Регенерация и подгрузка работают, наверное, раз в 10 быстрее чем раньше.
Какую-то логику где-то мог сломать т.к. еще не до конца расковырял эту лапшу с копиями и дублями конфигов, но уже можно потыкать и посмотреть.
Для собрки нужно обновить фреймворк, почистить кеш в браузере и перезалить ФС начисто (или зайти в настройки эффектов и тыкнуть "обновить список").
 
  • Лойс +1
Реакции: shax, Al12313 и andy040670

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
55

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
Фреимворк подтягивается автоматом, или надо пересобрать из него фс (/data) в папку проекта?
ну в смысле что надо подтянуть изменения из гита, платформио сам не обновляет если в манифесте версия не поднялась.
Можно сделать pio pkg update в папке проекта
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
55
ну в смысле что надо подтянуть изменения из гита, платформио сам не обновляет если в манифесте версия не поднялась.
Можно сделать pio pkg update в папке проекта
Теперь понятно. Я думал что это подразумевает запуск скрипта respack.sh. Просто сам фремворк формирует свои ресурсы, а у лампы свои, и при обновлении их с фреимворка ресурсы лампы будут перезаписаны в конечной паке, то есть их надо синхронизировать в гите в ручную, но это другой случай, но стоит внимания, так как они живут каждый своей жизнью не зависимо друг от друга.
Можно сделать pio pkg update в папке проекта
Всегда так и делаю:
1. pio lib update
2. pio pkg update
3. rmdir /S /Q %workdir%\.pio
4. rmdir /S /Q %workdir%\out_bin -> не обязательно, но в билдере я объединил последние две команды и добавил в сборочные пункты mkdir %workdir%\out_bin, так спокойней, иначе будут вопросы, а почему нет папки, но есть файл out_bin, каждый раз объяснять всем специфику CMD не охота.
Пока погоняю на 8266 с кнопкой и микрофоном и матрицей, без дебага.
P/s
или зайти в настройки эффектов и тыкнуть "обновить список
Если зайти в настройки эффектов то наблюдаем это:
1.png
Если выйти и повторно зайти в настройки эффектов, то всё отображается нормально.
P/ss
После 1:04 часа работы в быстром цикле (30 секунд на эффект) памяти 6,4 КБ! Пока не упала, но память опять куда-то потекла.
P/sss
После 1:23 аптайма лампа всё-таки упала, правда не заметил по причине не хватки памяти или ещё какой, вышел покурить)))
Выкинул все костыли с быстрыми/медленными/отложенными списками, превентивные и дублирующие операции.
Это как то связано с строками в юзерконфиге?
C++:
//#define DELAYED_EFFECTS         (1U)  // отложенная загрузка эффектов
//#define CASHED_EFFECTS_NAMES    (1U)  // кешировать имена эффектов, ВНИМАНИЕ!!! жрет память, использовать на свой страх и риск
P/ssss
После падения работает больше часа, память в норме!!!
Ладно, на сегодня хватит. Завтра прошью другую плату 8266 с мп3 и есп32 без всего, посмотрим как они себя поведут.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
Всегда так и делаю:
1. pio lib update
2. pio pkg update
3. rmdir /S /Q %workdir%\.pio
не, ресурсы не менялись, я там настройки вебсервера подправил.
Здесь 1 не нужно, это устаревшая команда, то же самое делайет что и 2.
Если делаете 3 то 2 тоже не нужно :) Ну разве что иногда обновить саму платформу есп, но это редко.

Если зайти в настройки эффектов то наблюдаем это:
это норм, загрушка будет всплывать на веремя регенерации/отсутствия кеш-файлов чтобы не клинило весь интерфейс. Но оно и так быстро обрабатывается, порядка 1 секунды, потом страница самообновляется. Иногда этого не происходит, я пока не нашел при каких условиях, потом поправлю.

Это как то связано с строками в юзерконфиге?
Эти опции в конфиге уже не актуальны, весь связанный с ними код вырезан и заменен другим подходом.

После 1:23 аптайма лампа всё-таки упала
вероятно еще не все эффекты отдебажены, надо отлавливать на каких эффектах падало и чинить. С кодом построения списков в режиме демо это не связано, он используется только когда тыкать в вебуи и менять настройки эффектов
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
55
вероятно еще не все эффекты отдебажены, надо отлавливать на каких эффектах падало и чинить.
Чаще всего падает на эффекте "45. Магма", при чём памяти достаточно 24.3 КБ.
Прошил вторую 8266 только с мп3, 1 час работы, память исчезает.
Первая 8266 с микрофоном, матрицей и кнопкой после первого падения память стабилизировалась, но падения сохранились.
Эти опции в конфиге уже не актуальны, весь связанный с ними код вырезан и заменен другим подходом.
Надо из юзер-конфига убрать чтоб народ не смущать.
P/s
Обновил бинарники.
#267 (alexgyver.ru)
 
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
Чаще всего падает на эффекте "45. Магма", при чём памяти достаточно 24.3 КБ.
магму переписал, должа меньше жрать памяти и перестать падать, там везде однотипные проблемы с эффектами.

Надо из юзер-конфига убрать чтоб народ не смущать.
убрал
 
  • Лойс +1
Реакции: andy040670

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
55
Подведу итог.
Вылетов на 8266 теперь нет, память держится стабильно, но на 8266 и есп32 с мп3 память тает на глазах. 8266 за час, в режиме демо (30 секунд на эффект) теряет около 20КБ -> ребут, плеер работает нормально, есп32 за три часа потеряла около 40 КБ хотя в настройках мп3 не включен и физически отсутствует.
В общем как то так.
 

vortigont

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

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
@vortigont,
так, что-то не клеится. Собрал с поддержкой мп3 минималочку на 8266, включил дему (флажёк DFPlayer на заглавной странице "эффекты" выключен).
за 3 часа особо ничего не вытекло. Давайте подробнее какая у вас конфига сборки и настройки что они так сильно течет

1680254613154.png
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
55
Давайте подробнее какая у вас конфига сборки и настройки что они так сильно течет
O'k
ESP32 (мп3, микрофон физически отсутствуют, демо 30 сек. на эффект) Память изначально: 186416B
user_config.h:
#define RESTORE_STATE 1

#define SHOWSYSCONFIG

#define USE_FTP

#define ESP_USE_BUTTON

#define MIC_EFFECTS

#define MP3PLAYER



#define BTN_PIN        (4)

#define PULL_MODE  (LOW_PULL)

#define MIC_PIN         (36)

#define MP3_TX_PIN (17)

#define MP3_RX_PIN (16)



#define LAMP_PIN                      (2)

#define WIDTH                             (16U)

#define HEIGHT                           (16U)

#define COLOR_ORDER              (GRB)

#define MATRIX_TYPE                (0U)

#define CONNECTION_ANGLE (1U)

#define STRIP_DIRECTION        (1U)

#define SEGMENTS                    (1U)

#define CURRENT_LIMIT           (2000U)
1.png
2.png
ESP8266 (Мп3 подключен и работает, микрофона нет, демо 30 сек. на эффект) Память изначально: 23152B
user_config.h:
#define LAMP_DEBUG
#define RESTORE_STATE 1
#define SHOWSYSCONFIG
#define DISABLE_LED_BUILTIN
#define USE_FTP
#define ESP_USE_BUTTON
#define MIC_EFFECTS
#define MP3PLAYER

#define BTN_PIN    (D2)
#define PULL_MODE  (LOW_PULL)
#define MIC_PIN    (A0)
#define MP3_TX_PIN (D5)
#define MP3_RX_PIN (D6)

#define LAMP_PIN         (D3)
#define WIDTH            (16U)
#define HEIGHT           (16U)
#define COLOR_ORDER      (GRB)
#define MATRIX_TYPE      (0U)
#define CONNECTION_ANGLE (1U)
#define STRIP_DIRECTION  (1U)
#define SEGMENTS         (1U)
#define CURRENT_LIMIT    (2000U)
3.png
4.png
ESP8266 (без плеера, с микрофоном, демо 30 сек. на эффект) Память изначально 25728B
user_config.h:
#define LAMP_DEBUG
#define RESTORE_STATE 1
#define SHOWSYSCONFIG
#define DISABLE_LED_BUILTIN
#define USE_FTP
#define ESP_USE_BUTTON
#define MIC_EFFECTS

#define BTN_PIN    (D2)
#define PULL_MODE  (LOW_PULL)
#define MIC_PIN    (A0)

#define LAMP_PIN         (D4)
#define WIDTH            (16U)
#define HEIGHT           (16U)
#define COLOR_ORDER      (GRB)
#define MATRIX_TYPE      (0U)
#define CONNECTION_ANGLE (1U)
#define STRIP_DIRECTION  (1U)
#define SEGMENTS         (1U)

#define CURRENT_LIMIT    (2000U)
5.png
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
@andy040670, так у вас еще включен микрофон и кнопка! Может это не плеер?
У меня 7 часов проработала дема в сборке с плеером, ничего не вытекло. Ща пересоберу с вашими опциями, перезапущу - гляну.
 

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
муть какая-то, две сборки с одинаковым конфигом - 8266 не течет, есп32 течет, куда смотреть пока не понял
 

vortigont

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

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
Залил еще порцию обновки.
- окончательно избавился от тяжелых копий объектов при манипуляциях с конфигами эффектов. Теперь эта файловая мишура уже похожа на что-то рабочее с чем можно двигаться дальше.
- исправил еще пару глючных эффектов
- добавил команду g_brtpct для http/mqtt для управления яркостью в процентах (по просьбе @Константин 271, нужно для Алисы)
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
55
Залил еще порцию обновки.
Что то опять пошло не так.
Теперь Демо буксует на одном эффекте, гоняет по кругу.
Файловая система уже 2 раза слетала, то есть всё потёрлось кроме папки /eff с двумя джейсонами внутри и манифеста.