Generated by GPT-5-mini| MicroPython | |
|---|---|
| Name | MicroPython |
| Designer | Damien George |
| Developer | MicroPython developers |
| Typing | dynamic, duck |
| Influenced by | Python, C |
| License | MIT License |
MicroPython is a lean implementation of the Python programming language optimized for constrained embedded systems and microcontrollers. It provides a subset of the Python (programming language) 3.x syntax and runtime while targeting platforms such as ARM Cortex-M, ESP32, and Raspberry Pi Pico. MicroPython enables rapid prototyping and deployment for projects spanning hobbyist electronics, industrial automation, and academic research.
MicroPython offers an interactive REPL similar to the CPython interpreter and includes a compact standard library tailored for embedded development. It exposes hardware interfaces that map to peripherals like SPI, I²C, UART, GPIO, PWM, and ADC on microcontrollers such as STM32, nRF52, and Atmel SAMD21. Designed to complement systems developed with C (programming language), C++, and Rust (programming language), MicroPython integrates with build systems like Make (software), CMake, and platform-specific tools including PlatformIO and Arduino IDE.
MicroPython was created by Damien George following a successful Kickstarter campaign and has been developed by contributors associated with organizations like Open Source Initiative, Python Software Foundation, and the independent MicroPython core team. Its development history intersects with projects and events such as PyCon, FOSDEM, Hackaday, and academic labs at institutions like the Massachusetts Institute of Technology and Imperial College London. The project evolved through iterations that added support for architectures supported by vendors such as STMicroelectronics, Espressif Systems, Raspberry Pi Foundation, and Nordic Semiconductor.
MicroPython implements key features from Python (programming language) including list comprehensions, generators, decorators, and exception handling while omitting or adapting components like the full Unicode database and some threading primitives for resource constraints. It supports a bytecode VM and a native code emitter, offering options comparable to Just-in-time compilation strategies and ahead-of-time approaches used by GCC and LLVM. The runtime provides garbage collection, memoryviews, and modules for date/time influenced by POSIX semantics. Developers often interoperate with C libraries using APIs similar to those used by CPython extension modules and embed MicroPython into firmware alongside RTOSes like FreeRTOS and Zephyr (operating system).
MicroPython runs on a variety of hardware platforms including boards from Adafruit, SparkFun, Seeed Studio, and the Raspberry Pi Foundation product line. Supported microcontrollers include families from STMicroelectronics (STM32), Espressif Systems (ESP8266, ESP32), Microchip Technology (SAM D20/D21), and Nordic Semiconductor (nRF51/nRF52). The porting process uses toolchains such as GCC (GNU Compiler Collection), arm-none-eabi-gcc, and build systems tied to Git, GitHub, and continuous integration services like Travis CI and GitLab CI/CD. Hardware abstraction enables compatibility with peripheral stacks and boards compliant with standards embraced by projects like CircuitPython and vendor-specific SDKs from Espressif Systems and STMicroelectronics.
MicroPython is used in applications across embedded control, Internet of Things deployments, wearable devices, and education. Representative deployments include sensor nodes communicating via MQTT to brokers like Mosquitto, edge devices processing data for TensorFlow Lite inference, robotics projects leveraging frameworks such as ROS (Robot Operating System), and environmental monitoring systems connected to platforms like ThingSpeak. It supports connectivity options including Bluetooth Low Energy, Wi‑Fi, and wired interfaces that integrate with cloud providers like Amazon Web Services, Microsoft Azure, and Google Cloud Platform through gateway adapters. Educational initiatives use MicroPython in curricula at organizations such as CoderDojo, Make School, and university courses at Stanford University and ETH Zurich.
The MicroPython ecosystem comprises contributors, maintainers, and companies contributing code, documentation, and hardware. Community channels include mailing lists, the MicroPython forums, and events at conferences like PyCon, EuroPython, Maker Faire, and Embedded World. Third-party libraries and bindings are distributed through package systems and repositories hosted on GitHub, GitLab, and package registries similar to PyPI in format. Commercial support and products are offered by firms such as Adafruit Industries, Pimoroni, Seeed Studio, and consulting groups specializing in embedded software. Educational resources and books have been published by authors associated with publishers like O'Reilly Media and No Starch Press.