Espressif ESP32-S3-WROOM-1 + Micropython --- invalid header: 0xffffffff

I purchased this from Digikey (docs).

I flashed the latest firmware release with the following commands:

$ esptool.py \ --port /dev/tty.usbmodem14201 \ --baud 460800 \ --before default_reset \ --after hard_reset \ --chip esp32s3 \ erase_flash $ esptool.py \ --chip esp32s3 \ --port /dev/tty.usbmodem14201 \ --baud 460800 \ write_flash \ -z 0x1000 \ GENERIC_S3-20220117-v1.18.bin 

Output:

esptool.py v3.2 Serial port /dev/tty.usbmodem14201 Connecting... Chip is ESP32-S3 Features: WiFi, BLE Crystal is 40MHz MAC: 84:f7:03:c0:33:f8 Uploading stub... Running stub... Stub running... Changing baud rate to 460800 Changed. Configuring flash size... Flash will be erased from 0x00001000 to 0x00154fff... Compressed 1390128 bytes to 917154... Wrote 1390128 bytes (917154 compressed) at 0x00001000 in 15.2 seconds (effective 731.0 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... 

When I connect to the UART with the following command:

$ python -m serial.tools.miniterm /dev/tty.usbmodem14201 115200 --- Miniterm on /dev/tty.usbmodem14201 115200,8,N,1 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff ... 

I've also tried building from source. I'm thinking it has something to do with the ESP32-S3 devkit that I purchased. Can someone help me figure out why I can't get micropython installed on this devkit? Thanks!

1 Answer

To flash the firmware you're running the command:

esptool.py \ --chip esp32s3 \ --port /dev/tty.usbmodem14201 \ --baud 460800 \ write_flash \ -z 0x1000 \ GENERIC_S3-20220117-v1.18.bin 

The instructions at the firmware link you shared say to use location 0 not 0x1000:

esptool.py --chip esp32s3 --port /dev/ttyACM0 write_flash -z 0 board-20210902-v1.17.bin 

This isn't an argument to -z, which means compress the image; it's the address to start writing the image at.

Try using the offset provided in the directions:

esptool.py \ --chip esp32s3 \ --port /dev/tty.usbmodem14201 \ --baud 460800 \ write_flash \ -z \ 0 GENERIC_S3-20220117-v1.18.bin 

Micropython definitely isn't going to load and work properly if it's not flashed to the correct location.

2

ncG1vNJzZmirpJawrLvVnqmfpJ%2Bse6S7zGiorp2jqbawutJobmprYGWEdn6OnqqpqpWowKqyjJ6qqWtiYsB0edarpqilXWZ6rrXCq6apsaSdvK95yKetmqSZmXqpscCdnKtlYK2zp7LFn52fng%3D%3D