HOME

TheInfoList



OR:

CircuitPython is an open-source derivative of the
MicroPython 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. MicroPython consists of a Python compiler to bytecode and a runtime interpreter o ...
programming language targeted toward students and beginners. Development of CircuitPython is supported by
Adafruit Industries Adafruit Industries is an open-source hardware company based in New York City, New York, United States. It was founded by Limor Fried in 2005. The company designs, manufactures and sells Electronic Products, electronics products, electronics comp ...
. It is a
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
implementation of the
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
, written in C. It has been ported to run on several modern
microcontroller A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
s. 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. CircuitPython is a fork of MicroPython, originally created by Damien George. The MicroPython community continues to discuss forks of MicroPython into variants such as CircuitPython. CircuitPython is targeted to be compatible with
CPython 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. CPython can be defined as both an interpreter and a comp ...
, the reference implementation of the Python programming language. Programs written for CircuitPython-compatible boards may not run unmodified on other platforms such as the
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
.


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 A handheld game console, or simply handheld console, is a small, portable self-contained video game console with a built-in screen, game controls and speakers. Handheld game consoles are smaller than home video game consoles and contain the con ...
devices. Developer Chris Young has ported his
infrared Infrared (IR; sometimes called infrared light) is electromagnetic radiation (EMR) with wavelengths longer than that of visible light but shorter than microwaves. The infrared spectral band begins with the waves that are just longer than those ...
transmit-and-receive software to CircuitPython to provide interactivity and to aid those with accessibility issues.


Community

The user community support includes a
Discord Discord is an instant messaging and Voice over IP, VoIP social platform which allows communication through Voice over IP, voice calls, Videotelephony, video calls, text messaging, and digital media, media. Communication can be private or take ...
chat room and product support forums. A
Twitter Twitter, officially known as X since 2023, is an American microblogging and social networking service. It is one of the world's largest social media platforms and one of the most-visited websites. Users can share short text messages, image ...
account dedicated to CircuitPython news was established in 2018. 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. A
Reddit Reddit ( ) is an American Proprietary software, proprietary social news news aggregator, aggregation and Internet forum, forum Social media, social media platform. Registered users (commonly referred to as "redditors") submit content to the ...
subreddit, r/CircuitPython, provides news on CircuitPython and related news and projects and has about 4,300 members.


Hardware support

The version 9.1.0 supports a range of platforms, called "ports": * atmel-samd:
Microchip An integrated circuit (IC), also known as a microchip or simply chip, is a set of electronic circuits, consisting of various electronic components (such as transistors, resistors, and capacitors) and their interconnections. These components a ...
SAMD21, SAMx5x * cxd56: Sony Spresense * espressif: Espressif
ESP32 ESP32 is a family of low-cost, energy-efficient microcontrollers that integrate both Wi-Fi and Bluetooth capabilities. These chips feature a variety of processing options, including the Tensilica Xtensa LX6 microprocessor available in both dual-c ...
, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C6 * nordic: Nordic nRF52840, nRF52833 * raspberrypi:
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
RP2040, RP2350 * stm: ST STM32F4 chip family These ports are considered alpha and will have bugs and missing functionality: * broadcom:
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
boards such as RPi 4, RPi Zero 2W (
bare metal In information technology, bare machine (or bare-metal computer) is a computer which has no operating system. The software executed by a bare machine, commonly called a "bare metal program" or "bare metal application", is designed to interact dir ...
) * litex: fomu * mimxrt10xx: NXP i.MX RT10xxx * renode: hardware simulator * silabs: Silicon Labs MG24 family * stm: ST non-STM32F4 chip families Previous versions supported the ESP8266 microcontroller, but its support was dropped in version 4.


Blinka Software Abstraction Layer

CircuitPython code may run on
MicroPython 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. MicroPython consists of a Python compiler to bytecode and a runtime interpreter o ...
or
CPython 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. CPython can be defined as both an interpreter and a comp ...
using the Adafruit written Blinka compatibility layer. 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 computer A single-board computer (SBC) is a complete computer built on a single circuit board, with microprocessor(s), memory, input/output (I/O) and other features required of a functional computer. Single-board computers are commonly made as demonst ...
s which are listed on circuitpython.org. 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''.


Modules (Libraries)

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


References


External links

* * • Tutorials by Tony DiCola / Adafruit {{Python (programming language) Microcontroller software Python (programming language) Free software programmed in C Software using the MIT license