The easiest way to program microcontrollers

CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards.

When we say easy, we mean it.

With CircuitPython, no desktop downloads are required. Just set up your board and start coding via code.circuitpython.org over USB, WiFi, or Bluetooth.

Create a file, edit your code, save the file, and it runs immediately. There is no compiling needed.

Brain Circuit Icon

Beginner Friendly

CircuitPython is designed with education in mind. It's an easy way to start learning how to code and you get immediate feedback from the board.

Microchip Icon

File Storage

The internal storage for CircuitPython makes it great for data-logging, playing audio clips, and otherwise interacting with files.

Files Icon

Easy Code Updates

Since your code lives on the disk drive, you can edit it whenever you like. You can even keep multiple files around for easy experimentation.

Terminal Icon

Serial Console + REPL

These features allow for live feedback from your code and interactive programming.

Easily manage and use over 500+ Python libraries.

Python is the fastest growing programming language. It's taught in schools and universities. It's a high-level programming language which means it's designed to be easier to read, write and maintain. It supports modules and packages which means it's easy to reuse your code for other projects. It has a built-in interpreter which means there are no extra steps, like compiling, to get your code to work. And of course, Python is Open Source Software which means it's free for anyone to use, modify or improve upon.

CircuitPython adds hardware support to all of these amazing features. If you already have Python knowledge, you can easily apply that to using CircuitPython. If you have no previous experience, it's really simple to get started!

Supported by all of the best microcontrollers

CircuitPython is now supported by over 600 microcontroller boards. With so many to choose from, there is sure to be a perfect board for your next project.

CircuitPython libraries on single board computers

Most CircuitPython libraries also work on single board computers (SBCs), such as the Raspberry Pi. Linux runs "desktop" Python (commonly known as CPython) instead of CircuitPython. Our CPython Blinka library provides CircuitPython's low-level hardware APIs, such as `digitalio`.

Blinka and CircuitPython libraries are just a `pip install` away.

Just the beginning...

CircuitPython continues to evolve, and is constantly being updated. We welcome and encourage feedback from the community, and we incorporate this into how we are developing CircuitPython. That's the core of the open source concept. This makes CircuitPython better for you and everyone who uses it!

Thanks

CircuitPython wouldn't exist without the awesome work of Damien George and the MicroPython community. They did the hard work to reimplement Python on microcontrollers and continue to push the boundaries of what is possible.

Thank you to Adafruit for continuing to support CircuitPython's beginner-focused development. Adafruit supports MicroPython with code contributions and financially via GitHub sponsorship AND directly to MicroPython.

Lastly, thank you to the CircuitPython community members who have spent time testing, triaging, fixing and enhancing CircuitPython, its libraries and its documentation. Together we're all making something incredible.