The easiest way to program microcontrollers
CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards. It makes getting started easier than ever with no upfront desktop downloads needed. Once you get your board set up, open any text editor, and get started editing code. It's that simple.
Learn Python with CircuitPython
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 the core Python language. 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! Learning CircuitPython is learning Python.
Supported by your favorite microcontroller
CircuitPython is designed to run on microcontroller boards. A microcontroller board is a circuit board with a microcontroller chip that's essentially an itty-bitty all-in-one computer. CircuitPython is easy to use because all you need is that little board, a USB cable, and a computer with a USB connection.
More reasons to use CircuitPython
Quick and Easy
Create a file, edit your code, save the file, and it runs immediately. There is no compiling, no downloading and no uploading needed.
Beginner Friendly
CircuitPython is designed with education in mind. It's easy to start learning how to code and you get immediate feedback from the board.
Easy Code Updates
Since your code lives on the disk drive, you can edit it whenever you like, you can also keep multiple files around for easy experimentation.
Serial Console + REPL
These allow for live feedback from your code and interactive programming.
File Storage
The internal storage for CircuitPython makes it great for data-logging, playing audio clips, and otherwise interacting with files.
Strong Hardware Support
There are many libraries and drivers for sensors, breakout boards and other external components.
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!
Get started with CircuitPython >
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.
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.