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

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

  1. ИгорьК

    ИгорьК Гуру

    @serg3295 , не подскажете, при генерации LFS комментарии из файлов удаляются? Надо ли их удалять перед сборкой LFS?
     
  2. serg3295

    serg3295 Гуру

    Я не удаляю.
    Судя по листингу байт кода luac.cross удаляет комментарии.

    файл a2.lua:
    print"a" -- comment

    Код (Bash):

    > /opt/lua/esp8266/5.3/luac.cross -l -l ./spiffs/a2.lua

    main <./spiffs/a2.lua:0,0> (4 instructions at 0x649216598e40)
    0+ params, 2 slots, 1 upvalue, 0 locals, 2 constants, 0 functions
            1       [1]     GETTABUP        0 0 -1  ; - "print"
            2       [1]     LOADK           1 -2    ; "a"
            3       [1]     CALL            0 2 1
            4       [1]     RETURN          0 1
    constants (2) for 0x649216598e40:
            1       "print"
            2       "a"
    locals (0) for 0x649216598e40:
    upvalues (1) for 0x649216598e40:
            0       -       1       0
     
    ИгорьК нравится это.
  3. ИгорьК

    ИгорьК Гуру

    Славно!

    Сергей, еще побеспокою. Есть такой, ИМХО, незаслуженно подзабытый протокол coap, который реализован для ESP8266, но отсутствует в ESP32. Вы не умеете его имплементировать в 32 чип? Смотрел на гитхабе - coap.c даже lua 5.3 поддерживает.

    Буду делать лампу неГайвера - групповой управление несколькими светильниками на WS2812. У меня уже давно такое работает. С тех пор как только научился код в чип загружать и это считал чудом.

    Теперь надо делать новую подсветку в квартире. Давно не приобретал ESP8266 - ESP32 привычнее.

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

    Проект для всех за мной. :)
     
  4. serg3295

    serg3295 Гуру

    К сожалению, я сoap не использовал.
     
  5. ИгорьК

    ИгорьК Гуру

    Плохо спросил. Вы знаете как этот модуль взять из ESP8266 и имплементировать в прошивку ESP32?
     
  6. serg3295

    serg3295 Гуру

    Я посмотрел реализацию coap в esp8266. Там 21 файл. Внутри цепляются файлы, которые в esp32 сильно поменялись. В самом idf-esp https://github.com/espressif/idf-extra-components/tree/master/coap свежие версии тоже вроде менялись. А это означает, что API могло поменяться.
    Как его подсунуть и попробовать скомпилировать понятно, примеры CMakeLists есть. Можно было бы попробовать. Вот только при выползании ошибок, а они точно будут, сложность портирования может оказаться слишком высокой.
     
    ИгорьК нравится это.
  7. ИгорьК

    ИгорьК Гуру

    Ок, попробую справиться и ESP8266.
     
  8. ИгорьК

    ИгорьК Гуру

    Мимо проходил. Прошивку для ESP32-S3 Zero делал. В комплекте:
    Код (Text):
    adc,bit,console,crypto,file,gpio,http,i2c,mqtt,net,node,ow,pipe,sjson,spi,struct,time,tmr,uart,ws2812,wifi

    Пусть будет, кому потребуется.
     

    Вложения:

    • 20250528_S3.zip
      Размер файла:
      709 КБ
      Просмотров:
      5
  9. ИгорьК

    ИгорьК Гуру

    Опять мимо проходил. Прошивку вот такого для ESP32c6 делал.
    Код (Bash):

    PS C:\esptool> ./esptool -p COM21 flash_id
    esptool.py v4.8.1
    Serial port COM21
    Connecting...
    Detecting chip type... ESP32-C6
    Chip is ESP32-C6FH4 (QFN32) (revision v0.0)
    Features: WiFi 6, BT 5, IEEE802.15.4
    Crystal is 40MHz
    MAC: 54:32:04:ff:fe:0a:20:99
    BASE MAC: 54:32:04:0a:20:99
    MAC_EXT: ff:fe
    Uploading stub...
    Running stub...
    Stub running...
    Manufacturer: 20
    Device: 4016
    Detected flash size: 4MB
    Hard resetting via RTS pin...

    В комплекте:
    Код (Text):
    adc,bit,console,crypto,file,gpio,http,i2c,mqtt,net,node,ow,pipe,rtcmem,sjson,spi,struct,time,tmr,uart,ws2812,wifi

    Особенность С6 - бутлоадер загружается по адресу 0x00, остальное как обычно.

    Что не получилось. Не получилось включить BT, ибо включение ВТ приводит make к ошибке:
    upload_2025-6-4_8-22-48.png

    Видимо не включено что-то специфическое для С6.

    @serg3295 , не в курсе решения проблемы?

    ... а еще вот, вообще прикол:
    Код (Bash):
    > =node.chipid()
    Lua error:     stdin:1: attempt to call a nil value (field 'chipid')
    stack traceback:
        stdin:1: in main chunk
        [C]: in ?
        [C]: in ?
     
    То есть исчезла "привязка" к конкретному чипу... ????

    PS Ее и не было: "Returns the ESP chip ID. Only available on the base ESP32 model."
    Бум знать.
     

    Вложения:

    • 20250603_C6.zip
      Размер файла:
      750,2 КБ
      Просмотров:
      2
    Последнее редактирование: 4 июн 2025
  10. serg3295

    serg3295 Гуру

    API блютуса вроде изменялось в esp-idf. В данном конкретном случае что-то не так с конфигурационными параметрами.
    Чтобы скомпилировалось, просто замените в bthci.c строчку
    // if ((ret = esp_bt_controller_enable(mode)) != ESP_OK) {
    на
    if ((ret = esp_bt_controller_enable(ESP_BT_MODE_BLE)) != ESP_OK) {
    или
    ESP_BT_MODE_BTDM
     
    ИгорьК нравится это.
  11. ИгорьК

    ИгорьК Гуру

    Заработало!
     
  12. ИгорьК

    ИгорьК Гуру

    Опять я :)

    ESP32 S3 Zero. Попытка работать с SPI. Всего две команды после рестарта:

    Код (Bash):
    NodeMCU ESP32 build 2025-06-09 08:48 powered by Lua 5.3.5 [5.3-int32-singlefp] on IDF v5.3.2
    cannot open init.lua: No such file or directory

    > busmaster_config = {sclk = 3, mosi = 1, miso = 5}
    > busmaster = spi.master(0, busmaster_config)
    E (23263) spi: spi_bus_initialize(800): SPI bus already initialized.
    Lua error:     stdin:1: bus init failed
    stack traceback:
        [C]: in function 'spi.master'
        stdin:1: in main chunk
        [C]: in ?
        [C]: in ?
    SPI модуль, естественно, в наличии. Команда "spi.master(0)" проходит на ура много раз подряд, а вот назначить "ноги" на шину не получается:
    Код (Bash):
    Rebooting...

    E (363) mmap: esp_mmu_paddr_to_vaddr(805): paddr isn't mapped
    LFS image loaded

    NodeMCU ESP32 build 2025-06-09 08:48 powered by Lua 5.3.5 [5.3-int32-singlefp] on IDF v5.3.2
    cannot open init.lua: No such file or directory
    > busmaster = spi.master(0)
    > busmaster = spi.master(0)
    > busmaster = spi.master(0)
    Поможете решением?
    ESP32 S3 Zero уж больно "вкусная" своими размерами...

    UPD: Решено. Правильно так:
    Код (C++):
    device_config = {sclk = 3, mosi = 1, miso = 5}
    busmaster = spi.master(spi.SPI2, device_config, 0)
    И так оно работает.
     

    Вложения:

    • 20250609_S3.zip
      Размер файла:
      738 КБ
      Просмотров:
      2
    Последнее редактирование: 10 июн 2025