| CircuitPython | |
|---|---|
Logo of the Blinka library, a compatibility layer for CircuitPython | |
| Original author | Adafruit Industries |
| Initial release | July 19, 2017; 8 years ago (2017-07-19)[1] |
| Stable release | |
| Written in | C[3] |
| Platform | Supportedmicrocontrollers andsingle-board computers |
| Type | Python implementation |
| License | MIT license[4] |
| Website | circuitpython |
| Repository | https://github.com/adafruit/circuitpython |
CircuitPython[5] is an open-source derivative of theMicroPython programming language targeted toward students and beginners. Development of CircuitPython is supported byAdafruit Industries. It is asoftware implementation of thePython 3programming language, written inC.[3] It has been ported to run on several modernmicrocontrollers.
CircuitPython consists of a Python compiler to bytecode and a runtime interpreter of that bytecode that runs on the microcontroller hardware. The user is presented with an interactive prompt (theREPL) to execute supported commands immediately. Included are a selection of core Python libraries. CircuitPython includes modules which give the programmer access to the low-level hardware of supported products as well as higher-level libraries for beginners.[6]
CircuitPython is a fork of MicroPython, originally created by Damien George.[7] The MicroPython community continues to discuss[8] forks of MicroPython into variants such as CircuitPython.
CircuitPython is targeted to be compatible withCPython, the reference implementation of the Python programming language.[9] Programs written for CircuitPython-compatible boards may not run unmodified on other platforms such as theRaspberry Pi.[10]
CircuitPython is being used as an emerging alternative solution for microcontroller programming, which is usually done in C, C++, or assembly. The language has also seen uptake in making small,handheld video game devices.[11][better source needed] Developer Chris Young has ported hisinfrared transmit-and-receive software to CircuitPython to provide interactivity and to aid those withaccessibility issues.[12]
The user community support includes aDiscord chat room and product support forums.[13] ATwitter account dedicated to CircuitPython news was established in 2018.[14] A newsletter, Python on Microcontrollers, is published weekly since 15 November, 2016 by Adafruit to provide news and information on CircuitPython, MicroPython, and Python on single board computers.[15] AReddit subreddit, r/CircuitPython, provides news on CircuitPython and related news and projects and has about 4,300 members.[16]
As of July 6, 2025 version 9.2.8 supports over 608 different micro controller boards[17]
The version 9.1.0 supports a range of platforms, called "ports":[18]
These ports are considered alpha and will have bugs and missing functionality:
Previous versions supported theESP8266 microcontroller, but its support was dropped in version 4.[19]
CircuitPython code may run onMicroPython orCPython using the Adafruit written Blinka compatibility layer.[20] It acts as a translation layer between CircuitPython code and underlying code. This allows CircuitPython code to run on many more devices including a wide range ofsingle-board computers which are listed on circuitpython.org.[21] It is apip installable Python library. The CircuitPython runtime is not used, as documented in the guideCircuitPython Libraries on Linux and Raspberry Pi.[22]
Adafruit has fostered a community which has contributed software libraries for more than 488 sensors and drivers.[23][24]