Прошивка для esp32 nodemcu lua на базе последней idf4.4

Тема в разделе "ESP8266, ESP32", создана пользователем serg3295, 11 июл 2022.

  1. ИгорьК

    ИгорьК Гуру

    Таки что хочется добавить в копилку. Если при очередной попытке в Debian имени последней версии и Python3 там же, возникают проблемы с python без циферки 3, можно применять такие манипуляции.
    Подменять python третьей версией через:
    Код (Bash):
    sudo apt install python-is-python3
     
    А если потерялся pyserial и установка "pip3 install pyserial" жутко и многострочно ругается, то можно воспользоваться:
    Код (Bash):
     pip3 install --break-system-packages pyserial
    Получается очень вкусно!
    Все сказано в целях make для build for esp8266 и ни миллиметром ширше.
     
  2. ИгорьК

    ИгорьК Гуру

    @serg3295
    Скомпилировал последнюю прошивку на классический ESP32.
    Выдает картинку:

    upload_2024-4-21_20-11-9.png

    Проблем с работой пока не заметил, но красный цвет несколько раздражает. Гугл отправляет на ESP32 C3 и т.п. но у меня обычная ESP32.
    Кто то сталкивался?
     
  3. serg3295

    serg3295 Гуру

    У меня на обычной ESP32 выдаётся это же сообщение. Пока не разбирался из-за чего это происходит и на что влияет.
     
    ИгорьК нравится это.
  4. ИгорьК

    ИгорьК Гуру

    Ладно, переживем :)
     
  5. ИгорьК

    ИгорьК Гуру

    Кстати, а NodeMCU поддерживает необычные, то есть S2, S3, C3, etc. платы. Я как-то не прикупал оных. Есть опыт?
     
  6. serg3295

    serg3295 Гуру

    У меня есть Wemos S2 mini v1.0.0. Купил "на попробовать". Когда-то хотел запустить под Lua, не запустилась. Есть промежуточные решения от разработчиков, но финального варианта нет. Обсуждение проблемы вот тут: https://github.com/nodemcu/nodemcu-firmware/issues/3526
    Может потом попробую вариант https://github.com/nodemcu/nodemcu-firmware/issues/3526#issuecomment-1279974405
     
    ИгорьК нравится это.
  7. serg3295

    serg3295 Гуру

    Ахтунг!
    Свежее обновление прошивки в ветке dev-esp32, в частности PR#3446, поломало работу с расширением nodemcu-tools и выгрузку файлов через Esplorer.
    В этот PR понапихали сразу много чего, и вдобавок перешли на IDF v5.1.3. Изменений много, пока непонятно что сломали. Буду разбираться.
    Если из свежих обновлений нужен rotary module, то он работает нормально и его можно забрать через cherry-pick.
    То есть, пока не рекомендую обновляться до самого последнего коммита. Если, конечно, вам срочно не нужна поддержка USB CDC
     
    ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    То есть вообще все поломано????
     
  9. serg3295

    serg3295 Гуру

    Не совсем.
    Часовню развалили до нас.
    Просто разработчики не пользуются этими инструментами. Когда разберусь в чём собака порылась, напишу им issue.
     
  10. ИгорьК

    ИгорьК Гуру

    А чем они пользуются? Я с Есплорера слез благодаря вашей работе!
     
  11. serg3295

    serg3295 Гуру

    Если я правильно понял из их обсуждений в разных PR'ах, они используют образ SPIFFS и льют его просто вместе с прошивкой по make flash.
    Но тут я могу ошибаться.
    Точно помню, что где-то они писали, когда делали breaking changes с file на библиотеку io, что Esplorer'ом не пользуются. И я подозреваю, что VS Code не пользуются, так как основной их инструмент Visual Studio, потому как Cpp.
    Короче, разберёмся. Люди там живые, если у них косяк, поправят. Или я расширение переделаю. Про Esplorer ничего обещать не могу.
     
    ИгорьК нравится это.
  12. ИгорьК

    ИгорьК Гуру

    "Не нужен он нам" :)
     
    serg3295 нравится это.
  13. ИгорьК

    ИгорьК Гуру

    Требуется помощь.

    Компилирую прошивку под ESP32, включаю модуль u8g2, выбираю контроллер:

    upload_2024-5-2_10-16-58.png

    Пытаюсь инициировать экран, как в мануале:

    Код (Lua):
    id  = i2c.HW0
    sda = 16
    scl = 17
    sla = 0x3c
    i2c.setup(id, sda, scl, i2c.FAST)
    disp = u8g2.ssd1306_i2c_128x32_univision(id, sla)
    Результат:
    upload_2024-5-2_10-20-10.png

    И действительно:
    upload_2024-5-2_10-20-50.png

    Искомого модуля нет.

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

    upload_2024-5-2_10-24-39.png

    Может кто еще не обновился, скомпилирует прошивку с указанным дисплеем?

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

    serg3295 Гуру

    Выбрать дисплей. Затем сделать
    make clean
    make fullclean
    ./install.sh

    собрать прошивку.
    02-05-24_11-55.png

    Красная срока не при чём

    А что значить "не обновился"? Докуда? Можно же собирать прошивку с любого коммита.
     
    ИгорьК нравится это.
  15. ИгорьК

    ИгорьК Гуру

    Мой уровень понимания gita не поднимается выше:
    Код (Bash):
    git pull origin dev-esp32
    :)

    Тогда еще один вопрос вдогонку. Описание u8g2 у NodeMCU по всем командам отправляет к Сишной библиотеке.

    Не подскажете, каким образом применять ее операторы в коде Lua. Много времени сэкономите, если в теме :)
     
  16. serg3295

    serg3295 Гуру

    Ну, про git в сочетании с VSCode я могу написать отдельно, применительно к генерации прошивки nodemcu в разных вариантах. Если это требуется.
    Там вообще можно много чего написать. Не знаю, насколько это будет соответствовать тематике данного форума.

    NodeMCU использует субмодуль u8g2, тот же, что в arduino и espressif. Про применение операторов библиотеки в коде Lua, честно говоря, не очень понял.
    Если речь идёт о вызове библиотечных функций из кода Lua, то это как раз делает модуль /nodeMCU-firmware/components/modules/u8g2.c
    Перечень функций в секции LROT_BEGIN(lu8g2_display, NULL, LROT_MASK_INDEX). Вообще, грубо говоря, вся nodemcu предоставляет обёртку на Lua для сишных функций.
    Или я не понял постановку задачи.
     
    ИгорьК нравится это.
  17. ИгорьК

    ИгорьК Гуру

    Модуль инициализируется, не ругается:
    Код (Lua):
    id  = i2c.HW0
    sda = 21
    scl = 22
    sla = 0x3c
    i2c.setup(id, sda, scl, i2c.FAST)
    disp = u8g2.ssd1306_i2c_128x32_univision(id, sla)
    Далее глубоко научный тык не работает:

    Код (Lua):
    disp.print("Hello World!")
    -- или
    disp:print("Hello World!")
     
    Отправка к библиотеке МНЕ не помогает - там все про Си, но мы то в Lua
     
  18. ИгорьК

    ИгорьК Гуру

    upload_2024-5-2_12-39-36.png

    Это разъясняет как быть дальше? (Выше моего понимания :-( )
     
  19. serg3295

    serg3295 Гуру

    Я попозже найду какой-нибудь дисплей для экспериментов.
    а disp:drawStr(1,1,"a") тоже не работает?

    Edit. А метода print вроде бы и нету в этом классе.
     
    Последнее редактирование: 2 май 2024
    ИгорьК нравится это.
  20. ИгорьК

    ИгорьК Гуру

    Еще как работает!

    upload_2024-5-2_14-12-47.png