WiFi лампа-будильник. Обсуждение прошивки от vvip-68

WiFi лампа-будильник. Обсуждение прошивки от vvip-68
Всем добрый день. Собрал светодиодную матрицу на wemos d1r1 и на прошивке от vvip-68(за прошивку огромное ему спасибо). Матрица получилась размером 102 на 16 пикселей. Захотелось управлять гирляндой с телефона, чтобы wemos был подключён к домашнему роутеру. Плата подключается к WiFi но не получает данных о погоде и данных с сервера времени. Гирлянда зависает, и плата так и не может получить данные из интернета. Монитор порта выглядит вот так:1645769623394.png
Буду благодарен любой помощи в решении проблемы.
Заранее спасибо!
 
Изменено:

Комментарии

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Intel1024,ну если в примере от библиотеки работает - значит все с лентой так.
В проекте гирлянды кроме ленты используется связь по WiFi. В некотором смысле обработка приема/передачи по WiFi и отправка сигнала на ленту - конкурирующие процессы. Причем и там и там от микроконтроллера требуется достаточно точно выдерживать временнЫе параметры.
Значит, конкретно для тех чипов, на которых построена эта лента микропроцессору не удается одновременно и адекватно соблюдать временнЫе интервалы в сигнале.

Была у меня однажды совсем упрямая лента - не хотела работать ни в какую, что бы я не делал.
Более-менее привести ее в чувство получилось примерно по следующей рекомендации:

Найдите в коде строку #include <FastLED.h>
ПЕРЕД ней вставьте строку
#define FASTLED_INTERRUPT_RETRY_COUNT 0

Далее найдите следующий файл в библиотеке FastLED (где она там у вас установлена?) и исправьте параметр отмеченный в прямоугольнике в диапазоне 5..50. Та капризная лента у меня стала более-менее сносно работать при значении параметра 15.

Однако при этом WiFi стал работать вообще нестабильно и частенько отваливаться. Тут нужно найти компромисс, если удастся...

1702035891089.png

Ну или уйти на версию 1.13, где ядро 2.7.4 - оно изначально работало стабильно в отличии от ядер 3.x.x
 
  • Лойс +1
Реакции: Intel1024

Intel1024

✩✩✩✩✩✩✩
30 Окт 2019
17
0
Спасибо, попробую. Я читал что это когда глючит бегущая строка но хотел попробовать. Как будет время попробую.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Intel1024,глюки бегущей строки являются следствием глюков при выводе сигнала на ленту.Внешнее проявление. Но у вас, кажется, особо тяжелый случай... Интересно, что будет если в скетче гирлянды для пробы вообще отключить WiFi и даже создание точки доступа. Просто в качестве эксперимента.Скажем, закомментировать вот эту строчку

1702037112662.png
 

Intel1024

✩✩✩✩✩✩✩
30 Окт 2019
17
0
Поставил так.
// Подключение к сети
// connectToNetwork();
Не могу сказать ничего определенно, сейчас лента смотана на бобины, Эффекты кажется работают, переключаются с кнопки. Но первый пиксель все равно горит. Вечером смогу попробовать на матрице
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Intel1024, а впростых примерах от FastLED первый пиксель не горит? в Скрипте гирлянды изменение типа ленты на 2811, 2812 (без B) 2813 - ничего с первым пикселем не меняют?
 

Денис1777

✩✩✩✩✩✩✩
10 Июл 2019
2
0
У меня 3 таких ленты, две плотностью 30 диодов на метр и одна 60 диодов на метр. У всех одинаковый глюк. Попробую поставить старые библиотеки.
Вопрос - как поставить другое ядро?
У меня было такое, на рекомендуемом пине. После смены на другой пин стало лучше, но все равно дрожания есть но меньше. Куплен стабильный блок питания, и сейчас буду с диодом играться и прочими историями с напряжением. Та же матрица из ленты на прошивке WLED работает на ура и без каких-либо подглючиваний.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Денис1777, просто из интереса - WLED сами собирали из исходников (тогда какое ядро, какой FastLED) или готовые бинарники загружали и эти вопросы не имеют смысла? Кстати, в доке на сборку WLED написано что используемое ядро - 2.7.4. Значит, у кого глюки с лентой и особенно с первым светодиодом - тому прямая дорога в версию 1.13, которая тоже на ядре 2.7.4
 
Изменено:

vvip

★★★★✩✩✩
18 Дек 2018
503
225
Почитал FAQ по WLED - там рекомендуют сигнал выводить именно на D4 (GPIO2) - там приводится ряд причин, не осознал каких, но типа стабильнее. Кажется на нем тайминги выставляются через аппаратный UART, что повышает стабильность сигнала. Правда при этом постоянно будет гореть синий диод на плате. Но возможно это решит проблему арттефактов и постоянно горящего первого диода... А синий диод можно закрасить или выпаять...

@Intel1024, Попробуйте переназначить вывод на ленту с D2 на D4, а кнопку соответственно или на D2 или лучше на D6, если она используется...
 
Изменено:

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@vvip, подскажите пожалуйста, как в прошивке увеличить время отображения температуры на дисплее TM 1637?
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Alex7272, похоже, что тут:

1702052437250.png

В данном случае - отображать 2 секунды с 28 по 30 и с 58 по 60 (00)
Точнее за счет вот этих +10 - видимо с 10 по 12 и с 40 по 42, похоже...
В общем - точно не помню, но экспериментируйте с этими цифрами...
 
Изменено:
  • Лойс +1
Реакции: Alex7272

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@vvip, а как отредактировать чтобы увеличить время отображения температуры в 2 раза (очень быстро пролистывает)
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Alex7272, хорошо, я разрешаю, редактируйте.
Оно и так 2 секунды показывает - с 28 по 30. Нужно чтобы больше - ну поставьте с 25 по 30. Еще больше = ставьте с 15 по 30...
Как захочется, в общем...
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
Обновление - версия v.1.14a.2023.1209
  • Исправлена ошибка в макросе {P} бегущей строки- при некоторых условиях при наступлении события отображалась вовсе не строка с макросом, а какая-то другая
  • В строке с макросом {P} не работал цвет фона - макрос {B} - исправил
  • Добавлен флаг в макрос, указывающий, что при наступлении времени до события менее 60 секунд показывать не бегущую строку, а обратный отсчет по центру матрицы.

Если время показа строки ДО события задано более 60 секунд (например 90) - то сначала будет показываться бегущая строка как обычно, а когда времени до события останется меньше 60 секунд - включается обратный отсчет

Если время показа строки ДО события - 60 секунд или меньше - строка покажется один раз, затем начнется обратный отсчет.

Если флаг не указан - будет как обычно бегать.

Формат: {Pdate time#N#B#A#W#T} - добавлен флаг #T в конец набора параметров

"До Нового года осталось {P01.01.****#E#60#60#T}"

Надеюсь, что ничего другого не сломал

PS: В Web-UI обновилась только страничка со справкой к макросу - его можно и не обновлять
 
  • Лойс +1
Реакции: Evgeny50 и VadZher

vvip

★★★★✩✩✩
18 Дек 2018
503
225
Извините, еще одно обновление
В макросе {R} исправил методику подсчета времени оставшегося до события.
Сделал как у Гугля.

Если ранее рассчитанное время, например составляло 22 дня и 10 часов - часы отбрасывались и писалось "22 дня"
Теперь округляется в бОльшую сторону и пишется "23 дня".

Когда времени до события остается меньше недели - округление в бОльшую сторону не выполняется, но начинают выводиться оставшиеся часы.
Например - "7 дней, 10 часов", а не "8 дней"
 
Изменено:
  • Лойс +1
Реакции: VadZher и VitalikV

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
@vvip, а какая должна быть карта разделов на ФС что бы влезала прошивка, раздел под ОТА и какой размер ФС под файлы? Что у меня никак не лезет на 4Мб всё сразу, слишком много файлов в каталоге data
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@vortigont, ну ты спросил. Не знаю.

Я в Arduino IDE для Wemos выбирал "4MB(FS:2MB, OTA:~1019KB)", для ESP32 - "Default 4MB with spiffs (1.2MB APP /1.5MB SPIFFS)". Из обязательного в data - папка web (примерно 520K). Ну и файл с картой индексов (*.map), если индексация по карте. Все остальное - опциональное. Есть место - заливай. Нет места - выкинь.

Как у тебя в Platformio карты задаются - я не знаю. Сам считай.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
Как у тебя в Platformio карты задаются - я не знаю
да также как и ардуиноиде, это карты от IDF, просто в ардуино иде свою карту так просто не укажешь при сборке.
Действительно в дефолтную влезло, но прям совсем уже впритык :)
`
RAM: [== ] 18.2% (used 59576 bytes from 327680 bytes)
Flash: [==========] 99.6% (used 1305125 bytes from 1310720 bytes)
`

а какая версия ардуино ядра сейчас считается "рабочей" для есп32 для проекта?
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@vortigont, 2.0.14 вроде без глюков работает...

А вот AcyncWebServer из твоей папки hotfix как-то уже наглухо пару раз зависало. Причем не то чтобы Web-connection,а вообще на матрице все замирало. До перезагрузки. Оно у меня на окне висит, поэтому лога что там происходило не видел. Буду наблюдать, если повторится - к USB подключу. С предыдущей версией, что у меня в папке Libraries была - как минимум неделю на окне без зависаний провисело...

И там еще в файловой системе хранится логин / пароль в отдельных файлах, все строки - каждая в своем файле. Backup настроек и backup строк... Под это тоже нужно место. Если не будет - бэкап не сохранится. Или строки. Или настройки соединения - будет все время при перезапуске точку доступа поднимать...
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
Буду наблюдать, если повторится - к USB подключу
а на каком чипе, есп32? В этот момент клиенты какие-то были подключены к серверу? Обычно вочдог в любом случае перегружает плату.

все строки - каждая в своем файле. Backup настроек и backup строк
кстати, это не есть хорошо. У литлфс сектор записи 4к, соответственно каждый мелкий фал жрет место как не в себя. Голые строки лучше собирать в 1 файл. Я закину ПР с оптимизациями по вебсокету.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@vortigont, чип - вот такой
Клиенты - да. У меня постоянно в браузере на компе страница открытая висит. Но я ее не трогаю - там из обмена только пинг идет.

По строкам. Пробовал с одним файлом - как-то что-то неудобно было. Отказался. Уже не помню почему.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
Пробовал с одним файлом - как-то что-то неудобно было
ну да, неудобно. Но если много мелких файлов будет на ФС, то деваться особо некуда. Или выкидывать что-то другое :)

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

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@vortigont,
так она вроде и выкинута. Она же с ядра 2.0.0 или около - входит в ядро и в скетче уже не используется.
А лежит пока - вдруг придется обратно на проверенную 1.0.6 откатиться. 2.0.14 всего неделю как тестируется. Вдруг всплывет что...

Кажется вспомнил почему не один файл. Одна из причин.
Некоторые пытались прошивку как информатор с бегущей строкой использовать и строки там, к примеру, в 1КБ - обычное дело.
Если все строки загружать из файла и в памяти хранить - никакой памяти не хватит. А так, когда понадобилось - она быстренько из файла читается, почти задержек нет... А уж если отредактировали и сохранить сборную в один файл - опять же они все в памяти должны быть...
Да даже если и не 1кб, то хранить все 36 строк в памяти - требует ресурса. Которого на 8266 мало, а я пока не хочу от него отказываться...

Всегда чем-то приходится жертвовать...
 
Изменено:

zike_ziga

✩✩✩✩✩✩✩
3 Фев 2023
6
0
@vvip,
Извините за вопрос, но как в LedPanelWiFi изменить IP адрес подключения на другой так как телефон на прочь отказывается к нему подключаться, с пк в браузере все работает стабильно