Woah, really surprised this was necessary. We use esptool.py
all the time during development here, and even use it in the factory to probe and test the device, so it should “just work”.
On the board itself, IO0 is connected to an auto-programming circuit that detects when DTR/RTS are asserted by the USB-UART chip (pretty standard setup for any ESP32 device). So here’s what I get when running esptool.py flash_id
on a random Tidbyt:
esptool.py v3.3
Serial port /dev/cu.usbserial-320
Connecting.........
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting.....
Detecting chip type... ESP32
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: <redacted>
Uploading stub...
Running stub...
Stub running...
Manufacturer: 20
Device: 4017
Detected flash size: 8MB
Hard resetting via RTS pin...
Perhaps this is a driver issue?