ESP32-S3-N16R8 build and flash CircuitPython firmware
ESP32-S3-N16R8 build and flash CircuitPython firmware
ESP32-S3-N16R8 build and flash CircuitPython firmware
CircuitPython is maintained by Adafruit mainly, but only support the boards they listed, and Adafruit doesn’t selling any ESP32-S3-N16R8 boards as of this writing.
If you don’t set up the correct ESP-IDF configuration, you will see the board won’t boot successful and keep throw exceptions like this:
cp -r espressif_esp32s3_devkitc_1_n8r2 espressif_esp32s3_devkitc_1_n16r8 (Adafruit doesn’t support N16R8, so choose a ESP32-S3 board with PSRAM is more easier to modification)
modify mpconfigboard.h
change MICROPY_HW_BOARD_NAME: ESP32-S3-DevKitC-1-N8R2 to ESP32-S3-DevKitC-1-N16R8
modify mpconfigboard.mk
change USB_PRODUCT: ESP32-S3-DevKitC-1-N8R2 to ESP32-S3-DevKitC-1-N16R8
change CIRCUITPY_ESP_FLASH_MODE: dio to qio (DIO to QIO for Flash)
change CIRCUITPY_ESP_FLASH_SIZE: 8MB to 16MB (8MB to 16MB for Flash)
modify sdkconfig
change CONFIG_SPIRAM_MODE_QUAD=y to CONFIG_SPIRAM_MODE_OCT=y (QUAD to OCTAL for PSRAM)
change CONFIG_SPIRAM_SIZE: 2097152 to 8388608 (2MB to 8MB for PSRAM)
The above configurations is based on the ESP32-S3 documentation, modify flash size and flash mode mainly.
I made a docker file to compile the CircuitPython firmware.
WORKDIR /root # it's taking a long time RUN git clone https://github.com/adafruit/circuitpython.git && \ cd circuitpython && \ git checkout 7.3.3 && \ make fetch-submodules
WORKDIR /root/circuitpython/ports/espressif RUN esp-idf/install.sh
WORKDIR /root/circuitpython/ports/espressif/boards # https://github.com/adafruit/circuitpython/tree/main/ports/espressif/boards/espressif_esp32s3_devkitc_1_n8r2 RUNcp -r espressif_esp32s3_devkitc_1_n8r2 espressif_esp32s3_devkitc_1_n16r8 && \ sed -i 's/ESP32-S3-DevKitC-1-N8R2/ESP32-S3-DevKitC-1-N16R8/g' espressif_esp32s3_devkitc_1_n16r8/mpconfigboard.h && \ sed -i 's/ESP32-S3-DevKitC-1-N8R2/ESP32-S3-DevKitC-1-N16R8/g' espressif_esp32s3_devkitc_1_n16r8/mpconfigboard.mk && \ # CIRCUITPY_ESP_FLASH_MODE DIO -> QIO sed -i 's/dio/qio/g' espressif_esp32s3_devkitc_1_n16r8/mpconfigboard.mk && \ # CIRCUITPY_ESP_FLASH_SIZE 8MB -> 16MB sed -i 's/8MB/16MB/g' espressif_esp32s3_devkitc_1_n16r8/mpconfigboard.mk && \ echo 'CIRCUITPY_ESP32_CAMERA = 0' >> espressif_esp32s3_devkitc_1_n16r8/mpconfigboard.mk && \ # QUAD -> OCTAL sed -i 's/CONFIG_SPIRAM_MODE_QUAD/CONFIG_SPIRAM_MODE_OCT/g' espressif_esp32s3_devkitc_1_n16r8/sdkconfig && \ # 2MB -> 8MB sed -i 's/2097152/8388608/g' espressif_esp32s3_devkitc_1_n16r8/sdkconfig