Расширение для vs code, обеспечивающее работу с nodemcu lua

Тема в разделе "ESP8266, ESP32", создана пользователем serg3295, 2 апр 2023.

Метки:
  1. ИгорьК

    ИгорьК Гуру

    Это то, что должно работать с последним коммитом для ESP32c6?

    Значит, ситуация получается такая (обобщая две ветки).

    Это не так - на другом компе все собралось. Тем более, чуть раньше вы сами указывали на вторую опцию USB Serial/JTAG Conrtoller

    Тем не менее VS Code Nodemcu Tools 4.1.2 модуль не видит, напрямую через com-port PuTTy модуль виден.

    В диспетчере COM7 выглядит так:
    upload_2024-5-26_15-52-38.png

    node.c и менял, и не менял - все одно. Железка у меня такая.


    ... и тут NodeMCU Tool 4.2.0 вылезло, а я и не заметил. Сколько времени погубил...

    -----------------------

    Итого. Через UART оно заработало. Через COM/USB - не получилось.

    upload_2024-5-26_17-8-48.png
     
    Последнее редактирование: 26 май 2024
    serg3295 нравится это.
  2. serg3295

    serg3295 Гуру

    Это хорошо, что заработало.
    node.c трогать больше не надо. Старые ветки гита можно поудалять с флагом --force, чтобы не мешались, и не путали картину.

    Я писал про USB CDC.
    У меня тогда была только esp s2, а у неё есть usb cdc. По этому порту она и пыталась соединиться. А пункта USB Serial/JTAG controller у неё вообще нет.
    Теперь у меня есть esp с6. Вот такая. У неё наоборот. Нет USB CDC, а есть USB Serial/JTAG controller. Но соединяется она через UART.

    [​IMG]
     
    ИгорьК нравится это.
  3. ИгорьК

    ИгорьК Гуру

    То есть через USB соединение не ожидается? Невелика проблема, но если плата в устройстве то придётся делать разъём, без которого лучше бы обойтись.

    А что это за релиз NodeMCU Tool 4.2.0?
     
  4. serg3295

    serg3295 Гуру

    То же самое, что я выкладывал под временной версией 4.1.2. Вроде бы.
    Я просто увеличиваю сразу версию на единичку, чтобы разрабатываемая версия на моём компе не конфликтовала с предыдущим релизом.
    А в окончательном релизе поскольку была добавлена новая функция, то и номер версии релиза изменился на 4.2.0

    Ну, не то чтобы совсем не ожидается :)
    Вывод производится на вторичную консоль, то есть, в моём случае, на второй разъём USB.
    26-05-24_19-43.png

    Я подключил сразу два порта к плате. На первичной консоли USB to UART порт /dev/ttyACM0, и на вторичной ESP32-C6 USB порт /dev/ttyACM1. Во вторичную консоль дублируется вывод. Она похоже не поддерживает REPL. А вот должна ли она это делать, или нет, я не знаю. Надо будет код посмотреть.
    Даже в самом названии параметра явно указано, что вторичная консоль только для вывода.
    Иллюстрация:
    26-05-24_20-07.png

    Зато через этот порт можно приконнектится отладчиком OpenOCD без JTAG адаптера, если указать (x) No secondary console.
     
    Последнее редактирование: 27 май 2024
    ИгорьК нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Обновление?
     
  6. serg3295

    serg3295 Гуру

    Платы на современных чипах Espressif поддерживают различные интерфейсы для взаимодействия через консоль
    - UART0
    - USB CDC
    - USB Serial/JTAG Controller

    Канал только для вывода на вторичную консоль присутствует, но должен быть отключен при работе с расширением через основную консоль.

    Channel for console secondary output
    (X) No secondary console

    Для работы с некоторыми платами может потребоваться применение параметра connection-delay

    При подключении к ножкам UART0 на devboard через FTDI адаптер расширение работает со всеми типами плат как обычно.
    При подключении по USB: EDIT. см. примечание внизу сообщения
    - C3 super mini - jtag - работает
    - C6 - jtag - работает
    - S3 zero - jtag - частично работает; подробности тут (github)
    - S2 mini - cdc - не работает

    Других плат у меня нет, так что не проверял.

    Программное обеспечение nodemcu в настоящее время поддерживает не все интерфейсы чипов Espressif.
    Частично из-за недописанных драйверов, частично из-за ошибок в upstream esp-idf, касающихся непрерывного вывода двоичных данных из чипа в консоль.

    EDIT. Небольшое, но очень важное дополнение.
    Чтобы заработали чипы C3, C6 необходимо собрать прошивку на idf 5.2.2 и заменить оригинальный файл components/platform/platform.c на мою скорректированную версию (в приложении).
     

    Вложения:

    • platform.zip
      Размер файла:
      5,1 КБ
      Просмотров:
      6
    Последнее редактирование: 13 окт 2024 в 10:50
    ИгорьК нравится это.
  7. ИгорьК

    ИгорьК Гуру

    upload_2024-10-13_18-3-58.png

    5.2.2 находится где-то за пределами этого выбора?

    upload_2024-10-13_18-12-26.png
     
    Последнее редактирование: 13 окт 2024 в 19:12
  8. serg3295

    serg3295 Гуру

    За пределами.
    Первая картинка - это ветки самой nodemcu. Вторая- это то, чем мы сейчас займёмся :)

    esp-idf это rtos, которая подсовывается и в ардуино и в nodemcu и сама по себе может использоваться.
    Это просто субмодуль с точки зрения git и просто каталог с нашей точки зрения.
    Сейчас мы на версии esp-idf 5.1.2 Начинаем переходить на v5.2.2

    от последнего коммита dev-esp32 создаём новую ветку и переходим на неё
    git checkout -b v522
    cd sdk
    rm -rf esp32-esp-idf #сносим старый idf для надёжности
    git clone -b v5.2.2 --recursive https://github.com/espressif/esp-idf.git esp32-esp-idf
    тут качнули 1.5 Гб
    cd .. # поднялись в корневой каталог
    nodemcu-firmware> git add sdk/esp32-esp-idf
    git commit -m'use 5.2.2'
    подсунуть новый platform.c и потом его закоммитить
    git add и git commit

    должно получится что-то вроде этого:
    (я про последние два коммита)
    branches.png
    ## Начали собирать прошивку
    make fullclean
    make IDFPY_ARGS="set-target esp32s3" #ну, или другой чип

    Проверяем в портянке вывода наличие строчки про версию IDF, что мы удачно всё ей подсунули.

    -- Building ESP-IDF components for target esp32s3
    Processing 2 dependencies:
    [2/2] idf (5.2.2)

    далее как обычно

    make menuconfig
    проверить цель, установить канал вывода консоли в jtag
    make

    проверяем, что хоть что-то работает
    make monitor /dev/ttyACM0

    NodeMCU ESP32 build 2024-10-13 20:35 powered by Lua 5.3.5 [5.3-int32-singlefp] on IDF v5.2.2
    cannot open init.lua: No such file or directory
    >

    (выход оттуда ctrl+])


    Чтобы вернуть всё обратно, просто git checkout на последний коммит dev-esp32
    и
    git submodule update --recursive

    теперь можно шляться между ветками и собирать на разных idf, не забывая делать
    git submodule update --recursive
    make fullclean и другие заклинания.

    Обращаю внимание, что это исправление platform.c просто заплатка и не может быть оформлена в виде PR.
    Как то работает, и ладно.
     
    Последнее редактирование: 13 окт 2024 в 22:12
    ИгорьК нравится это.
  9. ИгорьК

    ИгорьК Гуру

    Эээээммммм.... "Подождем твою мать"

    Есть проект пока на ESP32 обычной. Хотя лежит по одному экземпляру уж и не помню каких, но технической потребности в них не возникло.
     
    serg3295 нравится это.
  10. serg3295

    serg3295 Гуру

    Технически здесь удобство заключается в том, что ноги UART0 могут быть подключены к внешнему устройству, а консоль к USB.
    Отлаживаться удобно, если надо одновременно иметь подключенное внешнее устройство.
    Габариты и цена идут бонусом.
    Если такой задачи не стоит, то, действительно, не особо и нужно.
     
    ИгорьК нравится это.