У ESP32 есть несколько распространенных проблем, особенно когда вы пытаетесь загрузить новые скетчи или установить плату ESP32 в Arduino IDE. Это руководство посвящено неполадкам ESP32 при программировании ее в среде Arduino. Здесь мы приведём список наиболее распространенных проблем с ESP32, а также расскажем, как исправить их.
Важно: убедитесь, что у вас установлена последняя версия Arduino IDE. Использование другой версии Arduino IDE может вызвать непредвиденные проблемы и ошибки.
Как мне установить пакет ESP32 для Arduino IDE?
Существует пакет ESP32 для среды Arduino, который позволяет вам программировать плату в Arduino IDE. Итак, по порядку:
- В среде Arduino переходим Файл > Настройки;
- В графе дополнительные ссылки для менеджера плат указываем эту ссылку: https://dl.espressif.com/dl/package_esp32_index.json
- Затем переходим в Инструменты > Плата “Arduino UNO” > Менеджер плат, вбиваем в поиске esp32 и устанавливаем пакет для платы.
Не отображается плата ESP32 в меню инструментов Arduino
Если плата не отображается в Arduino IDE, убедитесь, что вы щелкнули по маленькой стрелке (выделенной на рисунке ниже), чтобы найти свою плату:
Если и в этот раз вы не можете найти название своей платы ESP32, рекомендуем повторить процесс установки с нуля.
C:/Users/User/Documents/Arduino/hardware/espressif/esp32/ tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-g ++ »: файл не существует
Если Arduino IDE не может скомпилировать код для платы ESP32 и выдает данную ошибку, рекомендуем переустановить ESP32.
Примечание. На ПК с Windows часто установлено несколько версий Arduino IDE (portable и устанавливаемая). Убедитесь, что вы используете то приложение Arduino, в которое вы установили ESP32.
Не удалось подключиться к ESP32: время ожидания истекло… Подключение…»
В данном случае при попытке загрузить скетч на плату приложение не может подключиться к ней. Это значит, что ESP32 не находится в режиме прошивки / загрузки.
Выполните следующие действия:
- Удерживайте кнопку «BOOT » на плате ESP32.
- Нажмите кнопку «Загрузка» в Arduino IDE, чтобы загрузить новый скетч:
- После того, как вы увидите «Connecting…. » в Arduino IDE, уберите палец с кнопки «BOOT» :
- После этого, вы должны увидеть сообщение о завершении загрузки
Вот и все. На ESP32 должен быть загружен новый скетч. После загрузки нового скетча нажмите кнопку «ENABLE», чтобы перезапустить ESP32 и запустить загруженный скетч.
Ошибка при компиляции скетча WiFiScan
Если вы попытаетесь загрузить скетч ESP32 WiFiScan.ino, который есть в примерах
И он не может скомпилироваться с подобным сообщением об ошибке:
In function ‘void setup()’: ScanNetworks:52: error: ‘class WiFiClass’ has no member named ‘firmwareVersion’ String fv = WiFi.firmwareVersion(); |
То вероятнее всего, среда Arduino компилирует библиотеку WiFi для платы Arduino (вместо использования библиотеки ESP32 WiFi).
Примечание: Вы, вероятно, никогда не будете использовать WiFi-экран с платой Arduino, так ведь? Если вы его не используете, вы можете удалить эту папку (ну или переместить ее на рабочий стол, например).
Библиотека WiFi находится по аналогичному пути:
C:UsersruisantosDownloadsarduino-1.8.7-windowsarduino-1.8.7librariesWiFi
И /или в:
C:UsersruisantosDocumentsArduinolibrarieslibrariesWiFi
После удаления всей папки библиотеки WiFi из одного или обоих мест перезапустите Arduino IDE и попробуйте снова скомпилировать код.
COM-порт не найден / недоступен
Если вы подключаете плату ESP32 к компьютеру, но не можете выбрать порт ESP32, доступный в вашей Arduino IDE (он неактивен):
Это может быть одна из следующих двух проблем:
- Отсутствуют драйверы USB;
- Кабель USB не имеет проводов для передачи данных.
Если вы не видите доступный COM-порт вашего ESP, это может означать, что у вас не установлены драйверы USB. Присмотритесь к микросхеме рядом с регулятором напряжения на плате и проверьте ее название.
Плата ESP32 DEVKIT V1 DOIT, например, использует чип CP2102.
Зайдите в поисковик и найдите свой чип, установите драйверы для него.
Вы можете скачать драйверы CP2102 на сайте Silicon Labs.
После их установки перезапустите Arduino IDE, и вы должны увидеть COM-порт в меню «Инструменты».
Если у вас установлены драйверы, но вы не видите свое устройство, еще раз проверьте, что вы используете USB-кабель с проводами для передачи данных.
USB-кабели от внешних аккумуляторов часто не имеют проводов для передачи данных (они только заряжают). То есть, ваш компьютер не сможет установить последовательную связь с ESP32. Используйте другой USB-кабель.
Монитор порта в Arduino IDE «не работает»
Если ESP32 выводит только странный текст или бессвязные сообщения в мониторе порта среды Arduino, убедитесь, что у вас выбран правильный COM-порт, и установите правильную скорость передачи. В большинстве примеров используется скорость 115200 бод.
Ошибка: «Brownout detector was triggered»
Когда вы открываете монитор порта и появляется повторяющееся сообщение об ошибке «Brownout detector was triggered», скорее всего это значит, что есть какая-то проблема с оборудованием.
Это часто связано с одной из следующих проблем:
USB-кабель плохого качества;
Слишком длинный USB-кабель;
Дефект в плате (плохо припаянные соединения);
Неисправный USB-порт на ПК;
Через USB-порт на ПК идет недостаточно питания.
Решение: попробуйте другой более короткий USB-кабель, попробуйте другой USB-порт компьютера или используйте USB-концентратор с внешним источником питания.
Плата ESP32 не работает с Arduino IDE
Если вы следовали всем советам по устранению неполадок, а ESP32 не работает с Arduino IDE, мы рекомендуем попробовать редакторы Atom и PlatformIO.
Заключение
Мы надеемся, что руководство оказалось полезным. Если у вас возникнут другие проблемы, опубликуйте их в комментариях ниже, и мы постараемся помочь вам решить вашу проблему.
Данный материал был переведен с сайта RandomNerdTutorials.com. Авторские права принадлежат ее автору — Rui Santos. Автор продает очень полезные и толковые курсы по ESP8266 / ESP32 (на английском языке), ознакомиться с которыми можно по ссылке.
Вопросы по прошивке и работе с кодом лучше писать напрямую автору в комментариях к статье (на англ. языке)
Справочник языка Arduino | |
---|---|
Конструкции языка | |
— |
|
Управляющие операторы |
|
Синтаксис |
|
Арифметические операторы |
|
Операторы сравнения |
|
Логические операторы |
|
Указатели |
|
Побитовые операторы |
|
Унарные операторы |
|
Данные | |
Константы |
|
Типы данных |
|
Преобразование типов данных |
|
Область видимости переменных и квалификаторы |
|
Utilities |
|
Функции | |
Цифровой ввод/вывод |
|
Аналоговый ввод/вывод |
|
Due & Zero |
|
Дополнительные функции ввода/вывода |
|
Работа со временем |
|
Математические функции |
|
Тригонометрические функции |
|
Функции для символьного анализа |
|
Генераторы случайных значений |
|
Работа с битами и байтами |
|
Внешние прерывания |
|
Прерывания |
|
Функции передачи данных |
|
USB (Leonardo based boards and Due only) |
|
Библиотеки Arduino | |
---|---|
Стандартные библиотеки | |
EEPROM |
|
Ethernet |
|
Firmata | — |
GSM |
|
LiquidCrystal |
|
SD |
|
Servo |
|
SPI |
|
SoftwareSerial |
|
Stepper |
|
TFT |
|
WiFi |
|
Wire |
|
Только для Arduino 101 | |
CurieBLE |
|
CurieIMU |
|
CurieTimerOne |
|
Только для Arduino Due | |
Audio |
|
Scheduler |
|
Только для Arduino Due, Zero и MKR1000 | |
USBHost |
|
Только для Arduino Zero и MKR1000 | |
Audio Frequency Meter Library |
|
AudioZero |
|
RTC |
|
Только для WiFi 101 и MKR1000 | |
WiFi101 |
|
Только для Arduino Robot | |
Robot |
|
Только для Arduino Yun | |
Bridge |
|
USB-библиотеки (Leonardo, Micro, Due, Zero и Esplora) | |
Keyboard |
|
Mouse |
|
Коммуникация (сети и протоколы) | |
CmdMessenger | — |
NewSoftSerial | — |
OneWire | — |
PS2Keyboard | — |
SimpleMessageSystem | — |
SSerial2Mobile | — |
Webduino | — |
X10 | — |
XBee | — |
SerialControl | — |
Датчики | |
CapacitiveSensing | — |
Bounce | — |
Дисплеи и светодиоды | |
Adafruit GFX | — |
GLCD | — |
LedControl | — |
LedDisplay | — |
Matrix | — |
PCD8544 | — |
Sprite | — |
ST7735 | — |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | — |
NB: I introduced same issue report at espressif/esptool, because I don’t know actually where the problem could be: espressif/esptool#198
Hello ESP32 lovers,
I am facing a problem with a WEMS ESP32 dev board which I bough on Aliexpress very recently:
https://fr.aliexpress.com/item/ESP32-Development-Board-WiFi-Bluetooth-Ultra-Low-Power-Consumption-Dual-Cores-ESP-32-ESP-32S-Board/32801337284.html
I am able to flash it using Eclipse/esp-idf/xtensa-esp32-elf triplet. The /dev/tty.SLAB_USBtoUART device configured by «make menuconfig» makes the flashing process a success. Further on, my user application (one of the examples of esp-idf) starts and does what expected.
But, with Arduino IDE, this is not the same story. I have installed the toolchain as written at ESP32-Arduino github page, then selected «ESP32 dev module» as the board in Arduino IDE, and also selected /dev/tty.SLAB_USBtoUART as the flashing device.
Like I did for the Eclipse case, I reset dev board with RST and BOOT buttons. I verified to get the «DOWNLOAD» invite on the terminal, then closed the terminal pushed on flash button of Arduino IDE. All I get in Arduino logs is the following:
Sketch uses 118,890 bytes (11%) of program storage space. Maximum is 1,044,464 bytes. Global variables use 9,492 bytes (3%) of dynamic memory, leaving 285,420 bytes for local variables. Maximum is 294,912 bytes. /Users/lmc/Dropbox/arduino/hardware/espressif/esp32/tools/esptool --chip esp32 --port /dev/cu.SLAB_USBtoUART --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_freq 80m --flash_mode dio --flash_size 4MB 0x1000 /Users/lmc/Dropbox/arduino/hardware/espressif/esp32/tools/sdk/bin/bootloader.bin 0x8000 /var/folders/zx/4rs36y2j0315wny99n1j7fj80000gn/T/arduino_build_538507/Blink.ino.partitions.bin 0xe000 /Users/lmc/Dropbox/arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin 0x10000 /var/folders/zx/4rs36y2j0315wny99n1j7fj80000gn/T/arduino_build_538507/Blink.ino.bin esptool.py v2.0-beta Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____ A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
The programming does not detect the dev board in download mode, and the flashing does not start.
As a workaround, I hooked up an external FTDI adapter cable directly to the ESP32, and then Arduino IDE is able to start the flashing. But after, the Arduino sketch does not seems to run. My simple Blink sketch is not running (it toggles a GPIO and prints some text on Serial console).
Issue 1: I saw a post about the problem of the FreeRTOS scheduler not started on Core1, or not enabled Core1, which could resolve the Arduino sketch not running (but I don’t know how to configure it within ESP32-Arduino libraries/board from inside Arduino IDE. Could it be a efuse which should be reset to enable Core1 to start?
Issue 2: Concerning my flashing issue, I don’t understand why my dev module can be successfully programmed by using the Makefile from within Eclipse/esp-idf, while it ends-up with a timeout from within ArduinoIDE/ESP32-Arduino toolchain.
Anyone could help me about my two issues?
Thank you so much.
Проблемы с прошивкой flash-памяти обычно непросто устранить. Ниже приедены несколько советов по решению распространенных проблем.
[Загрузчик не отвечает]
Если в serial-консоли появляются ошибки наподобие «Failed to connect», то возможно чип не может правильно запустить загрузчик:
• Проверьте, что в командной строке утилиты монитора (обычно это скрипт idf.py) правильно указано имя последовательного порта.
• Проверьте, что у Вас есть разрешения на доступ к последовательному порту, и что какое-то другое программное обеспечение (такое как modem-manager на Linux) не пытается взаимодействовать с нужным последовательным портом. Часто бывает, что в другом окне уже открыто забытое соединение с используемым портом, и второе подключение создать не удается.
• Проверьте, что на чипе присутствует питание 3.3V от стабилизированного источника (см. далее «Плохое питание»).
• Проверьте, что все выводы чипа подключены так, как описано в документации по выбору режима загрузки [2]. Проверьте напряжения на каждом выводе мультиметром или осциллографом, ножки с лог. 1 должны иметь напряжение, близкое к 3.3V, и ножки с лог. 0 близкое к 0V.
• Если к выводам GPIO чипа подключены другие устройства, попробуйте их отключить, и проверьте, заработает ли соединение с загрузчиком.
• Попробуйте уменьшить скорость соединения. Скорость 9600 самая маленькая допустимая скорость для соединения с загрузчиком, обычно используемая для отладки проблем скорости serial-соединения (настройте baud rate опцией -b 9600 скрипта idf.py).
[Случайные ошибки в процессе записи flash]
Если при записи происходят сбои, попробуйте уменьшить скорость подключения к последовательному порту. Также причиной случайных сбоев могут быть проблемы с питанием (см. «Плохое питание»).
[Запись произошла успешно, но приложение не запускается]
Если esptool может прошить Ваш модуль командой write_flash, но программа не запускается, то проверьте следующее:
Неправильно выбранный режим SPI flash. Некоторые устройства поддерживают только режим прошивки dio. Запись во flash в режиме qio происходит успешно, но чип не может обратно прочитать flash, чтобы запустить программу — так что загрузка приложения не происходит. Попробуйте передать опцию -fm dio в команду write_flash.
См. документацию [3] для получения полного описания режимов flash, и как определить, какие из них поддерживает Ваше устройство.
Плохое питание. Чип ESP может потреблять от 3.3V достаточно большой ток (до 70 мА непрерывно, 200 .. 300 мА в пике, или даже больше). На шине питания должен присутствовать конденсатор достаточной емкости, чтобы сгладить спады по питанию в пиках потребления тока.
Если Вы используете предварительно собранную отладочную плату или модуль, то установленный на плате регулятор напряжения может предоставлять недостаточную мощность, чтобы обеспечить стабильную работу системы. На модулях от Espressif и других известных поставщиков обычно такой проблемы нет. Однако в некоторых случаях модули, наподобие ESP-WROOM02 и ESP-WROOM32, могут потребовать подключения снаружи дополнительного блокирующего конденсатора.
Выход 3.3V адаптеров USB-UART (например FTDI FT232R), или плат Arduino часто не предоставляет достаточной мощности по питанию.
[Отсутствует загрузчик]
ESP-IDF использует загрузчик второй стадии, работающий после заводского аппаратного, который находится в постоянной памяти чипа (boot ROM). На ESP32 образ загрузчика должен быть прошит со смещением 0x1000 относительно начала памяти flash. Среда разработки ESP-IDF делает это автоматически после выполнения соответствующих команд компиляции и прошивки (idf.py build flash). См. документацию ESP-IDF для получения информации, какие двоичные файлы нужно прошить, и по какому смещению (также см. [4]).
[Проблемы с сигналами SPI]
В сравнении с ROM bootloader, утилита esptool и работающий код загрузчика второй стадии использует намного больше внешних выводов, чтобы обмениваться данными с SPI flash.
Если используется режим «Quad I/O» (-fm qio, что esptool использует по умолчанию), то для доступа к SPI flash используются выводы GPIO7, GPIO8, GPIO9 и GPIO10, и они не должны использоваться для других целей. Если установлен режим «Dual I/O» (-fm dio), то используются GPIO7 и GPIO8, и они не должны использоваться для других целей.
Попробуйте отключить все постороннее от этих выводов. Попробуйте поменять режим «Dual I/O», если использовался «Quad I/O», или наоборот. Проверьте целостность сигналов подключений к памяти SPI flash, отсутствие замыканий между ними и на другие цепи. Имейте в виду, что если GPIO9 и GPIO10 также подключены к входным выводам чипа SPI flash, их все еще нельзя использовать как порты ввода/вывода общего назначения.
В дополнение к этим выводам, ножки GPIO6 и GPIO11 также используются для доступа к SPI flash (во всех режимах). Если эти выводы подключены неправильно, то прошивка обычно не работает.
[Сбой на ранней стадии загрузки]
Используйте программу последовательного терминала, чтобы просмотреть сообщения лога загрузчика (ESP32 использует скорость 115200 bps). Это позволит увидеть сообщения об ошибке и понять причину сбоя загрузки или запуска программы.
Существует множество программ терминала, которые можно использовать для отладки и взаимодействия с приложением через последовательный порт UART. Модуль pyserial (который требуется для утилиты esptool) включает в себя одну из таких программ терминала, запускаемых в командной строке — miniterm.py. Для дополнительной информации см. документацию pyserial [5], или запустите подсказку командой miniterm -h.
ROM serial bootloader в чипах Espressif использует соединение UART с уровнями 3.3V. На большинстве отладочных плат разработчика такое соединение организовано через схему преобразователя USB-UART.
Однако если Вы используете чип ESP32 на своей плате, и сами подключили отдельный адаптер USB/Serial для соединения с хостом отладки, то необходимо выполнить следующие соединения:
Ножка чипа ESP | Сигнал адаптера USB-UART |
TX (передача) | RX (прием) |
RX (прием) | TX (передача) |
GND | GND |
Обратите внимание, что TX (передача) чипа ESP соединяется с RX (прием) адаптера последовательного порта, и наоборот. Внимание: не подключайте чип последовательным адаптерами с уровнями 5V TTL, особенно к «стандартным» адаптером RS-232! Используйте только уровни сигналов 3.3V!
[Настройки последовательного порта]
При соединении с ESP32 ROM serial bootloader, рекомендуются следующие настройки последовательного порта:
Baud rate | 115200 |
Data bits | 8 |
Stop bits | GND |
Parity | None |
Flow control | None |
[Трассировка взаимодействий esptool]
Запуск esptool.py —trace будет выводить дамп всех последовательных интерактивных взаимодействий в стандартный вывод (данных будет выводиться довольно много). Это полезно для отладки проблем с последовательным соединением, или когда предоставляете информацию для техподдержки в виде bug-репорта.
Для дополнительной информации см. секцию «Tracing Esptool Serial Communications» документации по последовательному протоколу [7].
[Часто встречающиеся ошибки]
Ниже приведен не исчерпывающий список самых частых ошибок esptool с объяснением возможных причин и способов устранения. Перед тем, как предпринять какие-либо действия по исправлению, выполните все ранее перечисленные указания.
No serial data received. Утилита esptool не принимает никакие байты данных, или не может успешно принять пакет SLIP [7]. Эта ошибка обычно означает какую-то аппаратную проблему (перепутаны ножки RX/TX, или не подключены). Проверьте уровни сигналов и их наличие осциллографом, а также нет ли проблем со сбросом и выбором режима загрузки после сброса [2].
Wrong boot mode detected (0xXX)! The chip needs to be in download mode. В этом случае обмен с чипом работает (виден лог ROM boot), но чип автоматически не сбрасывается в режим загрузки.
Для решения проблемы проверьте схему автосброса (если на Вашей плате она есть), или попробуйте вручную выполнить сброс в режим загрузки. Как это делать, см. секцию «Manual Bootloader» документации [2].
Download mode successfully detected, but getting no sync reply: The serial TX path seems to be down. Чип успешно сбрасывается в режим загрузки и посылает данные компьютеру хоста, но не получает ничего в ответ от утилиты esptool. Это означает наличие проблемы с сигналом передачи от хоста к устройству ESP (RX ESP32 и TX адаптера USB-UART). Еще раз проверьте вашу плату и сигналы последовательного порта.
Invalid head of packet (0xXX): Possible serial noise or corruption. Причины этой ошибки могут быть следующие:
• Некачественный кабель USB.
• Иногда на плате макетирования могут замыкать ножки SPI flash, создавая подобную проблему. Попробуйте извлечь плату разработки из платы макетирования.
• На чипе во время прошивки может сработать аппаратный детектор пониженного напряжения (brown out). Часто это бывает при подаче питания от 3.3V регулятора чипов FTDI, или наличие других проблем питания (см. выше секцию «Плохое питание»).
Что можно сделать:
• Попробуйте выполнить синхронизацию и обмен на пониженной скорости, например esptool.py —baud 9600 …
• Попробуйте вывести дамп трассировки запуском esptool.py —trace …, и посмотрите, принимается ли что-нибудь обратно.
• Попробуйте пропустить стадию автодетекта чипа путем явного указания используемого кристалла. Например, запустите esptool.py —chip ESP32 …
Если ничего не помогает, то откройте тикет в службе техподдержки (open a new issue на GitHub).
[Ссылки]
1. ESP32 Troubleshooting site:docs.espressif.com.
2. Boot Mode Selection site:docs.espressif.com.
3. SPI Flash Modes site:docs.espressif.com.
4. ESP32: процесс запуска приложения.
5. serial.tools.miniterm site:pyserial.readthedocs.io.
6. Serial Connection site:docs.espressif.com.
7. Serial Protocol site:docs.espressif.com.
8. ESP32: как реализовать автозагрузку прошивки.
Пытаюсь прошить Wemod D1 mini.
В приложении «GyverMatrixOS_v1.15» нажимаю на кнопку «Загрузка» ( Прошивку уже настроил ) и выдаёт ошибку
Arduino: 1.8.10 (Windows 7), Плата:»LOLIN(WEMOS) D1 mini Pro, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 16MB (FS:14MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 921600″
In file included from D:DocumentsDesktopGyverMatrixWiFi-masterfirmwareGyverMatrixOS_v1.15GyverMatrixOS_v1.15.ino:132:0:
D:DocumentsArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
# pragma message «FastLED version 3.003.002»
^
In file included from D:DocumentsArduinolibrariesFastLED/FastLED.h:65:0,
from D:DocumentsDesktopGyverMatrixWiFi-masterfirmwareGyverMatrixOS_v1.15GyverMatrixOS_v1.15.ino:132:
D:DocumentsArduinolibrariesFastLED/fastspi.h:130:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output
# pragma message «No hardware SPI pins defined. All SPI access will default to bitbanged output»
^
Executable segment sizes:
IROM : 311104 — code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27564 / 32768 — code in IRAM (ICACHE_RAM_ATTR, ISRs…)
DATA : 1416 ) — initialized variables (global, static) in RAM/HEAP
RODATA : 2056 ) / 81920 — constants (global, static) in RAM/HEAP
BSS : 31176 ) — zeroed variables (global, static) in RAM/HEAP
Скетч использует 342140 байт (35%) памяти устройства. Всего доступно 958448 байт.
Глобальные переменные используют 34648 байт (42%) динамической памяти, оставляя 47272 байт для локальных переменных. Максимум: 81920 байт.
esptool.py v2.8
Serial port COM3
Traceback (most recent call last):
File «C:Users����AppDataLocalArduino15packagesesp8266hardwareesp82662.6.3/tools/upload.py», line 65, in <module>
esptool.main(cmdline)
File «C:/Users/����/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptoolesptool.py», line 2889, in main
esp = chip_class(each_port, initial_baud, args.trace)
File «C:/Users/����/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptoolesptool.py», line 237, in __init__
self._port = serial.serial_for_url(port)
File «C:/Users/����/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/pyserialserial__init__.py», line 88, in serial_for_url
instance.open()
File «C:/Users/����/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/pyserialserialserialwin32.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 ‘COM3’: FileNotFoundError(2, ‘�� ������� ����� ��������� ����.’, None, 2)
serial.serialutil.SerialException: could not open port ‘COM3’: FileNotFoundError(2, ‘�� ������� ����� ��������� ����.’, None, 2)
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Что делать? Помогите пожалуйста.
-
#81
Ни как не избавиться от подобной ошибки, менял частоты, DIO и даже скорость загрузки.
Всё-равно появляется эта ошибка.
-
#82
Здравствуйте!
Была та же ошибка, возникшая неожиданно при очередной перепрошивке.
Мне помогла банальная переустановка Arduino IDE. При установке галочка «установить драйвер» стояла.
-
#83
То же самое как и автора в первом сообщении. NodeMCU шьется а Ардуино нет. Монитор порта в ардуино видит информацию при загрузке. Ардуино не установлена, а работает с папки. Не могу залить новых прошивок сделаных на сайте nodemcu-bild, может я чего делаю не правильно? старые работают а новые только мусор без конца отправляют
-
#84
Переустановка драйвера pl2303, перенос программы прошивки flash_download_tools_v3.6.6 в корневой каталог, и пару попыток зашить blank_1MB.bin дали результат, теперь esp 12e прошивается и ардуино. Но новые прошивки сделаные на сайте nodemcu-build по прежнему шлют постоянно мусор Скиньте кто может вашу прошивку сделаную для в nodemcu-build esp 12e сюда, я попробую прошить ею
-
#85
Еще такая проблема может быть потому что вы используете выход BOOT. Я так один раз из за китайского модуля ESP WROOM 32, на котором было не верно напечатаны выходы, джойстик ткнул на, как потом оказалось, G0. Проблема была еще в том что на моей плате, уже было запаяно куча датчиков, дисплей 2004, кнопки и RTC. Когда я отпаял джойстик, понял что проблема была в нем, т.к. прошивка залилась и ошибки больше не было. После я начал обзванивать выходы из 8266, по даташиту понял что мой выход идет на бут=)))) Как то так.
Может кому будет полезно!
———————————————
Выполню ваш проект по ТЗ — greben.evgeniy@gmail.com.
-
#86
такая же проблема на ЕСП32
пишет
Код:
Arduino: 1.8.13 (Windows 10), Плата:"ESP32 Dev Module, Disabled, Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"
Скетч использует 623662 байт (31%) памяти устройства. Всего доступно 1966080 байт.
Глобальные переменные используют 38744 байт (11%) динамической памяти, оставляя 288936 байт для локальных переменных. Максимум: 327680 байт.
esptool.py v2.6
Serial port COM5
Connecting........_____....._____....._____....._____....._____....._____.....____Произошла ошибка при загрузке скетча
_
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
пробовал разные версии ИДЕ
пробовал зажимать во время загрузки кнопку бут тоже ничего
думал загрузочная микруха померла и поменял её но ничего не изменилось
-
#87
пробовал зажимать во время загрузки кнопку бут тоже ничего
Что выдает есп при подаче питания?
Бут нажать недостаточно.
Есть два варианта бут зажать и подать питание или бут зажать и нажать и отпустить ресет.
-
#88
всё просто
есть версии таких плат где ничего не надо нажимать и всё заливается
есть версии где нужно при слове конект нажимать бут иначе не загружается , там просто идут точки и тире и потом ошибка вскакивает тогда
втыкаю кабель и раздаётся звук мол подключено устройство по усб в общем то как и всегда в таких случаях
ваши два метода тоже не работают
-
#89
есть версии таких плат где ничего не надо нажимать и всё заливается
Если это не голый есп, а готовый модуль, то в принципе нигде не надо нажимать, надо только выбрать сом порт и установить максимальную скорость с которой модуль еще работает.
Вы не ответили на вопрос
Что выдает есп при подаче питания?
pvvx
Активный участник сообщества
-
#90
Что выдает есп при подаче питания?
А что может выдать отключенное от USB устройство?
И вам ответили:
втыкаю кабель и раздаётся звук мол подключено устройство по усб в общем то как и всегда в таких случаях
А по соединению шнура USB между платой и компом устанавливается драйвер USB-СDC, потом драйвер COM порта, потом программа откроет COM порт, установит DTR/RTS (без вашего ведома), а в плате к примеру Flash стерта… Что покажет терминал, когда уже всё сообщения от ESP при подаче питания от USB давно проскочили?
По этому ваш вопрос некорректен.
pvvx
Активный участник сообщества
-
#91
При подключенном терминале и пустой flash от модуля ESP32 можно получить только два типа сообщения на 115200 baud, примерно такого содержания:
1
Код:
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57
2
Код:
rst:0x10 (RTCWDT_RTC_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
1 -ый тип будет повторяться, а 2-ой модуль выдаст только один раз.
Можно проверить сигналы DTR/RTS в программе:
В ней есть две кнопки DTR и RTS:
которые управляют режимом загрузки и сбросом ESP32.
-
#92
А что может выдать отключенное от USB устройство?
Логично.
Тс покажите вывод в сом порт, после нажатия и отпускании ресет.
pvvx
Активный участник сообщества
-
#93
Логично.
Тс покажите вывод в сом порт, после нажатия и отпускании ресет.
Но дело в том, что Arduno для записи запускает esptool.py. Она дергает DTR/RTS сигналы в надежде запустить модуль в режиме программирования (тип сообщения 2 из прошлого соо).
Но кривая схема в некоторых модулях не позволяет этого сделать. Их только на помойку*, т.к. кнопочками вы ей не всегда поможете — она снова сбросит в обычный режим
Танцы с бубном и тыканием кнопочек иногда всё-же могут помочь больному… Но зачем покупать такое?
* переделывать.
-
#94
Танцы с бубном и тыканием кнопочек иногда всё-же могут помочь больному… Но зачем покупать такое?
У меня есть Esp12 и esp32 на cp2102, обе нормально работают.
Правда есп12 входит в режим программирования если установлена скорость не выше 921000, выше не срабатывает.
pvvx
Активный участник сообщества
-
#95
Для тех у кого на плате есть кнопочки, но не работает esptool.py, у самой esptool.py есть опция
—before no_reset
Но оно не переключается в Arduino. И вам придется лезть в
UsersИмяAppDataLocalArduino15packagesesp32hardwareesp321.x.xplatform.txt
И править в нем строку c :
tools.esptool_py.upload.pattern=…… —before default_reset …..
на no_reset
Тогда с помощь кнопочек вы сможете перевести своё чадо в режим программирования и прошить в Arduino.
pvvx
Активный участник сообщества
-
#96
У меня есть Esp12 и esp32 на cp2102, обе нормально работают.
Правда есп12 входит в режим программирования если установлена скорость не выше 921000, выше не срабатывает.
А это относится к микрухе USB-COM, а не к ESP. Техническое описание причины будет слишком длинным и я его упущу. Проще — не покупайте всякое китайское дерьмо.
pvvx
Активный участник сообщества
-
#97
Правда и этот баг (большая скорость на некоторых чипах USB-COM) можно обойти программно в той-же esptool, но кто-же будет учить ардуино-писателей? Нам до них далеко
-
#98
ничего не пишет
-
#99
Не хорошо.
Померьте тестером напряжения на есп.
Offline
Зарегистрирован: 13.09.2021
Доброго времени суток.
Прошу помощь, попала плата в руки
Arduino UNO R3, с WiFi R3, макетная плата WeMos ESP8266
Контроллер esp прошить получилось, а вот ардуино ну не как не получается , win10 , драйвер поставил пишет USB-SERIAL CH340
вроде все как положено, программу скачал с оф сайта.
Выставил переключатели 3 и 4 в положение on, все остальные в off, в настройках ide поставил ком порт 3 как в диспетчере устройств, выбрал плату Arduino uno и нажал кнопку Загрузка.
через 3 минуты получил вот такое сообщение
Arduino: 1.8.16 (Windows 10), Плата:»Arduino Uno»
Скетч использует 924 байт (2%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
Произошла ошибка при загрузке скетча
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x93
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x93
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Скажите что я делаю не так? не как не могу записать скетч в ардуино…..
При работе с Леонардо и другими платами на базе ATmega32U4 следует помнить, что фактического последовательного подключения нет.
Что есть, так это USB-соединение, которое управляется sketch (и независимо загрузчиком) для обеспечения соединения «CDC/ACM» по USB. Это эмулирует последовательное соединение, но это не настоящее последовательное соединение.
Это на самом деле имеет огромное количество преимуществ, потому что у вас могут быть другие вещи, помимо последовательного порта, такие как клавиатура или мышь. Однако за это приходится платить: последовательный порт зависит от запущенного в данный момент приложения.
Если ваш скетч по какой-либо причине выйдет из строя, последовательный порт больше нельзя будет использовать. Это плохо. Это может повредить ваш Arduino. Поскольку именно скетч обеспечивает движущую силу для последовательной эмуляции CDC/ACM, если этот скетч умирает, то же самое происходит с управлением USB и, следовательно, CDC/ACM.
Таким образом, хотя порт может быть изначально создан скетчем, если он впоследствии выйдет из строя, порт все еще там, но не отвечает. Или порт может полностью исчезнуть.
Так как же вы это исправляете? Что ж, есть пара стратегий:
- Некоторые люди добились успеха, дважды быстро нажав кнопку СБРОСА. Однако это зависит от используемой версии загрузчика, и это не то, что я когда-либо пробовал.
- Нажмите кнопку RESET в нужный момент, чтобы запустить загрузчик непосредственно перед
запуском avrdude, и перехватите его в нужное время, чтобы принять новый скетч, или
- Использование аппаратного программатора (например, USBASP) или другого Arduino для очистки чипа и переустановки загрузчика
Мой предпочтительный метод-3, так как он наверняка всегда будет работать — однако для этого требуется либо аппаратный программатор, либо другой Arduino. Однако вы можете купить USBASP на eBay / AliExpress / Amazon и т. Д. Практически Бесплатно, и когда вы работаете с чипами AVR, они всегда полезны, чтобы вытащить вас из трудных мест, подобных этому.