From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Original author(s)Adafruit Industries
Initial releaseJuly 19, 2017; 17 months ago (2017-07-19)[1]
Stable release
2.3.1 / May 7, 2018; 8 months ago (2018-05-07)[2]
Written inC[3]
PlatformCircuit Playground Express, Feather M0 Basic, Feather M0 Express, Metro M0 Express[4], Metro M4 Express, Gemma M0[5], Feather HUZZAH, Trinket M0[6], ItsyBitsy M0, ESP8266, Arduino Zero
TypePython implementation
LicenseMIT license[7]

CircuitPython[8] is an open source derivative of the MicroPython programming language targeted towards the student and beginner. Development of CircuitPython is supported by Adafruit Industries. It is a software implementation of the Python 3 programming language, written in C.[3] It has been ported to run on several modern microcontrollers.

CircuitPython is a full Python compiler and runtime that runs on the microcontroller hardware. The user is presented with an interactive prompt (the REPL) 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 Adafruit compatible products as well as higher level libraries for beginners.[9]

CircuitPython is a fork of MicroPython, originally created by Damien George.[10] The MicroPython community continues to discuss[11] forks of MicroPython into variants such as CircuitPython.

CircuitPython is targeted to be compliant with CPython, the reference implementation of the Python programming language.[12] Programs written for CircuitPython compatible boards may not run unmodified on other platforms such as the Raspberry Pi.[13]


CircuitPython is currently being used for more projects, especially for wearable technology, when in the past the code may have been done in the Arduino development environment.[14] The language has also seen uptake in making small, handheld video game devices.[15] Developer Chris Young has ported his infrared receive/transmit software to CircuitPython to provide interactivity and to aid those with accessibility issues.[16]


The user community support includes a Discord chat room and product support forums.[17] There is a published Code of Conduct for the project.[18]

For the general Python community, Adafruit has supported the Python Foundation for several years.[19][20][21]

CircuitPython support was incorporated into the Mu Python Editor.[22]

A Twitter account dedicated to CircuitPython news was established in 2018.[23]


The Applications Programming Interface (API) is documented in Read the Docs.[24]

Tutorials on CircuitPython use, including introductory guides, are available on the Adafruit company learning system.[25]


The source code for the project is available on GitHub.[26]

The current stable version is 2.3.1[27] with support for the Microchip Technology Atmel SAMD21 processor[28] and the ESP8266 microcontroller. Adafruit has announced a major revision, 3.0.0, in alpha[29] with support for the SAMD51 series processor.[30]


  1. ^ Shawcroft, Scott. "CircuitPython 1.0.0!". Adafruit Blog. Adafruit Industries. Retrieved 1 May 2018.
  2. ^ Halbert, Dan. "CircuitPython 2.3.1 Released!". Adafruit Blog. Adafruit Industries. Retrieved 8 May 2018.
  3. ^ a b "adafruit/circuitpython". GitHub. Adafruit Industries. Retrieved 2 May 2018.
  4. ^ "Adafruit Feather M0 Express - Designed for CircuitPython" (PDF). Marutsu. Adafruit. Retrieved 2 May 2018.
  5. ^ "GEMMA M0 with Circuit Python". CRCibernetica. CRCibernetica. Retrieved 2 May 2018.
  6. ^ "Adafruit Trinket M0 - for use with CircuitPython & Arduino IDE". Online Things. Floris. Retrieved 2 May 2018.
  7. ^ George, Damien P. (4 May 2014). "circuitpython/LICENSE". GitHub. Retrieved 1 May 2018.
  8. ^ "CircuitPython is an education friendly open source derivative of MicroPython". Retrieved 30 April 2018.
  9. ^ "CircuitPython". Read the Docs. Adafruit Industries. Retrieved 1 May 2018.
  10. ^ George, Damien (20 May 2016). "Damien P. George". Damien P. George. Retrieved 1 May 2018.
  11. ^ "Adafruit CircuitPython". MicroPython Forum. Retrieved 2 May 2018.
  12. ^ Lewis, James. "Circuit Python adds Python to Microcontrollers". The Bald Engineer. Retrieved 2 May 2018.
  13. ^ Ganne, Simon. "Can I use circuitPython code on my raspberry?". Element 14 Community. Element 14.
  14. ^ Cass, Stephen. "Build an Illuminated Halloween Costume With the Wearable Gemma M0 Microcontroller". IEEE Spectrum. IEEE. Retrieved 2 May 2018.
  15. ^ Dopieralski, Radomir. "CircuitPython LAMEBOY". BitBucket. BitBucket. Retrieved 2 May 2018.
  16. ^ Young, Chris (6 June 2018). "Announcing IRLibCP — a Circuit Python Module for Infrared Transmitting and Receiving". CY's Tech Talk. Chris Young. Retrieved 2 May 2018.
  17. ^ "Adafruit CircuitPython and MicroPython". Adafruit Support Forums. Adafruit Industries. Retrieved 1 May 2018.
  18. ^ "CircuitPython Contributor Code of Conduct". Read the Docs. Adafruit Industries. Retrieved 2 May 2018.
  19. ^ "About PyCon Sponsors". PYCON 2013. Python Software Foundation. 28 February 2013. Retrieved 1 May 2018.
  20. ^ "About PyCon Sponsors". PYCON 2017. Python Software Foundation. Retrieved 1 May 2018.
  21. ^ "About PYCON Sponsors". PYCON 2018. Python Software Foundation. Retrieved 1 May 2018.
  22. ^ "Mu - A Simple Python Code Editor". GitHub. Nicholas Tollervey. Retrieved 1 May 2018.
  23. ^ "CircuitPython". Twitter. Adfafruit Industries. Retrieved 1 May 2018.
  24. ^ "Adafruit CircuitPython". Read The Docs. Retrieved 1 May 2018.
  25. ^ "CIRCUITPYTHON". Adafruit Learning System. Adafruit Industries. Retrieved 1 May 2018.
  26. ^ "CircuitPython on GitHub". Retrieved 1 May 2018.
  27. ^ Halbert, Dan. "CircuitPython 2.3.1 Released!". Adafruit Blog. Adafruit Industries. Retrieved 8 May 2018.
  28. ^ Kraft, Caleb. "CircuitPython Snakes its Way onto Adafruit Hardware". Makezine. Maker Media, Inc. Retrieved 2 May 2018.
  29. ^ Shawcroft, Scott. "CircuitPython 3.0.0 Alpha 6!". Adafruit Blog. Adafruit Industries. Retrieved 1 May 2018.
  30. ^ CNXSOFT. "Microchip SAM D5x and SAM E5x ARM Cortex-M4 Micro-Controllers Launched with Optional Ethernet and CAN Bus". CNXSOFT – EMBEDDED SYSTEMS NEWS. Retrieved 1 May 2018.

External links[edit]