CircuitPython is a derivative of MicroPython designed to simplify experimentation and education on low-cost microcontrollers. It makes it easier than ever to get prototyping by requiring no upfront desktop software downloads. ESP32-C3 CircuitPython firmware is uploaded to the board via the USB JTAG serial port.
Follow this step-by-step to get CircuitPython running on your board.
Click the link above to download the latest CircuitPython .bin file.
Save it wherever is convenient for you.
To begin, plug your board into your computer via USB, using a known-good data-sync cable, directly, or via an adapter if needed.
You will have to use Firefox 151 or later, Chrome or a Chromium-based browser to install CircuitPython. For example, Edge and Opera are Chromium based.
Safari and some other browsers etc. are not supported - they have not implemented Web Serial!
In the Chrome browser visit https://adafruit.github.io/Adafruit_WebSerial_ESPTool/
Press the Connect button in the top right of the web browser. You will get a pop up asking you to select the COM or Serial port. Look for USB JTAG/Serial debug.
On some systems, such as MacOS, there may be additional system ports that appear in the list.
The Javascript code will now try to connect to the board. It may timeout for a bit until it succeeds. On success, you will see that it is Connected and will print out a unique MAC address identifying the board along with other information that was detected.
Erasing the Board Contents
If you would like to erase the entire flash area so that you can start with a clean slate, you can use the erase feature. We recommend doing this every time before installing or updating CircuitPython.
To erase the contents, click the Erase button. You will be prompted as to whether you want to continue. Click OK to continue. If you do not wish to continue, click Cancel.
You'll see "Erasing flash memory. Please wait..." This will eventually be followed by "Finished." and the amount of time it took to erase.
Do not disconnect! Immediately continue on to Programming the Board.
You can click on Choose a file... from any of the available buttons. It will only attempt to program buttons with a file and a unique location. Select the .BIN file you downloaded at the beginning of this page from the file chooser dialogue.
Verify that the Offset box next to the file location you used is 0x0. The offset defaults to 0x0, so unless you changed it manually, it should be good to go.
Once you choose a file, the button text will change to match your filename. You can then click the Program button to start flashing.
You've now successfully programmed CircuitPython onto your board! As suggested in the output, press reset to run the new firmware.
As the ESP32-C3 does not have native USB, no USB drive will show up on your computer when you reset. With CircuitPython firmware loaded, the REPL can be accessed over a serial/COM port.
Don't worry though! We have the CircuitPython USB Workflow Code Editor or the CircuitPython Web Workflow Code Editor so that you can access the board via USB or WiFi in your Chromium-based browser.
Page last edited May 22, 2026
Text editor powered by tinymce.