
CircuitPython CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards.
Compatible
FoBE Studio CircuitPython is a fork of the official CircuitPython repository with additional features and optimizations for FoBE hardware.
- GitHub Releases - Get Firmware from GitHub Releases.
- Firmware Hub - Get or Flash Firmware via Web Interface from FoBE Firmware Hub.
Install
To install the CircuitPython firmware, follow these steps:
BIN with ESPTool
Compatible with the following development boards
- FoBE Quill ESP32S3 Mesh
Program your board using the esptool.py
program, found
here.
- Download the firmware file with the
.bin
extension. - Connect the board to your computer using a USB-C cable.
- If you are putting CircuitPython on your board for the first time then you should first erase the entire flash using:
python3 -m esptool erase-flash
- Flash the firmware to the device using the following command:
python3 -m esptool --chip esp32s3 -b 921600 --before default-reset --after hard-reset \
write-flash --flash-mode dio --flash-size 4MB --flash-freq 80m 0x0 <path_to_firmware.bin>
Replace <path_to_firmware.bin>
with the path to the downloaded .bin
file.
5. After flashing, the device should reboot automatically. If it does not, press the RESET button on the board to start the CircuitPython firmware.
UF2 with USB Storage
Compatible with the following development boards
- FoBE Quill ESP32S3 Mesh
- FoBE Quill nRF52840 Mesh
- FoBE IDEA Mesh Tracker C1
To install the CircuitPython firmware, follow these steps:
- Download the firmware file with the
.uf2
extension. - Connect the board Mesh to your computer using a USB-C cable.
- Double-click the reset button on the device to enter bootloader mode.

- Copy the
.uf2
file to the device storageFOBEBOOT
. - After flashing, the device should reboot automatically. If it does not, press the RESET button on the board to start the CircuitPython firmware.
HEX with OpenOCD (CMSIS-DAP)
Compatible with the following development boards
- FoBE Quill nRF52840 Mesh
- FoBE IDEA Mesh Tracker C1
Hex files are used for programming the device using OpenOCD. Please make sure OpenOCD is installed and configured correctly.
- Download the firmware file with the
.hex
extension. - Connect the board to your computer using a USB-C cable.
- Connect the debug interface CMSIS-DAP to the board.
- Open a terminal and run the following command:
openocd -f interface/cmsis-dap.cfg -f target/nrf52.cfg \
-c "init" -c "program <path_to_firmware.hex> verify reset" -c "exit"
Replace <path_to_firmware.hex>
with the path to the downloaded .hex
file.
Creating an Application
Quickly create a CircuitPython application
# Create a new directory for the project
mkdir -p cpy-example
cd cpy-example
# Create a virtual environment
python3 -m venv ./.venv
# Activate the virtual environment
source .venv/bin/activate
# Install the required packages
pip3 install adafruit-ampy
# Create a new file named main.py
echo "print('Hello, CircuitPython!')" > main.py
# Copy the main.py file to the device
ampy --port <board_port> put main.py :
# Run the main.py file on the device
ampy --port <board_port> run main.py
More information about the CircuitPython REPL can be found in the CircuitPython documentation.