ESP32 toit 配置失败
ESP32 toit provisioning fails
设置:带有 Satechi USB 加密狗的 Macbook Pro 2020,它提供与微控制器的 USB 连接。适用于文件传输的 USB 数据线。我使用的是 ESP32-wroom-32E,但失败后我还尝试了 ESP32-wroom-32D 和 ESP32 (v1)。都是开发板。
尝试使用来自 https://docs.toit.io/getstarted/provision/ 的以下命令进行配置:
toit serial provision --baud 460800 -p wifi.ssid=toitwifi -p wifi.password=toitware -m esp32-4mb
结果如下:
erasing device flash
failed to write device partitions, do you want to retry? [y/n]
重试了几次并停止了,因为没有任何反应。
日志给出了以下内容:
Running "/Users/jacobjensen/.cache/toit/tools/esptool_darwin_v3.0 --chip esp32 --port /dev/tty.usbserial-0001 --baud 460800 --before default_reset --after hard_reset erase_flash"
esptool.py v3.0
Serial port /dev/tty.usbserial-0001
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
更新:
ESP32E 配置成功。在命令中手动选择端口并更新驱动程序。事实证明,默认端口是错误的。还安装了以下驱动程序:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers https://ftdichip.com/drivers/vcp-drivers/。有效的命令如下所示:
toit serial provision --baud 460800 -p wifi.ssid=toitwifi -p wifi.password=toitware -m esp32-4mb --port /dev/tty.SLAB_USBtoUART
ESP32D 和 ESP32 v1 仍然配置失败。会不会跟硬件有关?
最常见的配置失败是因为驱动程序未更新。
对于 macOS,这些将是(最新版本):
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- https://ftdichip.com/drivers/vcp-drivers/
根据您的更新,您已经安装了这些。
一些设备还需要较低的波特率。例如 LILYGO TTGO T-Wristband 仅适用于有限的带宽。也许尝试使用较低的值(低至 9600)。
由于众所周知 macOS USB 硬件有点挑剔,您也可以尝试将开发套件放在 USB 集线器后面(带外部电源)。
最后,已知一些设备的硬件设置不佳并且难以在 macOS 上刷入。有时将 GPIO0 拉到地(例如用电阻)可以使闪烁工作。
其他人报告说添加电容器成功:https://randomnerdtutorials.com/solved-failed-to-connect-to-esp32-timed-out-waiting-for-packet-header/
由于您只需要 provision/flash 一次设备,面包板解决方案就足够了。具体可以在EN脚和GND之间加一个10uF的电解电容。
设置:带有 Satechi USB 加密狗的 Macbook Pro 2020,它提供与微控制器的 USB 连接。适用于文件传输的 USB 数据线。我使用的是 ESP32-wroom-32E,但失败后我还尝试了 ESP32-wroom-32D 和 ESP32 (v1)。都是开发板。
尝试使用来自 https://docs.toit.io/getstarted/provision/ 的以下命令进行配置:
toit serial provision --baud 460800 -p wifi.ssid=toitwifi -p wifi.password=toitware -m esp32-4mb
结果如下:
erasing device flash
failed to write device partitions, do you want to retry? [y/n]
重试了几次并停止了,因为没有任何反应。
日志给出了以下内容:
Running "/Users/jacobjensen/.cache/toit/tools/esptool_darwin_v3.0 --chip esp32 --port /dev/tty.usbserial-0001 --baud 460800 --before default_reset --after hard_reset erase_flash"
esptool.py v3.0
Serial port /dev/tty.usbserial-0001
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
更新: ESP32E 配置成功。在命令中手动选择端口并更新驱动程序。事实证明,默认端口是错误的。还安装了以下驱动程序:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers https://ftdichip.com/drivers/vcp-drivers/。有效的命令如下所示:
toit serial provision --baud 460800 -p wifi.ssid=toitwifi -p wifi.password=toitware -m esp32-4mb --port /dev/tty.SLAB_USBtoUART
ESP32D 和 ESP32 v1 仍然配置失败。会不会跟硬件有关?
最常见的配置失败是因为驱动程序未更新。
对于 macOS,这些将是(最新版本):
- https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
- https://ftdichip.com/drivers/vcp-drivers/
根据您的更新,您已经安装了这些。
一些设备还需要较低的波特率。例如 LILYGO TTGO T-Wristband 仅适用于有限的带宽。也许尝试使用较低的值(低至 9600)。
由于众所周知 macOS USB 硬件有点挑剔,您也可以尝试将开发套件放在 USB 集线器后面(带外部电源)。
最后,已知一些设备的硬件设置不佳并且难以在 macOS 上刷入。有时将 GPIO0 拉到地(例如用电阻)可以使闪烁工作。
其他人报告说添加电容器成功:https://randomnerdtutorials.com/solved-failed-to-connect-to-esp32-timed-out-waiting-for-packet-header/
由于您只需要 provision/flash 一次设备,面包板解决方案就足够了。具体可以在EN脚和GND之间加一个10uF的电解电容。