ESP, IoT WiFi лампа. Меряемся прошивками

Leon111_09

★★★✩✩✩✩
6 Июн 2021
642
148
55
Таганрог
forum.wisecomp.ru

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630

@Константин 271,
Все что вы хотите, уже было и есть в нашей прошивке. Зачем вы продолжаете морочать людям голову? Вот только пин матрицы у нас тоже был настраиваемым, в некоторых пределах, потом убрали. Специфика FastLED,. Да и не восстребовано оказалось.
*Вы поймите, WLED - мобильный контроллер для всего, тут елку, там ленту. Лампа - цельный агрегат. И тащить в лампу надстройку, типа как у WLED, позволяющую менять пин матрицы, тупо нафиг не уперлось. И задача для разработчика ни разу не "на часок'. Зачем эти сложности?
 
  • Лойс +1
Реакции: alvikskor и SlingMaster

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630

@Divin,
И не будет. Это принципиально. Датчик температуры, кстати, тоже не для показометра делался. А для управления вентилятором обдува матрицы. Как в моем проекте "лампа во всю дурь". Там матрица качается по полной, на все 14А в "белой лампе". Потому я датчик и приделал, и управление вентилятором написал.

*Хотя, при некоторой сноровке все это можно использовать даже с обогревателем воды, или еще чем то внешним. Если надо.
 

Divin

★★★✩✩✩✩
30 Янв 2021
412
184
@kostyamat, извините за офтоп, а что за линзу Френеля вы хотели на лампу? Может ссылочкой поделитесь?
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630

@Divin, я не линзу Френеля хотел, я объктив купил, короткофокусный. Хотел к "лампе во всю дурь" приделать короб с объективом, чтобы эффекты на стену пулять, или экран от проектора. Но пока руки не дошли.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
Как в моем проекте "лампа во всю дурь". Там матрица качается по полной, на все 14А в "белой лампе".
Очень интересно, как достичь 14А - это, видимо, вдвое более дорогая матрица, которая точно не ECO. Ибо иначе она ест не более 7А. В любом случае, это уже скорее спортивный интерес, чем практическое применение. Она и на 5А нажарит оладушков ))
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630

@Константин 271,
Лампа во всю дурь кусками по многим темам разбросана, я постил цепи питания, как настроить, конструктив. Может когда-нибудь сделаю отдельной темой, и там все соберу. В любом случае - это фотосветильник для сина. Она плоская. Матрица покупалась за 13€, 13.8А жрет справно. Я ее на "люминиевый" квадрат наклеял, и снизу обдув сделал, с контролем по датчику ds17b20. Вполне себе робит. Температура луминия макс 65°, вполне в пределах, по даташиту.

*** В первой моей лампе матрица и 16А может, но там обдува нет, она обычная.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
Матрица покупалась за 13€
Тогда это ECO. Странно, я включал - никогда выше 7А не было. Разве что питание не дублировал, как гайвер показывал в самой первой своей лампе.

В первой моей лампе матрица и 16А может
А первыми были только не ECO матрицы. Тут согласен. Может. Но почему-то мне кажется, что сгорит довольно быстро, если нет охлаждения.

Кстати, а как на люминивый квадрат клеить плотно - провода ж мешать будут? )
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630

Вложения

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
1) можно ли как-то увеличить кол-во диодов до 1738 ?
Либо взять прошивку с поддержкой ESP32 (из ганнер-подобных это от ввипа), либо присоединяться к клубу гадальщиков имени Сотнега. Для нашей прошивки кол-во поддерживаемых диодов сильно зависит от подключенных модулей, поскольку каждый из них использует память. Но если собирать для ESP8266 под SDK 3+ с MMU, то буферы можно поместить в IRAM.
 

Сотнег

★★★★★★★
15 Янв 2020
4,123
1,439
@Константин 271, защита есть от нажатой при подаче питания кнопки.
Но состояние не сохраняется. Если перевключить в розетку с нормальной кнопкой - она должна работать.


@kDn, опять началось ...
nestydno.jpg
 
  • Лойс +1
Реакции: Константин 271

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@Сотнег снова включил дурачка... Вот я поставил:
C++:
#define WIDTH                 (48U)                         // ширина матрицы
#define HEIGHT                (48U)                         // высота матрицы
и получил:
C++:
Linking .pio\build\esp8266dev\firmware.elf
Building .pio\build\esp8266dev\firmware.bin
Retrieving maximum program size .pio\build\esp8266dev\firmware.elf
Checking size .pio\build\esp8266dev\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=====     ]  50.5% (used 41332 bytes from 81920 bytes)
Flash: [========  ]  83.0% (used 866628 bytes from 1044464 bytes)

Environment    Status    Duration
-------------  --------  ------------
esp8266dev     SUCCESS   00:00:36.634
Говорит ли это о том, что прошивка будет нормально работать с матрицей 48*48? Расчехляйте хрустальный шар.

* Вообще бесполезно. Проверено многократно. Дуб-дерево. Непробиваемый.

1644401706548.png
Без MMU запускается, но ожидаемо падает при попытке включения, т.к. идет выделение памяти под доп. буфер. С MMU должно работать нормально, поскольку +16кб.
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,123
1,439

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Вы имели в виду, что без своего табло вы бы не догадались, что оно у вас "ожидаемо падает"?
Неужто начинает доходить? Неужели еще не все потеряно и Сотнег может хоть какую-то информацию воспринимать.
Вот еще лог, где включение и выключение лампы - картинка выводится на матрицу. Ничего не падает, прошивка та же, MMU все также НЕ ВКЛЮЧЕН.
Расчехляйте хрустальный шар, и угадайте что именно я сделал.
C++:
12:25:46.956 > Lamp powering On
12:25:46.956 > DFplayer: soundfile:, folder:0, filenb:0, effnb:16
12:25:46.979 > UI cfg WRITE key:'syslampFlags' val:'78617105244...', cfg mem free: 690
12:25:46.981 > Сброс состояния кнопки
12:25:46.984 > Button switch to isr
12:25:47.222 > UI: task garbage collect: released 456 bytes
12:25:48.942 > Fading to 127 done
12:25:49.051 > Eff:272, FPS: 5, FastLED FPS: 0
12:25:49.052 > MEM stat: 4928, HF: 54, Time: 12:25
12:25:49.258 > UI: task garbage collect: released 240 bytes
12:25:49.432 > DFPlayerError:Cannot Find File
12:25:51.178 > UI: task garbage collect: released 216 bytes
12:25:51.872 > DFPlayerError:Cannot Find File
12:25:54.088 > onetime click - buttonEnabled=1, onoffLampState=1, holding=0, holded=0, clicks=1, reverse=0
12:25:54.090 > Button send action: 2
12:25:54.090 > RA 2:
12:25:54.090 > Сброс состояния кнопки
12:25:54.093 > Button switch to isr
12:25:54.173 > UI cfg WRITE key:'syslampFlags' val:'78617105244...', cfg mem free: 690
12:25:54.176 > UI: task garbage collect: released 328 bytes
12:25:54.507 > Lamp powering Off
12:25:54.507 > Fading to: 0
12:25:54.518 > UI cfg WRITE key:'syslampFlags' val:'78617105236...', cfg mem free: 690
12:25:55.219 > UI: task garbage collect: released 328 bytes
12:25:56.507 > Fading to 0 done
 

Сотнег

★★★★★★★
15 Янв 2020
4,123
1,439
@kDn,
не, я всё-таки верю,
что вы бы даже без своего табло смогли догадаться.

Если у вас прошивка падает при размерах матрицы 48х48, то никакое табло не нужно, чтобы это увидеть.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Попробуйте перед прошивкой в настройках уменьшить выделенную память под ОТА: тогда вам под саму прошивку и под ее работу будет больше места оставаться.
Тут речь идет об RAM, раздел ОТА это FLASH-память, изменение разделов в данном случае не решит ничего. Нужно либо MMU, либо вдумчивая оптимизация кода, либо и то и другое. В оптимизацию тут врядли осилят, а вот MMU врубить бы могли... Но я об этом говорил вроде еще в ноябре, раз никто не пошевелился, то либо не умеют, либо не хотят, либо как Сотнег. :)

Впрочем даже в случае включения MMU необходимо будет пробежаться по коду, поглядеть где есть статические буферы и перенести их в кучу, т.к. MMU не автоматический, а как надстройка над malloc, следовательно можно переместить лишь блоки динамически распределяемой памяти.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Чёт я не понял. А где ваша хвалебная "куча"? И при каком её количестве должно работать?
В смысле где? При 48*48 практически вся используется.
C++:
13:02:33.537 > {"pTime":"13:02","pMem":"5552","pUptime":"3000","pRSSI":"-61"}
13:02:34.178 > Eff:272, FPS: 0, FastLED FPS: 9
13:02:34.179 > MEM stat: 5552, HF: 56, Time: 13:02
13:02:49.164 > Eff:272, FPS: 0, FastLED FPS: 9
13:02:49.165 > MEM stat: 5552, HF: 56, Time: 13:02
13:03:03.537 > send MQTT Data :
13:03:03.537 > {"pTime":"13:03","pMem":"5552","pUptime":"3030","pRSSI":"-62"}
13:03:04.149 > Eff:272, FPS: 0, FastLED FPS: 9
13:03:04.150 > MEM stat: 5552, HF: 56, Time: 13:03
13:03:19.135 > Eff:272, FPS: 0, FastLED FPS: 9
13:03:19.135 > MEM stat: 5552, HF: 56, Time: 13:03
Как можно заметить 5кб всего свободной прямо сейчас. Это в общем-то крайне мало. Но я как бы и показываю вариант без MMU на нашей прошивке, если пересобрать с MMU то цифры будут другие при тех же вводных. Свободной памяти станет больше. Вопрос же о кол-ве свободной памяти в общем-то не сильно корректный. Стек требует память, динамическое распределение памяти - тоже требует память, куча других операций также требуют память. Вот только если не использовать требующие памяти режимы/эффекты, то можно даже при достаточно сильных ограничениях "выживать".

P.S. Кстати, мне на алике попадались ESP8266 с 16-ю Мб памяти.
Это не RAM. А PSRAM напаять и использовать под ESP8266 в этой ветке смогут - практически никто. :)
 

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
Как можно заметить 5кб всего свободной прямо сейчас.
И что даёт нам это знание? Работать будет, или будет глючить, или падать? А вот если его , таки , залить и проверить, то можно знать точный результат.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
и свободное место после загрузки в рабочем режиме
Хоть кто-то прислушивается, спасибо.

И что даёт нам это знание? Работать будет, или будет глючить, или падать? А вот если его , таки , залить и проверить, то можно знать точный результат.
Вы можете и дальше спрятать голову в песок и игнорировать кол-во свободной памяти, гадая на кофейной гуще - хватает ее или нет. Правильным же подходом является - постоянно мониторить свободную память, как минимум в логе, хотя желательно в UI. Но вообще я уговаривать не собираюсь. Нужна стабильность и предсказуемость - проверяете что происходит и выясняете почему. Не нужна - ну и живите с тем, что есть.

И навсякий напоминаю - это я показывал кол-во свободной памяти для матрицы 48*48, кол-во диодов и расходы памяти можете посчитать самостоятельно, учитывая то, что у нас используется от 2 до 4 буферов - но они динамические и живут в памяти ТОЛЬКО когда нужны.
 
Изменено:

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
@kDn, Да мы, собственно , спокойно, себе, живём. Это вы постоянно пытаетесь вставить свой нос и поучить нас жить. Причём ни одного конкретного предложения за год не было. Всё в общем и вскользь. И, далеко не всё, что вы считаете правильным, есть правильным для всех. И когда нужно что-то проверять и выяснять, проверяем и выясняем. Прошивка живёт и развивается, и многим нравится. За последние 4 месяца 1600 скачиваний с файлообменника. И это только одна из трёх прошивок в этой ветке. Хотите помочь помогите, а постоянно приходить и говорить, что у нас всё плохо, как-то странно.
Уровень у всех разный , но уважать старания людей Сделать что-то хорошее и поделиться с другими, думаю, необходимо.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@alvikskor, еще один обиженный.
Мониторить расход памяти это правильно и нужно. Что вам еще в этом простом утверждении нужно разжевывать и объяснять я лично хз.
Ну и как-то я рассчитываю, что объяснения даю тем, кто хотя бы чуток разбирается в вопросе и кто когда что-то неясно хотя бы может задать уточняющий вопрос. Если вы не из таких и вам нужно все разжевать и в рот положить - сочувствую, но ничем помочь не могу.

Ну и на счет скачиваний и прочего - распечатайте на листик и гордитесь, 1600 скачиваний за 4 месяца. Достижение! Поздравляю. Благодарные пользователи рукоплещут и кланяются. Можно почивать на лаврах и забить на проблемы с памятью. Правильная логика? Или что-то в ней не так? ;)

-----------------
Со мной сюсюкаться не нужно. Можно отвечать жестко и в мои ошибки тыкать носом легко и непринужденно. Я утрусь и исправлю. Если же у вас нежная душевная организация, то уж тут извините - первые пару раз я обычно говорю спокойно и нормально, но на десятый раз хождения по одним и тем же граблям мне надоедает, а особенно когда начинаются глупые вопросы вида "а зачем оно нужно, без этого жили и дальше поживем". Тьфу.