0

So I recently bought two Xiao ESP32-C6 from SeeedStudio; they work with Arduino code out of the box. Now I want to flash the CircuitPython bootloader from here https://circuitpython.org/board/espressif_esp32c6_devkitm_1_n4/ to see if it works.

The "canonical" way of entering the ESP32 in flashing mode (at least the ESP32-S2 I own) to change its bootloader is to press and hold the BOOT and then press RESET. This procedure does not work in the Xiao ESP32-C6, the board just resets (I was expecting Windows to show it as a mass storage device). How to make it work?

jsotola
  • 1,554
  • 2
  • 12
  • 20

1 Answers1

1

EDIT: as of today (08/22/2024) there is official support from Adafruit for Xiao ESP32-C6 CircuitPython: https://circuitpython.org/board/seeed_xiao_esp32c6/ .

I made it work, flashed the CircuitPython firmware to the ESP32-C6. Turns out you have to use the "Flash download tool" from Espressif https://www.esp32.com/viewtopic.php?t=60&start=20 . I downloaded the bin file for the "ESP32-C6-DevKitC-1-N8" from here https://circuitpython.org/board/espressif_esp32c6_devkitc_1_n8/ , which I do not know to be exactly compatible with the Xiao ESP32-C6, have not tested it fully.

Tools like the "Web serial ESPtool" did not work for me https://learn.adafruit.com/circuitpython-with-esp32-quick-start/web-serial-esptool

Tested my flashing with the LED blink in Thonny IDE:

# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
# SPDX-License-Identifier: MIT
"""CircuitPython CPU temperature example in Celsius"""
import time
import microcontroller
import board
import digitalio

led = digitalio.DigitalInOut(board.IO18) led.direction = digitalio.Direction.OUTPUT

while True: print(microcontroller.cpu.temperature) print("On!") led.value = True time.sleep(0.5)

print("Off!")
led.value = False
time.sleep(0.5) </code></pre>

Here I document my experience: https://fritzenlab.net/2024/07/16/using-the-esp32-c6-with-circuitpython-flashing-the-bin-file/