• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Среда espressif/esp-idf и работа в ней

LDL

New member
Есть ли тут, кто работает в среде разработки esp-idf для ESP32 под windows?
Возник вопрос, связанный с программированием флэш с помощью команды make flash.
На компе имеется шнурок USB2RS232TTL. В make menuconfig / serial flasher config, он подключен как /dev/ttyS3. (в Windows он установлен как СОМ4 соответственно).
И вот при выполнении команды make flash получаю вот такое:
Код:
Flashing binaries to serial port /dev/ttyS3 (app at offset 0x10000)...
esptool.py v2.0-beta1
Traceback (most recent call last):
  File "C:/msys32/home/LDL/esp-idf/components/esptool_py/esptool/esptool.py", line 2261, in <module>   main()
  File "C:/msys32/home/LDL/esp-idf/components/esptool_py/esptool/esptool.py", line 2037, in main   esp = chip_class(args.port, initial_baud)
  File "C:/msys32/home/LDL/esp-idf/components/esptool_py/esptool/esptool.py", line 166, in __init__   self._port = serial.serial_for_url(port)
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/__init__.py", line  88, in serial_for_url   instance.open()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/serialwin32.py", li  ne 62, in open  raise SerialException("could not open port {!r}: {!r}".format(self.portstr,  ctypes.WinError()))
serial.serialutil.SerialException: could not open port '/??/COM4': WindowsError(  3, '\xd1\xe8\xf1\xf2\xe5\xec\xe5 \xed\xe5 \xf3\xe4\xe0\xe5\xf2\xf1\xff \xed\xe0\  xe9\xf2\xe8 \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xef\xf3\xf2\xfc.')
make: *** [/home/LDL/esp-idf/components/esptool_py/Makefile.projbuild:53:  flash] Ошибка 1
Вопрос знатокам клуба: как это побороть. Почему не может открыть порт '/??/COM4'
Что за /??/.
 

pvvx

Активный участник сообщества
1) Либа сериал для питона стоит?
2) Модуль какой?

Иначе надо гадать, на каком этапе возникает ошибка с COM портом.
С COM портом у ESP-32S плат существуют такие проблемы:
1. Модуль ESP-32S очень много жрет при старте, за 0.5A. По этому отключается от USB и драйвер отваливается. Требуется внешний БП с токами от 1A или перезапись значений в микросхеме USB-UART параметров потребления для USB.
2. Платы типа NodeMCU с модулями имеют ошибки. Не работает автоматическая загрузка. Ручками нажимаете и удерживаете кнопочку программирования...
Подробнее там ESP32DEVKIT V1
 
Последнее редактирование:

windalser

New member
Есть ли тут, кто работает в среде разработки esp-idf для ESP32 под windows?
Возник вопрос, связанный с программированием флэш с помощью команды make flash.
На компе имеется шнурок USB2RS232TTL. В make menuconfig / serial flasher config, он подключен как /dev/ttyS3. (в Windows он установлен как СОМ4 соответственно).
И вот при выполнении команды make flash получаю вот такое:
Код:
Flashing binaries to serial port /dev/ttyS3 (app at offset 0x10000)...
esptool.py v2.0-beta1
Traceback (most recent call last):
  File "C:/msys32/home/LDL/esp-idf/components/esptool_py/esptool/esptool.py", line 2261, in <module>   main()
  File "C:/msys32/home/LDL/esp-idf/components/esptool_py/esptool/esptool.py", line 2037, in main   esp = chip_class(args.port, initial_baud)
  File "C:/msys32/home/LDL/esp-idf/components/esptool_py/esptool/esptool.py", line 166, in __init__   self._port = serial.serial_for_url(port)
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/__init__.py", line  88, in serial_for_url   instance.open()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/serialwin32.py", li  ne 62, in open  raise SerialException("could not open port {!r}: {!r}".format(self.portstr,  ctypes.WinError()))
serial.serialutil.SerialException: could not open port '/??/COM4': WindowsError(  3, '\xd1\xe8\xf1\xf2\xe5\xec\xe5 \xed\xe5 \xf3\xe4\xe0\xe5\xf2\xf1\xff \xed\xe0\  xe9\xf2\xe8 \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xef\xf3\xf2\xfc.')
make: *** [/home/LDL/esp-idf/components/esptool_py/Makefile.projbuild:53:  flash] Ошибка 1
Вопрос знатокам клуба: как это побороть. Почему не может открыть порт '/??/COM4'
Что за /??/.
в make menuconfig надо записать /dev/COM4
 

LDL

New member
1) Либа сериал для питона стоит?
2) Модуль какой?

Иначе надо гадать, на каком этапе возникает ошибка с COM портом.
С COM портом у ESP-32S плат существуют такие проблемы:
1. Модуль ESP-32S очень много жрет при старте, за 0.5A. По этому отключается от USB и драйвер отваливается. Требуется внешний БП с токами от 1A или перезапись значений в микросхеме USB-UART параметров потребления для USB.
2. Платы типа NodeMCU с модулями имеют ошибки. Не работает автоматическая загрузка. Ручками нажимаете и удерживаете кнопочку программирования...
Подробнее там ESP32DEVKIT V1
Ставил тоолчейн с Set up of Toolchain for Windows — ESP-IDF Programming Guide v2.0-rc1-73-g61c7bd3 documentation Windows all-in-one toolchain & MSYS zip file from dl.espressif.com:
И думаю там всё есть, раз там ALL IN ONE.
Модуль ESP-WROOM-32 на макетной плате, порт ЕН подтянут к +. Блок питания для модуля внешний, для USB2RS естественно от порта USB
 
  • Like
Реакции: pvvx

LDL

New member
в make menuconfig надо записать /dev/COM4
А разве в Linux так можно? Я работаю в msys2_shell (под Windows). Внутри этого шелла всё как в линуксе.
Хотя впрочем я попробовал этот совет и получил тот же ответ от системы could not open port '/??/COM4'. Проблемы наверно в этих сомволах ??.
Где то не прописано что сюда подставить. Но вот где?
Порт при подключении шнурка появляется:
Вот до подключения
LDL@OGK MSYS ~/project/test
$ ls /dev/ttyS*
/dev/ttyS0

Вот после подключения
LDL@OGK MSYS ~/project/test
$ ls /dev/ttyS*
/dev/ttyS0 /dev/ttyS3
 
Последнее редактирование:

pvvx

Активный участник сообщества
Там полный бардак, во всех makefile. Доходит до смешного:
Пример:
Код:
E:\esp32\esp-idf-template>mingw32-make.exe -v
GNU Make 3.82.90
Эта программа собрана для i686-pc-mingw32
Copyright (C) 1988-2012 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное программное обеспечение: вы можете свободно изменять его и
распространять. НЕТ НИКАКИХ ГАРАНТИЙ вне пределов, допустимых законом.

E:\esp32\esp-idf-template>mingw32-make.exe
/esp32/esp-idf/make/project.mk:45: "esp-idf build system only supports GNU Make versions 3.81 or newer. You may see unexpected results with other Makes."
 
  • Like
Реакции: LDL

sharikov

Active member
А у меня не появляется. Наверно msys64 ничего не знает о ESP32 DEVKIT V1 (CP2102).
Вот поэтому я проекты где используется git, gcc, make и opencod делаю только в линукс. В mingw то одно не работает то другое. Все таки win чужеродная среда для GNU софта.
Под виндой следует использовать IAR, Keil, Visual studio, Delphi
 

PavelAM

New member
Возможно, поможет. Мне помоголо
flashing from windows machine - ESP32 Forum

Дополняете команду записи номером COM-порта.
В моем случае:
Код:
$ make flash ESPPORT=COM51
Только у меня была другая ошибка:
Код:
$ make flash
Flashing binaries to serial port /dev/ttyS50 (app at offset 0x10000)...
esptool.py v2.0-beta1
Traceback (most recent call last):
  File "C:/esp-idf-v2.0-rc1/components/esptool_py/esptool/esptool.py", line 2261, in <module>
    main()
  File "C:/esp-idf-v2.0-rc1/components/esptool_py/esptool/esptool.py", line 2037, in main
    esp = chip_class(args.port, initial_baud)
  File "C:/esp-idf-v2.0-rc1/components/esptool_py/esptool/esptool.py", line 166, in __init__
    self._port = serial.serial_for_url(port)
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/__init__.py", line 88, in serial_for_url
    instance.open()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/serialwin32.py", line 62, in open
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port '/??/COM51': WindowsError(123, 'The filename, directory name, or volume label syntax is incorrect.')
make: *** [/c/esp-idf-v2.0-rc1/components/esptool_py/Makefile.projbuild:53: flash] Error 1
 
  • Like
Реакции: LDL

pvvx

Активный участник сообщества
Вот поэтому я проекты где используется git, gcc, make и opencod делаю только в линукс. В mingw то одно не работает то другое. Все таки win чужеродная среда для GNU софта.
Под виндой следует использовать IAR, Keil, Visual studio, Delphi
Это связано не с линух, а с понятием "фрики". На ESP всё не стандартно и его сообщество состоит исключительно из "фриков-мазохистов".

Запись прошивки работает без проблем в FLASH_DOWNLOAD_TOOLS.

Сборка проекта производится в Eclipse, путем написания собственных сборщиков, т.к. "сообщество ESP" не интересуется какая система установлена у большинства обычных пользователей. По этому Arduino и завоевало признание обычных пользователей.
ESP-IDF - среда не для пользователей, а исключительно фрик-проект.
Какую идеологию имеют фрики?
Особой идеологии фрики не имеют. Общая характеристика фриков постоянно привлекать к себе внимание. Ради этого они идут на существенные жертвы, пытаясь выделиться из уже существующих образов фриков.

@sharikov - установка какой линух, вам в данном случае не поможет. Там похоже специально используются непопулярные варианты и придется потрудиться чтобы запустить сборку и под любым линух. Обкатывать это дело будут ещё годы - слишком мало "сообщество ESP-32S" и его принудительно сужают, заставляя использовать отдельный настроенный исключительно под ESP-32S комп. Так-же ESP-32S требует специальных БП и почих сторонних "причендалов". Итоговая стоимость и время разработки на нем на сегодня зашкаливает обычные нормы. Вы не сможете перевести и совместить его проект со своим в единую среду.
 
Последнее редактирование:

sharikov

Active member
ESP-IDF - среда не для пользователей, а исключительно фрик-проект.
Я не ставил ESP-IDF.
Заглянул одним глазом на github - на первый взгляд стандартный Kconfig: make menuconfig / make all
Что тут необычного и ужасного не пойму.
Да, компилятор экзотический.
 

pvvx

Активный участник сообщества
Я не ставил ESP-IDF.
Заглянул одним глазом на github - на первый взгляд стандартный Kconfig: make menuconfig / make all
Что тут необычного и ужасного не пойму.
Да, компилятор экзотический.
Kconfig не описывает все используемое и установленное для работы данного SDK ПО.
Попробуйте и увидите много специфичного. Т.е. не удастся совместить с другим или быстро переделать под свои предпочтения или свою настроенную среду...
К примеру для переноса под другие операционки вам придется сменить и либы компилятора :)
А вот компилятор как раз стандартный - GCC, но не имеющий глубоких уровней оптимизации для данного проца, в отличии от коммерческих версий (ну и не проверенный на все варианты - его катает то всего пару человек).
По этому как итог - покупайте отдельный комп исключительно под проект ESP-IDF :p Так быстрее получится собрать пример из него.
В этом и вся “утка” c ESP-32S. Купив модуль, простому пользователю необходимо докупить – специализированный БП и выделенный комп для создания проектов на него. Или мучаться “с красными глазками”, адаптируя всё это под имеющиеся вещи.
А производители demo-board вообще в наглую продают модули с ESP-32S без ПО, ссылаясь на недоделанные варианты. Но это уже другая тема :)

С отладкой (JTAG) на ESP-32S ситуация вообще не понятна. Какой надо покупать JTAG адаптер, чтобы он автоматически работал в среде ESP-IDF?
 
Последнее редактирование:

LDL

New member
Возможно, поможет. Мне помоголо
flashing from windows machine - ESP32 Forum

Дополняете команду записи номером COM-порта.
В моем случае:
Код:
$ make flash ESPPORT=COM51
Спасибо это сработало!
А так же работает вариант если в Менюконфиг взамен классического линукс варианта /dev/ttyS3 написать просто как в винде СОМ4 и всё.
 

LDL

New member
И ещё вопросиr по использованию ESP-IDF-
При компиляции возникает вот такое предупреждение:
WARNING: Compiler version is not supported: 4.8.5
Expected to see version(s): 5.2.0
Как обновиться до 5.2.0. именно в псевдо линуксе (MSYS) под windows?
 

pvvx

Активный участник сообщества
А так же работает вариант если в Менюконфиг взамен классического линукс варианта /dev/ttyS3 написать просто как в винде СОМ4 и всё.
Меняет в sdkconfig файле строку [inline]CONFIG_ESPTOOLPY_PORT="/dev/ttyS6"[/inline] и требует полной пересборки проекта... Очень неудобно - у меня несколько модулей и соответственно несколько COM портов.
 
Последнее редактирование:

LDL

New member
И ещё вопросиr по использованию ESP-IDF-
При компиляции возникает вот такое предупреждение:
WARNING: Compiler version is not supported: 4.8.5
Expected to see version(s): 5.2.0
Как обновиться до 5.2.0. именно в псевдо линуксе (MSYS) под windows?
Разобрался...
Нужно просто распаковать вот это https://dl.espressif.com/dl/xtensa-esp32-elf-win32-1.22.0-61-gab8375a-5.2.0.zip
 
Сверху Снизу