CircuitPython

Last updated
CircuitPython
Original author(s) Adafruit Industries
Initial releaseJuly 19, 2017;7 years ago (2017-07-19) [1]
Stable release
9.2.1 [2]   OOjs UI icon edit-ltr-progressive.svg / 20 November 2024;9 days ago (20 November 2024)
Repository https://github.com/adafruit/circuitpython
Written in C [3]
Platform Supported microcontrollers and single-board computers
Type Python implementation
License MIT license [4]
Website circuitpython.org

CircuitPython [5] is an open-source derivative of the MicroPython programming language targeted toward students and beginners. 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.

Contents

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 (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 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 compliant with CPython, the reference implementation of the Python programming language. [9] Programs written for CircuitPython-compatible boards may not run unmodified on other platforms such as the Raspberry Pi. [10]

Usage

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 his infrared transmit-and-receive software to CircuitPython to provide interactivity and to aid those with accessibility issues. [12]

Community

The user community support includes a Discord chat room and product support forums. [13] A Twitter 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] A Reddit subreddit, r/CircuitPython, provides news on CircuitPython and related news and projects and has about 4,300 members. [16]

Hardware support

The version 9.1.0 supports a range of architectures, called "ports": [17]

These ports are considered alpha and will have bugs and missing functionality:

Previous versions supported the ESP8266 microcontroller, but its support was dropped in version 4. [18]

Blinka Software Abstraction Layer

CircuitPython code may run on MicroPython or CPython using the Adafruit written Blinka compatibility layer. [19] 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 of single-board computers which are listed on circuitpython.org. [20] It is a pip installable Python library. The CircuitPython runtime is not used, as documented in the guide CircuitPython Libraries on Linux and Raspberry Pi. [21]

Modules (Libraries)

Adafruit has fostered a community which has contributed software libraries for more than 488 sensors and drivers. [22] [23]

Related Research Articles

<span class="mw-page-title-main">Python (programming language)</span> General-purpose programming language

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

CPython is the reference implementation of the Python programming language. Written in C and Python, CPython is the default and most widely used implementation of the Python language.

<span class="mw-page-title-main">PyPy</span> Alternative implementation of the Python programming language

PyPy is an implementation of the Python programming language. PyPy often runs faster than the standard implementation CPython because PyPy uses a just-in-time compiler. Most Python code runs well on PyPy except for code that depends on CPython extensions, which either does not work or incurs some overhead when run in PyPy.

<span class="mw-page-title-main">Arduino</span> Italian open-source hardware and software company

Arduino is an Italian open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while the software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

<span class="mw-page-title-main">.NET Micro Framework</span> Open source .NET platform

The .NET Micro Framework (NETMF) is a .NET Framework platform for resource-constrained devices with at least 512 kB of flash and 256 kB of random-access memory (RAM). It includes a small version of the .NET Common Language Runtime (CLR) and supports development in C#, Visual Basic .NET, and debugging using Microsoft Visual Studio. NETMF features a subset of the .NET base class libraries, an implementation of Windows Communication Foundation (WCF), a GUI framework loosely based on Windows Presentation Foundation (WPF), and a Web Services stack based on Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL). NETMF also features added libraries specific to embedded applications. It is free and open-source software released under Apache License 2.0.

<span class="mw-page-title-main">Raspberry Pi</span> Series of low-cost single-board computers

Raspberry Pi is a series of small single-board computers (SBCs) developed in the United Kingdom. The original Raspberry Pi computer was developed by the Raspberry Pi Foundation in association with Broadcom. Since 2012, all Raspberry Pi products have been developed by Raspberry Pi Ltd, which began as a wholly-owned subsidiary of the Foundation.

<span class="mw-page-title-main">Adafruit Industries</span> American electronic components and hardware distributor

Adafruit Industries is an open-source hardware company based in New York, United States. It was founded by Limor Fried in 2005. The company designs, manufactures and sells electronics products, electronics components, tools, and accessories. It also produces learning resources, including live and recorded videos about electronics, technology, and programming.

<span class="mw-page-title-main">Raspberry Pi OS</span> Debian-based operating system for Raspberry Pi

Raspberry Pi OS is a Unix-like operating system based on the Debian Linux distribution for the Raspberry Pi family of compact single-board computers. Raspbian was developed independently in 2012, became the primary operating system for these boards since 2013, was originally optimized for the Raspberry Pi 1 and distributed by the Raspberry Pi Foundation. The Raspberry Pi Foundation renamed it in 2020 as Raspberry Pi OS.

<span class="mw-page-title-main">Micro Bit</span> Single-board computer designed by the BBC for use in computer education

The Micro Bit is an open source hardware ARM-based embedded system designed by the BBC for use in computer education in the United Kingdom. It was first announced on the launch of BBC's Make It Digital campaign on 12 March 2015 with the intent of delivering 1 million devices to pupils in the UK. The final device design and features were unveiled on 6 July 2015 whereas actual delivery of devices, initially planned for September 2015 to schools and October 2015 to general public, began on 10 February 2016.

<span class="mw-page-title-main">NodeMCU</span> Open-source IoT platform

NodeMCU is a low-cost open source IoT platform. It initially included firmware which runs on the ESP8266 Wi-Fi SoC from Espressif Systems, and hardware which was based on the ESP-12 module. Later, support for the ESP32 32-bit MCU was added.

<span class="mw-page-title-main">ESP8266</span> System-on-a-chip microcontroller model with Wi-Fi

The ESP8266 is a low-cost Wi-Fi microcontroller, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.

<span class="mw-page-title-main">Thonny</span> Python IDE

Thonny is a free and open-source integrated development environment for Python that is designed for beginners. It was created by Aivar Annamaa, an Estonian programmer. It supports different ways of stepping through code, step-by-step expression evaluation, detailed visualization of the call stack and a mode for explaining the concepts of references and heap.

MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.

<span class="mw-page-title-main">ESP32</span> Low-cost, low-power SoC microcontrollers with Bluetooth and Wi-Fi

ESP32 is a series of low-cost, low-power system-on-chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, an Xtensa LX7 dual-core microprocessor, or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. Commonly found either on device specific PCBs or on a range of development boards with GPIO pins and various connectors depending on the model and manufacturer of the board.

<span class="mw-page-title-main">MySensors</span>

MySensors is a free and open source DIY software framework for wireless IoT devices allowing devices to communicate using radio transmitters. The library was originally developed for the Arduino platform.

Mongoose OS is an Internet of Things (IoT) Firmware Development Framework available under Apache License Version 2.0. It supports low power, connected microcontrollers such as: ESP32, ESP8266, TI CC3200, TI CC3220, STM32. Its purpose is to be a complete environment for prototyping, development and managing connected devices.

<span class="mw-page-title-main">Webduino</span>

The BPI Bit is an ESP32 with Xtensa 32bit LX6 single/dual-core processor based embedded system

<span class="mw-page-title-main">RP2040</span> ARM-architecture microcontroller by the Raspberry Pi Foundation

RP2040 is a 32-bit dual ARM Cortex-M0+ microcontroller integrated circuit by Raspberry Pi Ltd. In January 2021, it was released as part of the Raspberry Pi Pico board. Its successor is the RP2350 series.

<span class="mw-page-title-main">RP2350</span> ARM- and RISC-V-architecture microcontroller by the Raspberry Pi Foundation

RP2350 is a 32-bit dual ARM Cortex-M33 and Hazard3 RISC-V microcontroller integrated circuit by Raspberry Pi Ltd. In August 2024, it was released as part of the Raspberry Pi Pico 2 board.

References

  1. Shawcroft, Scott (19 July 2017). "CircuitPython 1.0.0!". Adafruit Blog. Adafruit Industries. Retrieved 1 May 2018.
  2. "Release 9.2.1". 20 November 2024. Retrieved 21 November 2024.
  3. 1 2 "adafruit/circuitpython". GitHub . Adafruit Industries . Retrieved 2 May 2018.
  4. George, Damien P. (4 May 2014). "circuitpython/LICENSE". GitHub . Retrieved 1 May 2018.
  5. "CircuitPython is an education friendly open-source derivative of MicroPython". GitHub . Retrieved 30 April 2018.
  6. "CircuitPython". Read the Docs . Adafruit Industries. Retrieved 1 May 2018.
  7. George, Damien (20 May 2016). "Damien P. George". Damien P. George. Retrieved 1 May 2018.
  8. "Adafruit CircuitPython". MicroPython Forum. MicroPython.org. Retrieved 2 May 2018.
  9. Lewis, James (14 February 2018). "Circuit Python adds Python to Microcontrollers". The Bald Engineer. Retrieved 2 May 2018.
  10. Ganne, Simon. "Can I use circuitPython code on my raspberry?". Element 14 Community. Element 14.
  11. Dopieralski, Radomir. "CircuitPython LAMEBOY". BitBucket. Retrieved 2 May 2018.
  12. 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.
  13. "Adafruit CircuitPython and MicroPython". Adafruit Support Forums. Adafruit Industries. Retrieved 1 May 2018.
  14. "CircuitPython". Twitter . Adfafruit Industries. Retrieved 1 May 2018.
  15. "The Python on Microcontrollers Newsletter". Adafruit Daily. Adafruit Industries. Retrieved 17 July 2024.
  16. "r/CircuitPython". Reddit.com. Adafruit Industries. Retrieved 17 July 2024.
  17. "CircuitPython 9.1.0". GitHub. 17 July 2024.
  18. "Why are we dropping support for ESP8266?". Adafruit.com. Adafruit Industries. Retrieved 15 April 2019.
  19. "Blinka". CircuitPython. Adafruit Industries. Retrieved 17 July 2024.
  20. "Blinka". CircuitPython. Adafruit Industries. Retrieved 17 July 2024.
  21. "CircuitPython Libraries on Linux and Raspberry Pi". Adafruit Learning System. Adafruit Industries Industries. Retrieved 17 July 2024.
  22. "Python on Microcontrollers Newsletter" . Retrieved 17 July 2024.
  23. "CircuitPython Libraries" . Retrieved 17 July 2024.