MicroPython

repo: mcauser/awesome-micropython
category: Programming Languages related: Python · Electronics


A curated list of awesome MicroPython libraries, frameworks, software and resources.

MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.

Contents

Libraries

Other places you can look for MicroPython Libraries:

AI

Audio

Communications

APIs

Authentication

  • [micropython-firebase-auth](https://github.com/WoolDoughnut310/micropython-firebase-auth) - Firebase Auth implementation for MicroPython.

Bluetooth

CAN

Compression

  • ufastlz - MicroPython wrapper for FastLZ, a lightning-fast lossless compression library.
  • tamp - A low-memory, MicroPython-optimized, DEFLATE-inspired lossless compression library.
  • micropython-zipfile - Read/write ZIP archive files. Ported from CPython, supports DEFLATE compression.
  • bitstruct-micropython - MicroPython port of bitstruct.

Cryptography

  • ucryptography - Lightweight porting of pyca/cryptography to MicroPython based on ARM Mbed TLS.
  • mpyaes - MicroPython module for AES encryption.
  • micropython-aes - AES algorithm with pure python implementation.
  • ucrypto - MicroPython package for doing fast RSA and elliptic curve cryptography, specifically digital signatures. ECDSA API design inspired from fastecdsa and implementation based on tomsfastmath.
  • ucryptoauthlib - Lightweight driver for Microchip Crypto Authentication secure elements written in pure Python for MicroPython.
  • embit - A minimal Bitcoin library for MicroPython and Python 3 with a focus on embedded systems.
  • microotp - An ESP8266 MicroPython OTP Generator.
  • micropython-rsa-signing - RSA signing on MicroPython.
  • micropython-cryptomsg - A MicroPython module to encrypt and decrypt messages with AES CBC mode.
  • mprsa - A MicroPython module for creating, importing, and exporting RSA keys in DER and PEM formats with PKCS#1, PKCS#8, and X.509/SPKI structures, and signing/verifying and encryption/decryption using blinding and SHA-1 and SHA-256 hashing algorithms.
  • mpy-mbedtls - MicroPython bindings for some MbedTLS EC and x509 cert/csr functions.
  • micropython-cryptocfb - A Python module to encrypt and decrypt data with AES-128 CFB mode.
  • tscp - An endpoint-to-endpoint encryption based on Diffie-Hellman-Merkle with TLS1.3 styled handshake using MicroPython.
  • usigv4 - A minimal AWS signature version 4 (SigV4) implementation for MicroPython/embedded use.

DNS

  • aiodns - A small, versatile DNS client that provides an async version of getaddrinfo and works with any connectivity.
  • ICantBelieveItsNotDNS - "I Can't Believe It's Not DNS!" (ICBIND) is an authoritative DNS server for the ESP8266 written in MicroPython.
  • MicroDNSSrv - A micro DNS server for MicroPython to simply respond to A queries on multi-domains with or without wildcards (used on Pycom modules & ESP32).
  • tinydns - Very simple DNS async server for MicroPython.
  • micropython-captiveportal - Minimal async captive portal for MicroPython (compatible with uasyncio v3/MicroPython 1.13+ as well as earlier versions).
  • Micropython-DNSServer-Captive-Portal - MicroPython WiFi AP Captive Portal with DNS and Web Server.

ESP-NOW

Ethernet

FTP

GPS

GSM

HTTP

  • mrequests - A HTTP client module (not only) for MicroPython with an API similar to requests.
  • uht - Lightweight HTTP server for MicroPython (serve websites and handle requests).

IoT

  • aiomqttc - Asynchronous MQTT Client for MicroPython AND CPython.
  • microhomie - MicroPython implementation of the Homie MQTT convention for IoT.
  • uPyEcho - Emulated Belkin WeMo device that works with Amazon Echo (Alexa) using MicroPython on an ESP32.
  • SonosRemote - A remote for Sonos installations running on an ESP8266 and using Sonos HTTP API.
  • micropython-home-assistant - MicroPython-based scripts to extend your Home Assistant-driven home automation projects.
  • micropython-iot - An approach to designing IoT applications using ESP8266, ESP32 or Pyboard D endpoints.
  • [iot-core-micropython](https://github.com/GoogleCloudPlatform/iot-core-micropython) - Use MicroPython to connect to Google Cloud IoT Core.
  • SmartUPy - Controlling "Tuya-type" smart power outlets using MicroPython.
  • aws-iot-GET-POST-loop - MicroPython code which uses the AWS IoT REST API to GET/POST device state info.
  • [sensor-mqtt-homeassistant](https://github.com/DougWilkinson/sensor-mqtt-homeassistant) - An ESP8266/ESP32 MicroPython-based sensor platform for GPIO, DHT, analog, LED and more. Includes remote updates for .py code from web server and MQTT/Home Assistant integration.
  • [micropython-ha-mqtt-device](https://github.com/agners/micropython-ha-mqtt-device) - MicroPython module which allows creating Entites for HomeAssistant using MQTT Discovery.
  • ESP8266-Home-Assistant-Smart-Socket - This MicroPython project is to hack a Hyleton313 cheap WiFi smart socket.
  • ESP8266-Home-Assistant-RGB-Bulb - This MicroPython project is to hack a TYWE3S board in a cheap WiFi RGB Bulb.
  • uPyIoT - Connect an M5Stack ATOM running MicroPython to the Google Cloud Platform (GCP) to collect air-quality variables obtained from reading sensors.
  • micropython-switchbot-thermometer-hygrometer - Read SwitchBot Thermometer/Hygrometer via Bluetooth.

IR

LoRa

LoRaWAN

MDNS

Modbus

  • micropython-modbus - MicroPython port of modbus-tk.
  • micropython-modbus - Modbus Master library for MicroPython ESP32 devices. Based on pycom-modbus from Pycom.
  • mp_modbus - Modbus library for MicroPython.
  • micropython-modbus - ModBus TCP and RTU library supporting client and host mode. Based on pycom-modbus from Pycom.

MQTT

  • micropython-mqtt - A 'resilient' asynchronous MQTT client: recovers from WiFi and broker outages.
  • MQBoard - A micro-framework for using MQTT with asyncio on MicroPython boards, primarily on the ESP32.
  • pysmartnode - MicroPython Smart Home framework.
  • umqtt_aws_iot - Publish UMQTT messages with MicroPython to AWS IoT.
  • [sonoff-mqtt by davea](https://github.com/davea/sonoff-mqtt) - MicroPython scripts to control Sonoff/ESP8266 using MQTT.
  • micropython-sonoff-switch - Implements an MQTT-controllable switch for the iTead Sonoff Switch using MicroPython.
  • [micropython-thingspeak-mqtt-esp8266](https://github.com/miketeachman/micropython-thingspeak-mqtt-esp8266) - Publish and Subscribe to ThingSpeak using MQTT with MicroPython running on ESP8266/ESP32 platforms.
  • uMQTT - MQTT publish for MicroPython on the WiPy board.
  • micropython-mqtt - Async MQTT library with auto reconnect for MicroPython devices such as the ESP32 or Pycom devices.
  • [micropython-adafruit-mqtt-esp8266](https://github.com/miketeachman/micropython-adafruit-mqtt-esp8266) - Using MQTT to Publish/Subscribe to Adafruit IO. MicroPython/CircuitPython implementation on ESP8266/ESP32.
  • mqtt_upython - MQTT Client using MicroPython on ESP8266.
  • tinymqtt - Async MQTT client for MicroPython.
  • [micropython-mqtt-thingspeak](https://github.com/miketeachman/micropython-mqtt-thingspeak) - Publish and Subscribe to ThingSpeak using MQTT with MicroPython.
  • micropython-sparkplugb - MicroPython compatible implementation of the Eclipse Sparkplug B Specification.

NBD

  • unbd - Micro implementation of network block device (NBD) for MicroPython.

NFC

NTP

Object Storage

  • uminio - MicroPython library to upload files into a MinIO object storage server.

OneWire

  • Official OneWire - For devices using the OneWire bus, eg Dallas DS18x20.
  • Onewire_DS18X20 - Classes for driving the DS18x20 sensor with the OneWire protocol for Pycom MicroPython.
  • micropython_arduino_control - MicroPython library to control an Arduino remotely, with corresponding Arduino code.

Onkyo EISCP

  • eiscp-micropython - MicroPython port for the Onkyo-EISCP protocol used, among others, by Pioneer.

OTA

Proxy

  • uProxy - An asyncio-based, memory-efficient HTTP/HTTPS/SOCKS4/SOCKS5 forward proxy server for MicroPython, compatible with CPython.

Radio

RC receiver

REPL

  • webrepl - MicroPython WebREPL.
  • zepl - MicroPython WebREPL Console Application using ZeroMQ.
  • jupyter_micropython_remote - Jupyter kernel to directly execute code on a MicroPython board over the serial/web REPL.
  • FBConsole - Framebuffer console class for MicroPython.

RFID

RPC

RTC

Serial

  • mpy-miniterm - Tool for seamless serial debug and file synchronisation with MicroPython devices via the serial REPL.
  • MicroPython-MorseCode - International Morse Code using a microcontroller with MicroPython.
  • I2C Slave - Uses the Pyboard's I2C slave mode to implement a full duplex asynchronous link. Principal use case is for ESP8266 which has only one UART.
  • microSDI12 - A mini SDI-12 implementation for getting sensor info over RS-485.

Serialization

  • micropython-msgpack - MessagePack serialisation library optimised for MicroPython.
  • micropython-uprotobuf - A lightweight implementation of Google's Protocol Buffers (protobuf) for MicroPython.
  • minipb - Mini Protobuf {de}serializer in pure Python.
  • ucbor - Lightweight implementation of cbor for MicroPython.
  • upy-msgpack - A lightweight MessagePack (de)serialization library (not only) for MicroPython.
  • micropython-msgpack - MessagePack serialisation library optimised for MicroPython.

SMTP

  • uMail - A lightweight, scalable SMTP client for sending email in MicroPython.

Sockets

  • XAsyncSockets - XAsyncSockets is an efficient Python/MicroPython library of managed asynchronous sockets.

SOCKS

TCP

  • us2n - MicroPython bridge between UART and TCP for the ESP32.

Telnet

  • MicroTelnetServer - Simple telnet server for MicroPython and the ESP8266 allowing telnet clients access to the REPL.
  • telnetd - Powerful telnetd server to access MicroPython REPL (with strong password support, and unlimited connections).

Text-to-Speech

Time

  • ustrftime - A MicroPython implementation of time.strftime.

VoIP

  • uPyVoip - VoIP for MicroPython ESP32 with Interactive Voice Response.

Web

  • MicroWebSrv - A micro HTTP web server that supports WebSockets, HTML/Python language templating and routing handlers, for MicroPython (used on Pycom modules & ESP32).
  • MicroWebSrv2 - The last micro web server for IoTs (MicroPython) or large servers (CPython), that supports WebSocket, routes, template engine and with really optimized architecture (mem allocations, async I/Os).
  • tinyweb - Simple and lightweight HTTP async server for MicroPython.
  • upy-websocket-server - MicroPython (ESP8266) WebSocket server implementation.
  • micropython-captive-portal - A captive portal demo for MicroPython.
  • uPyPortal - A captive portal for MicroPython using ESP32 (Wemos).
  • ESP8266WebServer - ESP8266 web server for MicroPython.
  • microCoAPy - A mini client/server implementation of CoAP (Constrained Application Protocol) into MicroPython.
  • micropyserver - MicroPyServer is a simple HTTP server for MicroPython projects.
  • MicroRESTCli - A micro JSON REST web client based on MicroWebCli for MicroPython (used on Pycom modules & ESP32).
  • micropython-noggin - A very simple web server for MicroPython.
  • uwebsockets - MicroPython WebSocket implementation for ESP8266.
  • microdot - The impossibly small web framework for MicroPython.
  • micropython-nanoweb - Full async MicroPython web server with small memory footprint.
  • MicroWebCli - A micro HTTP web client for MicroPython (used on Pycom modules & ESP32).
  • micropython-configserver - Captive portal for MicroPython including a dumb DNS server and a web server to configure WiFi networks.
  • micropython-aioweb - A minimalist asyncio web framework for MicroPython.
  • thimble - A tiny web framework for MicroPython.
  • CaptiveWebServer - Simple MicroPython web server for serving a website from a captive portal.
  • micropython-urouter - A lightweight HTTP request routing processing support library based on MicroPython. The previous name was micro-route.
  • wlan-relays - Very simple HTTP server written in MicroPython for controlling the pins of an ESP32 board.
  • micropidash – Simple web dashboard served directly from MicroPython boards (ESP32, Pico W).
  • microsky - A Bluesky client for Python and MicroPython.

WiFi

Zigbee

  • ZbPy - MicroPython IEEE802.15.4 / Zigbee parser.

Cryptography

Historical

  • enigmapython - A simple yet faithful library to emulate different Enigma machines models using MicroPython.

Display

E-Paper

Fonts

  • micropython-font-to-py - A Python 3 utility to convert fonts to Python source capable of being frozen as bytecode.
  • writer - A simple way to render above Python fonts to displays whose driver is subclassed from framebuf.
  • ssd1306big - A font for MicroPython on 128x64 pixel SSD1306 OLED display.
  • framebuf2 - MicroPython FrameBuffer extension: larger and rotated font, triangles and circles.
  • micropython_GT30L24T3Y_big5_font - MicroPython driver for reading BIG-5 Chinese characters from GT30L24T3Y / ER3303-1 SPI module.
  • ttgo-hershey-fonts - MicroPython Hershey font demo for the TTGO-LCD board.
  • packed-font - Memory efficient MicroPython fonts for the Pico Pi and SSD1306 OLED Display.
  • microfont - Text drawing library for MicroPython framebuffer.

Graphics


truncated — full list on GitHub

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?