I know the module works, because I have successfully programmed it using a USB programmer I bought, and I see all the normal boot messages in a serial console at 115200 baud.
Here's the output of tying EN high and GPIO0 low:
Yet I can't reach the module with idf.py, despite being able to communicate serially (as per ability to receive above message):rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
I get this message regardless of if I leave GPIO0 low or floating after the module enters download mode.esptool.py -p /dev/ttyUSB0 -b 115200 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 2MB 0x1000 bootloader/bootloader.bin 0x8000 partition_table/partition-table.bin 0x10000 i2c-example.bin
esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
esptool.py failed with exit code 2
I know that idf.py is working, because I can flash to a couple of development boards that integrate their own programming circuitry. I have also verified the solder connections on the breakout board (which are also provably working as serial communication works fine).
What's wrong? I found an identical problem here, but the thread author never seemed to resolve the issue after he opted to use a development board with integrated programmer instead.