Note
The hardware in this example is the ESP32-C3-DevKit-RUST-1 on Arch
espflash
espflash list-ports
/dev/ttyACM0 1001:303A Espressif USB JTAG/serial debug unit
For more info:
espflash board-info
[2026-06-09T08:01:24Z INFO ] Serial port: '/dev/ttyACM0'
[2026-06-09T08:01:24Z INFO ] Connecting...
[2026-06-09T08:01:25Z INFO ] Using flash stub
Chip type: esp32c3 (revision v1.1)
Crystal frequency: 40 MHz
Flash size: 4MB
Features: WiFi, BLE
MAC address: XX:XX:XX:XX:XX:XX
Security Information:
=====================
Flags: 0x00000000 (0)
Key Purposes: [0, 0, 0, 0, 0, 0, 12]
Chip ID: 5
API Version: 7
Secure Boot: Disabled
Flash Encryption: Disabled
SPI Boot Crypt Count (SPI_BOOT_CRYPT_CNT): 0x0
Common issues
User not in the correct group
sudo usermod -aG dialout $USER
sudo usermod -aG uucp $USER
Check the USB cable
If when listing serial ports with espflash list-ports:
No known serial ports found.
Make sure you’re using a data-capable USB cable, and some cables only provide power and can’t transfer data.
Unless you’re 100% sure the cable works with data, try others. For the love of god, try others.
Run espflash list-ports again:
/dev/ttyACM0 1001:303A Espressif USB JTAG/serial debug unit
Waiting for download
When flashing to a board, if it’s stuck at “waiting for download”, check if the board is in boot mode. Unplug/plug it back in, or press the reset button. Basically turning it off and on again fixes it like it fixes almost anything.
[2026-06-08T17:02:07Z INFO ] Flashing has completed!
Commands:
CTRL+R Reset chip
CTRL+C Exit
ESP-ROM:esp32c3-eco7-20230720
Build:Jul 20 2023
rst:0x15 (USB_UART_CHIP_RESET),boot:0x4 (DOWNLOAD(USB/UART0))
Saved PC:0x4038085e
waiting for download