MicroPython

A lean and efficient Python implementation for microcontrollers and constrained systems.

Features

  • highly configurable due to many compile-time configuration options
  • support for many architectures (x86, x86-64, ARM, ARM Thumb, Xtensa)
  • extensive test suite with over 590 tests, and more than 18,500 individual testcases
  • code coverage at 98.4% for the core and at 96.3% for the core plus extended modules
  • fast start-up time from boot to loading of first script (150 microseconds to get to boot.py, on PYBv1.1 running at 168MHz)
  • a simple, fast and robust mark-sweep garbage collector for heap memory
  • a MemoryError exception is raised if the heap is exhausted
  • a RuntimeError exception is raised if the stack limit is reached
  • support for running Python code on a hard interrupt with minimal latency
  • errors have a backtrace and report the line number of the source code
  • constant folding in the parser/compiler
  • pointer tagging to fit small integers, strings and objects in a machine word
  • transparent transition from small integers to big integers
  • support for 64-bit NaN boxing object model
  • support for 30-bit stuffed floats, which don’t require heap memory
  • a cross-compiler and frozen bytecode, to have pre-compiled scripts that don’t take any RAM (except for any dynamic objects they create)
  • multithreading via the “_thread” module, with an optional global-interpreter-lock (still work in progress, only available on selected ports)
  • a native emitter that targets machine code directly rather than the bytecode virtual machine
  • inline assembler (currently Thumb and Xtensa instruction sets only)

Resource

  • micropython-lib. Core Python libraries ported to MicroPython.
  • MaixPy. MicroPython for K210 RISC-V, let’s play with edge AI easier.
  • mu. A small, simple editor for beginner Python programmers. Written in Python and Qt5..
  • PikaPython. An ultra-lightweight Python interpreter that runs with only 4KB of RAM, zero dependencies. It is ready to use out of the box without any configuration required and easy to extend with C. Similar project: MicroPython, JerryScript..
  • trezor-firmware. :lock: Trezor Firmware Monorepo.
  • kmk_firmware. Clackety Keyboards Powered by Python.
  • awesome-micropython. A curated list of awesome MicroPython libraries, frameworks, software and resources..
  • MicroPython_ESP32_psRAM_LoBo. MicroPython for ESP32 with psRAM support.
  • picotui. Lightweight, pure-Python Text User Interface (TUI) widget toolkit with minimal dependencies. Dedicated to the Pycopy project..
  • pycopy. Pycopy - a minimalist and memory-efficient Python dialect. Good for desktop, cloud, constrained systems, microcontrollers, and just everything..
  • microdot. The impossibly small web framework for Python and MicroPython..
  • wasp-os. A MicroPython based development environment for smart watches (including Pine64 PineTime).
  • Python-For-Kids. A FREE comprehensive online Python development tutorial FOR KIDS utilizing an official BBC micro:bit Development Board going step-by-step into the world of Python for microcontrollers..
  • awesome-esp. 📶 A curated list of awesome ESP8266/32 projects and code.
  • micropython-async. Application of uasyncio to hardware interfaces. Tutorial and code..
  • MicroWebSrv. A micro HTTP Web server that supports WebSockets, html/python language templating and routing handlers, for MicroPython (used on Pycom modules & ESP32).
  • MaixPy_scripts. micropython scripts for MaixPy.
  • MicroWebSrv2. The last Micro Web Server for IoTs (MicroPython) or large servers (CPython), that supports WebSockets, routes, template engine and with really optimized architecture (mem allocations, async I/Os). Ready for ESP32, STM32 on Pyboard, Pycom’s chipsets (WiPy, LoPy, …). Robust, efficient and documented!.
  • micropython. Port of MicroPython for the BBC micro:bit.
  • awesome-circuitpython. A curated list of awesome CircuitPython guides, videos, libraries, frameworks, software and resources..
  • pyboard. The MicroPython board.
  • picoweb. Really minimal web application framework for the Pycopy project (minimalist Python dialect) and its “uasyncio” async framework.
  • intellij-micropython. Plugin for MicroPython devices in PyCharm and IntelliJ.
  • st7789_mpy. Fast MicroPython driver for ST7789 display module written in C.
  • micropython-samples. Assorted code ideas, unofficial MP FAQ, plus index to my other repositories..
  • micropython-ulab. a numpy-like fast vector module for micropython, circuitpython, and their derivatives.
  • Broccoli. Broccoli - distributed task queues for ESP32 cluster.
  • ESP32-MPY-Jama. v1.2 - UI tool for manage Espressif ESP32 microcontrollers with embedded MicroPython for MacOS, Windows and Linux: mini IDE, files manager, REPL, real time dashboards (sys/net), advanced features (gpio/mp3/leds/…).
  • EuroPi. EuroPi: A reprogrammable Eurorack module based on the Raspberry Pi Pico.
  • esp8266_honeypot. THE ESP8266 HONEYPOT.
  • micropython-camera-driver. add camera support to MicroPython.
  • micropython-font-to-py. A Python 3 utility to convert fonts to Python source capable of being frozen as bytecode.
  • micropyGPS. A Full Featured GPS NMEA-0183 sentence parser for use with Micropython and the PyBoard embedded platform.
  • WiFiManager. WiFi manager for ESP8266 - ESP12 - ESP32 - micropython .
  • micropython-fusion. Sensor fusion calculating yaw, pitch and roll from the outputs of motion tracking devices.
  • badgy. Home of Badgy - IoT Badge.
  • modular-psu. EEZ Bench Box 3 (BB3) Modular T&M chassis.
  • micropython-waveshare-epaper. MicroPython drivers for Waveshare e-paper modules.
  • python-mocket. a socket mock framework - for all kinds of socket animals, web-clients included.
  • micropy-cli. Micropython Project Management Tool with VSCode support, Linting, Intellisense, Dependency Management, and more!.
  • micropython-mpu9x50. Drivers for InvenSense inertial measurement units MPU9250, MPU9150, MPU6050.
  • lib-python. Blynk IoT library for Python and Micropython.
  • hydrabus. HydraBus an open source multi-tool hardware for researcher, hackers, students, embedded software developers or anyone interested in debugging/hacking/developing/penetration testing.
  • pycopy-lib. Standard library of the Pycopy project, minimalist and light-weight Python language implementation.
  • micropython-rotary. MicroPython module to read a rotary encoder. .
  • tinyweb. Simple and lightweight HTTP async server for micropython.
  • frosted. Frosted: Free POSIX OS for tiny embedded devices.
  • belay. Belay is a python library that enables the rapid development of projects that interact with hardware via a micropython-compatible board..
  • pi_pico_neopixel. Pi Pico library for NeoPixel led-strip written in MicroPython. Works with ws2812b (RGB) and sk6812 (RGBW)..
  • micropython-raspberrypi. bare metal Raspberry Pi Zero / Zero W port of MicroPython.
  • lv_binding_micropython. LVGL binding for MicroPython.
  • MicroPico. MicroPico (aka Pico-W-Go) is a Visual Studio Code extension designed to simplify and speed up the development of MicroPython projects for the Raspberry Pi Pico and Pico W boards..
  • awesome-micropython. Curated list of awesome MicroPython resources.
  • MicroMLP. A micro neural network multilayer perceptron for MicroPython (used on ESP32 and Pycom modules).
  • lab-micropython-editor. Arduino Lab for MicroPython is an Integrated Development Environment (IDE) for MicroPython..
  • st7789_mpy. Fast pure-C driver for MicroPython that can handle display modules on ST7789 chip.
  • micropython-max7219. MicroPython driver for MAX7219 8x8 LED matrix modules, cascadable and with framebuf.
  • monocle-micropython. Micropython ported to the Monocle.
  • micropython-tm1637. MicroPython driver for TM1637 quad 7-segment LED modules.
  • MicroPythonBLEHID. Human Interface Device (HID) over Bluetooth Low Energy (BLE) GATT library for MicroPython..
  • micropython-i2s-examples. Examples for I2S support on microcontrollers that run MicroPython.
  • jupyter_micropython_kernel. Jupyter kernel to interact with a MicroPython/ESP8266 over the serial REPL.
  • MicroPython-ST7735. ST7735 TFT LCD driver for MicroPython.
  • flowshutter. Firmware for FC based gyro logger device.
  • micropython-stubber. Generate and use stubs for different micropython firmwares to use with vscode and pylance or pylint.
  • MicroPython_K210_LoBo. MicroPython implementation for Kendryte K210.
  • smolOS. smolOS - a tiny and simple 🧪 research ⚙️ operating system ⌨️ written in 🐍 MicroPython for microcontrollers giving user a POSIX-like 📁 environment and 🧰 tools to play..
  • BIPES. BIPES: Block based Integrated Platform for Embedded Systems allows text and block based programming for several types of embedded systems and Internet of Things modules using MicroPython, CircuitPython, Python or Snek. You can connect, program, debug and monitor several types of boards using network, USB or Bluetooth. No software install needed!.
  • ebusd-esp. Firmware for ESP8266 allowing eBUS communication for ebusd (https://github.com/john30/ebusd).
  • mpython. mpython掌控板文档和固件源码.
  • uPyCam. Take a photo with an ESP32-CAM running MicroPython.
  • micropython-wrap. API for interop between C/C++ and MicroPython.
  • micropython-mpu9250. MicroPython I2C driver for MPU9250 9-axis motion tracking device.
  • NI-PYT. Materiály k předmětu NI-PYT na FIT ČVUT.
  • mqboard. Micro Framework for MicroPython Boards Managed via MQTT.
  • MicroPython_Examples. MicroPython Examples For 01Studio Development Board.
  • pysmartnode. Micropython Smarthome framework.
  • BLACK_F407VE. MicroPython board definition for the MCUDev Black STM32F407VET6 board.
  • micropython-esp32-ulp. ESP32 ULP Co-Processor toolchain implemented in MicroPython.
  • tulipcc. The Tulip Creative Computer - a portable Python device for music, graphics and writing.
  • OBJEX_LINK. OBJEX Link is a modular IoT board. It is designed to develop IoT devices that are easy to repair and recycle. It is also perfect for rapid prototyping and developing research and robotics projects..
  • uReflowOven-Esp32-Micropython. μReflow Oven controller based on ESP32 with MicroPython & LVGL.
  • encodermenu. Simple GUI menu for micropython using a rotary encoder and basic display..
  • pico-web-server-control. A simple and efficient MicroPython web server designed for Raspberry Pi Pico, ESP8266, ESP32, allowing seamless control of microcontroller projects via a web browser..
  • st7789py_mpy. Driver for 320x240, 240x240 and 135x240 ST7789 displays written in MicroPython.
  • micropython-stm-lib. A collection of modules and examples for MicroPython..
  • 1ZLAB_PyEspCar. 1ZLab在准备挑选合适的小车来研发计算机视觉的教程时候 , 发现习惯了Python语法的我们, 在市面上找不到合适小车, 后来我们选了ESP32作为小车的控制主板, 可以使用Python对其进行交互式编程, 极大的提升了开发效率..
  • Firmware. ESP32 firmware for the SHA2017 badge.
  • micropython-stubs. Stubs of most MicroPython ports, boards and versions to make writing code that much simpler..
  • esp32-cam-micropython. Micropython esp32-cam.
  • uble. Lightweight Bluetooth Low Energy driver written in pure python for micropython.
  • microhomie. MicroPython implementation of the Homie MQTT convention for IoT..
  • micropython-m5stack. MicroPython Kitchen Sink for M5Stack.
  • coffee-scale-app. Firmware and Progressive Web App to connect to a DIY bluetooth enabled coffee and espresso scale..
  • micrOS. micrOS - mini automation OS for DIY projects. .
  • esp8266. This repository contains source code for the ESP8266..
  • senko. 🦊 Simplest OTA update solution for your Micropython projects..
  • PyDOS. DOS-like OS for microcontroller boards running Micropython or Circuitpython.