CircuitPython

Last updated
CircuitPython
Original author(s) Adafruit Industries
Initial releaseJuly 19, 2017;6 years ago (2017-07-19) [1]
Stable release
8.2.9 [2]   OOjs UI icon edit-ltr-progressive.svg / 6 December 2023;20 days ago (6 December 2023)
Repository https://github.com/adafruit/circuitpython
Written in C [3]
Platform microcontroller and single-board computers using the Atmel SAMD21, Atmel SAMD51, Nordic nRF52840, STMicro STM32, and ESP32, ARMmicrocontrollers, from Adafruit, SparkFun, Arduino, Particle, Raspberry Pi and others
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 Hardware, 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 3,000 members. [16]

Hardware support

The version 6.2.0 supports Atmel SAMD21 and SAMD51 microcontrollers from Microchip Technology, [17] nRF52833 and nRF52840 from Nordic Semiconductor, CXD5602 (Spresense) from Sony, and STM32 F4-series from STMicroelectronics. [18] Previous versions supported the ESP8266 microcontroller, but its support was dropped in version 4. [19] It also supports single-board computers like Raspberry Pi.

Related Research Articles

<span class="mw-page-title-main">Microcontroller</span> Small computer on a single integrated circuit

A microcontroller or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs along with memory and programmable input/output peripherals. Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips.

Bytecode is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.

<span class="mw-page-title-main">Embedded software</span> Computer software written to control machines not typically thought of as computers

Embedded software is computer software, written to control machines or devices that are not typically thought of as computers, commonly known as embedded systems. It is typically specialized for the particular hardware that it runs on and has time and memory constraints. This term is sometimes used interchangeably with firmware.

<span class="mw-page-title-main">Parallax Propeller</span> Multi-core microcontroller

The Parallax P8X32A Propeller is a multi-core processor parallel computer architecture microcontroller chip with eight 32-bit reduced instruction set computer (RISC) central processing unit (CPU) cores. Introduced in 2006, it is designed and sold by Parallax, Inc.

<span class="mw-page-title-main">Arduino</span> Open-source hardware and software platform

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">WikiReader</span> Portable device containing the entire contents of Wikipedia for an offline usage

WikiReader was a project to deliver an offline, text-only version of Wikipedia on a mobile device. The project was sponsored by Openmoko and made by Pandigital, and its source code has been released.

<span class="mw-page-title-main">Limor Fried</span> American electrical engineer

Limor Fried is an American electrical engineer and owner of the electronics hobbyist company Adafruit Industries. She is influential in the open-source hardware community, having participated in the first Open Source Hardware Summit and the drafting of the Open Source Hardware definition, and is known by her moniker ladyada, an homage to Lady Ada Lovelace.

<span class="mw-page-title-main">Raspberry Pi</span> Series of low-cost single-board computers used for educational purposes and embedded systems

Raspberry Pi is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. Since 2013, Raspberry Pi devices have been developed and supported by a subsidiary of the Raspberry Pi Foundation, now named Raspberry Pi Ltd. The Raspberry Pi project originally leaned toward the promotion of teaching basic computer science in schools. The original model became more popular than anticipated, selling outside its target market for uses such as robotics. It is widely used in many areas, such as for weather monitoring, because of its low cost, modularity, and open design. It is typically used by computer and electronic hobbyists, due to its adoption of the HDMI and USB standards.

<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.

ArduPilot is an open source, unmanned vehicle Autopilot Software Suite, capable of controlling autonomous:

<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. First developed independently in 2012, it has been produced as the primary operating system for these boards since 2013, distributed by the Raspberry Pi Foundation.

<span class="mw-page-title-main">Salvius (robot)</span>

Salvius is an open source humanoid robot built in the United States in 2008, the first of its kind. Its name is derived from the word 'salvaged', being constructed with an emphasis on using recycled components and materials to reduce the costs of designing and construction. The robot is designed to be able to perform a wide range of tasks due to its humanoid body structure planning. The primary goal for the Salvius project is to create a robot that can function dynamically in a domestic environment.

<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 microchip, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.

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">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.

Espruino is an open-source JavaScript interpreter for single board microcontrollers. It is designed for devices with small amounts of RAM.

<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.

References

  1. Shawcroft, Scott (19 July 2017). "CircuitPython 1.0.0!". Adafruit Blog. Adafruit Industries. Retrieved 1 May 2018.
  2. "Release 8.2.9". 6 December 2023. Retrieved 19 December 2023.
  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. 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 Hardware Newsletter". Adafruit Daily. Adafruit Industries. Retrieved 24 March 2022.
  16. "r/CircuitPython". Reddit.com. Adafruit Industries. Retrieved 24 March 2022.
  17. Kraft, Caleb (11 August 2017). "CircuitPython Snakes its Way onto Adafruit Hardware". Makezine. Maker Media, Inc. Retrieved 2 May 2018.
  18. Halbert, Dan (5 April 2021). "CircuitPython 6.2.0 released!". Adafruit Blog. Adafruit Industries. Retrieved 20 April 2021.
  19. "Why are we dropping support for ESP8266?". Adafruit.com. Adafruit Industries. Retrieved 15 April 2019.