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:
- PyPi
- This filter shows just the MicroPython libraries on PyPi. Note: You
cannot
pip install MicroPython libraries. See the MicroPython
docs for more information on managing packages with
MicroPython.
- GitHub Search
- Search GitHub for repositories containing MicroPython.
- GitHub Topic -
MicroPython - Browse GitHub Topics for projects tagged with
MicroPython.
- Libraries.io
- Libraries.io query for MicroPython.
- GitLab
Explore - Explore repositories on GitLab.
- Codeberg
Explore - Explore repositories on Codeberg.
AI
Audio
Communications
APIs
Authentication
Bluetooth
- PyBoard-HC05-Android
- Pyboard HC05 Bluetooth adapter example application.
- uble - Lightweight
Bluetooth Low Energy driver written in pure Python for MicroPython.
- MicroPythonBLEHID
- Human Interface Device (HID) over Bluetooth Low Energy (BLE) GATT
library for MicroPython.
- upyble - Command
line tool for Bluetooth Low Energy MicroPython devices.
- micropython-xiaomi-ble-adv-parse
- Passively retrieve sensor data from some Xiaomi Bluetooth Low Energy
(BLE) sensors.
- mijia-temphum-upy
- MicroPython library to read certain Xiaomi Mijia BLE temperature &
humidity sensors.
- micropython-aioble-itag
- Examples using aioble to interact with iTag BLE keychain tags.
- micropython_aioble_examples
- A few aioble (asyncio BLE) examples of MicroPython using ESP32.
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.
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.
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.
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
- 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
- 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
- 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
- loraE22 - A
MicroPython class for the Ebyte E22 Series LoRa modules.
- micropython-lora
- MicroPython library for controlling a Semtech SX127x LoRa module over
SPI.
- micropython-aiolora
- MicroPython library for controlling a Semtech SX127x LoRa module with
asyncio API.
- micropython-rylr
- MicroPython library for controlling Reyax LoRa modules (RYLR896,
RYLR406).
- silvergeko_rfm9x
- Porting to MicroPython of adafruit_rfm9x.py library.
LoRaWAN
MDNS
- micropython-mdns -
A pure Python implementation of MDNS with support for Service
Discovery.
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 - 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
- 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
- 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
- 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
- micropython-nfc -
Using NFC with MicroPython.
- micropython_pn532
- Driver for PN532 NFC/RFID breakout boards based on Adafruit
CircuitPython (UART).
- NFC_PN532_SPI -
Partial port of Adafruit CircuitPython to MicroPython of PN532 NFC/RFID
control library (SPI).
NTP
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
- ujrpc - JSON RPC for
MicroPython.
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.
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.
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.
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
GUI
- lvgl -
An object-oriented, component-based high-level GUI library with
MicroPython binding.
- micropython-lcd160cr-gui
- Simple touch-driven event based GUI for the Pyboard and LCD160CR
colour display.
- micropython_ra8875
- MicroPython device driver and nano-GUI for RA8875 based displays.
- micropython-nano-gui
- A tiny display-only GUI with a limited set of GUI objects (widgets)
for displays whose display driver is subclassed from the
framebuf class. With drivers for TFT, ePaper and OLED
displays.
- micro-gui
- Derived from nano-gui and supporting the same displays and hosts, this
provides for user input via push buttons or a navigation joystick and an
optional rotary encoder.
- micropython-touch
- Derived from nano-gui and supporting the same displays and hosts, this
offers touch input. Supports various touch controllers.
- TFT-GUI - A
fast touch GUI for large displays based on SSD1963 controller with
XPT2046 touch controller.
- micropython-nextion
- Control Nextion displays using MicroPython.
- mp_lvgl_widgets
- Widgets for the MicroPython Port of LVGL.
- micropython-core2
- Extends LV-MicroPython for the M5Stack CORE2 with MPU6886, ILI9342C,
BM8563 and AXP192 drivers.
LCD Character
LCD Graphic
LCD TFT
- micropython-ili9341
- Collection of drivers for TFT displays, ILI9341, SH1106, SSD1606,
ST7735.
- micropython-ili934x
- SPI driver for ILI934X series based TFT / LCD displays.
- MicroPython-ST7735
- ESP32 version of GuyCarvers’s ST7735 TFT LCD driver.
- micropython-st7735
- Driver for ST7735 TFT LCDs.
- MicroPython_ST7735
- Driver for ST7735 128x128 TFT.
- SSD1963-TFT-Library-for-PyBoard-and-RP2040
- SSD1963 TFT Library for Pyboard and Raspberry Pi Pico.
- ST7735
- Driver for ST7735 TFT LCDs.
- micropython-ili9341
- MicroPython ILI9341 display & XPT2046 touch screen driver.
- st7789_mpy - Fast
pure-C driver for MicroPython that can handle display modules on ST7789
chip.
- st7789py_mpy -
Slow MicroPython driver for 240x240 ST7789 display without CS pin from
AliExpress, written in MicroPython.
- micropython-ili9341
- MicroPython Driver for ILI9341 display.
- micropython-ili9341
- ILI9341 TFT driver for MicroPython on ESP32.
- st7789_mpy -
Fast MicroPython driver for ST7789 display module written in C.
- st7789py_mpy -
Driver for 320x240, 240x240 and 135x240 ST7789 displays written in
MicroPython.
- ili9342c_mpy -
ILI9342C Fast ‘C’ Driver for MicroPython (M5Stack Core).
- gc9a01py -
GC9A01 Display driver in MicroPython.
- gc9a01_mpy -
Fast MicroPython driver for GC9A01 display modules written in C.
- st7735-esp8266-micropython
- An ESP8266 MicroPython library for ST7735 160x80, 128x128, 128x160 TFT
LCD displays.
- TTGO-ST7789-MicroPython
- MicroPython ST7789 display driver for TTGO T-Display ESP32 CP2104 WiFi
Bluetooth Module 1.14 Inch LCD.
- st7735_micropython
- ST7735 MicroPython drivers for 80x160, 128x128, 128x160 for
ESP8266.
- ili934x-micropython
- Library for using ILI9341 display drivers with MicroPython.
- micropython-st7735-esp8266
- MicroPython driver for ST7735 TFT displays on the ESP8266.
- st7789s3_esp_lcd
- Fast ESP_LCD based MicroPython driver for the TTGO T-Display-S3 st7789
display written in C.
- s3lcd - ESP_LCD
based MicroPython driver for ESP32-S3 Devices with ST7789 or compatible
displays.
- thmi_py -
MicroPython display driver for the LILYGO T-HMI written in Python.
- wt32sc01py -
WT32SC01 Plus MicroPython Display Driver.
- st7789s3_mpy -
MicroPython display driver for the TTGO T-Display-S3 ST7789 written in
C.
- t-display-s3 -
MicroPython display driver for the TTGO T-Display-S3 ST7789 written in
Python.
- mp-ili9341 -
MicroPython Driver for ILI9341 TFT Display.
- lvgl_esp32_gc9a01
- Driver for displays using the GC901 driver for use with LVGL
MicroPython.
- ST77xx-pure-MP -
Pure MicroPython driver for ST77xx displays. Low memory
requirements.
- upy-st7789 -
A simple ST7789 driver written in MicroPython.
LED Matrix
LED Segment
LEDs
OLED
Printer
IO
ADC
- ads1x15 - Driver
for the ADS1015/ADS1115 ADC, I2C interface.
- micropython-ads1015
- ADS1015 12-Bit and ADS1115 16-bit ADC, 4 channels with programmable
gain, I2C interface.
- Micropython_ADS1115
- ADS1115 16-bit ADC, 4 channels with programmable gain, I2C
interface.
- ADS7818 - Python
class interfacing the ADS7818 AD-converter.
- micropython-ads1219
- MicroPython module for the Texas Instruments ADS1219 ADC.
- MicroPython-ADC_Cal
- ESP32 ADC driver using reference voltage calibration value from
efuse.
- micropython-pcf8591
- MicroPython driver for PCF8591 ADC/DAC, I2C interface.
- MCP342x_LoPy
- MicroPython driver for the MCP342x ADC.
- micropython-ads1220
- MicroPython library for ADS1220 24-bit analog-to-digital
converter.
- PCF8591_micropython_library
- MicroPython library for PCF8591 8-bit ADC/DAC.
- CS1237 -
MicroPython driver for the CS1237 ADC.
- ads1115 -
MicroPython module for managing ADS1115, multichannel, differential I2C
ADC from TI.
- mcp3421 -
MicroPython module for controlling MCP342X, 18-bit analog-to-digital
converter with I2C interface.
- micropython-MCP3001
- MicroPython driver for the MCP3001 1-channel 10-bit ADC with SPI
interface.
DAC
- micropython-mcp4725
- Driver for the MCP4725 I2C DAC.
- mcp4728 - Helper
library for the Microchip MCP4728 I2C 12-bit Quad DAC.
- mpyDAC -
MicroPython module for controlling MCP4725, 12-bit digital analog
converter (CAP) with EEPROM memory.
GPIO
- micropython-inputs
- Classes to count pulses, debounce digital inputs, and calculate moving
averages of analog inputs for a MicroPython board.
- ubutton - A
MicroPython library for controlling reading and debouncing pushbutton
inputs, including “short” and “long” press callbacks.
- micropython-debounce-switch
- MicroPython Class for Debouncing Switches.
IO-Expander
- micropython-mcp230xx
- Driver for MCP23017 and MCP23008 GPIO expanders.
- micropython-mcp230xx
- Driver for MCP23017 and MCP23008 GPIO expanders, extended with
interrupt handling.
- micropython-mcp23017
- MicroPython driver for MCP23017 16-bit I/O Expander.
- micropython-pcf8574
- MicroPython driver for PCF8574 8-Bit I2C I/O Expander with
Interrupt.
- micropython-pcf8575
- MicroPython driver for PCF8575 16-Bit I2C I/O Expander with
Interrupt.
- ESP8266_MCP23S17
- MicroPython library for using the MCP23S17 16-bit I/O expander with
the ESP8266.
- pcf8574 -
MicroPython module for working with the PCF8574(A) I2C 8-bit I/O
expander from NXP.
- mcp23017 -
MicroPython module for MCP23017, 16-Bit I/O Expander with Serial
Interface.
- micropython-sx1509
- MicroPython SX1509 I/O Expander Library.
Joystick
Keyboard
Multiplexer
Potentiometers
- micropython-ad840x
- MicroPython SPI-based manipulation of the AD series digital
potentiometers AD8400, AD8402 and AD8403.
- mcp4131 -
MicroPython module to control MicroChip’s MCP4131 SPI digital
potentiometer.
- MicroPython_DS1841
- MicroPython Driver for the DS1841 Potentiometer.
- MicroPython_DS3502
- MicroPython Driver for the DS3502 Potentiometer.
Power Management
PWM
- upwmcontroller
- A MicroPython library for controlling PWM outputs in an asyncio loop,
with features including fading and blinking.
Relay
Rotary Encoder
Shift Registers
- micropython-74hc595
- MicroPython driver for 74HC595 8-bit shift registers.
- MicroPython-SN74HCS264
- MicroPython Driver for SN74HCS264 8-Bit Parallel-Out Serial Shift
Registers With Schmitt-Trigger Inputs and Inverted Outputs.
Mathematics
- uMath - Computer
Algebra for microcontrollers.
- micropython-ulab -
A NumPy-like fast vector module for MicroPython.
- micropython-fourier
- Fast Fourier transform in MicroPython’s inline ARM assembler.
- Filters -
FIR filters using ARM Thumb assembler. Using an online utility you can
go from a graph of required frequency response to a filter
implementation.
- ulinalg - Small
size matrix handling module with a few linear algebra operations
specifically for MicroPython (Python 3).
- micropython-mtx -
Fast Matrix Multiplication and Linear Solver on MicroPython.
- micropython-vec -
Vector Operations on MicroPython.
- MicroPython_Statistics
- Statistics module for MicroPython.
- MicroPython-Matrix
- MicroPython basic matrix operations.
- uumpy - A subset of
NumPy for MicroPython.
- upyuncertainties
- Uncertainty calculations for MicroPython.
- umatrix - A matrix
library for the MicroPython language.
- micropython-fractions
- A MicroPython port of the CPython standard Fractions library.
- Sun
and Moon - Determine Sun and Moon rise and set times, Moon
phases.
- micropython-npyfile
- Numpy .npy file support for MicroPython, supports
read/write/streaming.
- Micropython
Perlin - A Perlin noise generator module.
Motion
DC Motor
- L298N
- Driver for the L298N dual H-bridge motor controller.
- MicroPython-L298
- Drive L298 dual H-bridge with MicroPython.
- pyl298 -
Driver for the L298 dual full-bridge motor controller.
Servo
- micropython-pca9685
- 16-channel 12-bit PWM/servo driver.
- micropython-servo
- Library to control RC servos using direct PWM output in a tidy
way.
- MicroPython_PCA9685
- MicroPython Driver for the PCA9685 PWM control IC, commonly used to
control servos, LEDs and motors.
- MicroPython_MOTOR
- MicroPython Helper for controlling PWM based motors.
- pca9685 -
MicroPython module for managing a 16-channel SHIM controller,
PCA9685
Stepper
Sensors
Accelerometer Digital
Air Quality
Barometer - Air and Water
Pressure
- MicroPython-BMPxxx
- Driver for BMP585, BMP581, BMP390, BMP280 Bosch temperature/pressure
sensors.
- mp-bmp3xx-full -
MicroPython driver for the Bosch BMP3xx range of barometric pressure
sensors. Includes FIFO support. ⏩
- micropython-bme280
- Driver for the Bosch BME280 temperature/pressure/humidity sensor.
- micropython-bmp180
- Driver for Bosch BMP180 temperature, pressure and altitude
sensor.
- mpy_bme280_esp8266
- Bosch BME280 temperature/pressure/humidity sensor.
- BME280 -
MicroPython driver for the BME280 sensor, target platform Pycom
devices.
- ms5803-micropython
- A MicroPython implementation of the driver for an MS5803 air/water
pressure & temperature sensor.
- MPL3115A2_MicroPython
- MicroPython library for the MPL3115A2 altimeter.
- D6F-PH - MicroPython
module for differential pressure sensor, D6F-PH (OMRON).
- micropython-bmp280
- Module for the BMP280 sensor.
- micropython_bme280_i2c
- A MicroPython module for communicating with the Bosch BME280
temperature, humidity, and pressure sensor.
- MicroPython-BME280
- Driver to digital sensor of Temperature, Pressure and Humidity.
- micropython-bmp180
- A module for MicroPython which provides a class for the BMP180
pressure sensor.
- bmp581 -
MicroPython module for BMP581, pressure and ambient temperature sensor
from Bosch Sensortec.
- BMP390 -
MicroPython module for BMP390 pressure & temperature sensor.
- BMP180 -
MicroPython module for BMP180 pressure & temperature sensor.
- MicroPython_DPS310
- MicroPython Driver for the DPS310 Sensor. (Archived)
- MicroPython_ICP10111
- MicroPython Driver for the TDK ICP-10111 Barometric Pressure and
Temperature sensor. (Archived)
- MicroPython_BMP581
- MicroPython driver for the Bosch BMP581 pressure & temperature
sensor. (Archived)
- MicroPython_MMR902
- MicroPython Driver for the Mitsumi MMR902 Micro Pressure Sensor.
(Archived)
- MicroPython_MPL3115A2
- MicroPython driver for the NXP MPL3115A2 Pressure and Temperature
sensor. (Archived)
- MicroPython_MS5611
- MicroPython Driver for the TE MS5611 Pressure and Temperature Sensor.
(Archived)
Battery
Biometric
- micropython-fingerprint
- MicroPython library for reading Grow and ZhianTec fingerprint
sensors.
- MAX30102-MicroPython-driver
- A MAX30102 driver ported to MicroPython. It should also work for
MAX30105.
- max30102
- MicroPython driver for the MAX30102, with heartbeat detection and BPM
measurement.
Camera
- micropython-camera-API
- Project with the aim of supporting cameras across various ports in
MicroPython, starting with the ESP32 port and Omnivision cameras (OV2640
& OV5640).
- micropython-ov2640
- MicroPython class for OV2640 camera.
- Nikon-Trigger-for-MicroPython
- Remote trigger for a Nikon camera using an IR LED. For Pyboard
v1.1.
- micropython-camera-driver
- OV2640 camera driver for MicroPython on ESP32.
- esp32-cam-micropython
- MicroPython ESP32-CAM.
- uPyCam - Take a
photo with an ESP32-CAM running MicroPython.
- OV2640_uPy -
OV2640 camera library for MicroPython.
- MQTT-Cam -
ESP32-CAM MicroPython MQTT AWS S3 Uploader.
- huskylib
- MicroPython driver for the DFRobot Husky Lens. An easy-to-use AI
Camera / Vision Sensor, featuring face recognition, object tracking,
object recognition, line tracking, color recognition, and QR code
recognition.
Colour
Compass
Current
- micropythonINA219
- Driver for INA219 current sensor.
- pyb_ina219 -
Driver for INA219 current sensor.
- INA219 - INA219
MicroPython driver.
- TI_INA226_micropython
- MicroPython driver for Texas Instruments INA226 power measuring
IC.
- micropython-current-monitor
- Current monitor using the INA219 and an SSD1306 OLED.
- INA_TI -
MicroPython module for controlling INA219, INA226 - A two-directional
current / power monitor with the I2C interface.
Distance IR
Distance Laser
Distance Ultrasonic
Dust
- pyGP2Y -
MicroPython library for the Sharp GP2Y1014AU0F Dust Sensor.
Energy
- ATM90E26_Micropython
- Driver for ATM90E26 energy metering device.
- MCP39F521 -
ESP8266 scripts for reading MCP39F521 power monitors.
- micropython-p1meter
- A ESP32 sensor to read a p1 electricity meter and publish this to MQTT
and Home Assistant, written in MicroPython.
- esp32-solar2 -
Simple solar regulator - MicroPython project.
- cs5490_micropython
- MicroPython Driver for CS5490 Energy Monitor IC.
Gaseous
- micropython-MQ -
Drivers for MQ series gas sensors.
- MQ135 - Driver for
MQ135 gas sensor.
- CCS811 - Basic
MicroPython driver for CCS811 on ESP8266 boards.
- micropython-scd30
- MicroPython I2C driver for Sensirion SCD30 CO2 sensor module.
- MicroPython_SCD4X
- MicroPython I2C driver for Sensirion SCD40 and SCD41 CO2 sensors.
- micropython-sgp40
- MicroPython I2C driver for SGP40 VOC sensor module.
- MICS6814-Micropython-driver
- ESP32 MicroPython driver for the Pimoroni MICS6814 breakout
board.
- MicroPython_AGS02MA
- MicroPython Driver for the AGS02MA TVOC sensor.
- SCD4x - MicroPython
module for work with SCD4x (SCD40, SCD41) low power CO2, temperature
& humidity electroacoustic sensor from Sensirion.
- ens160 -
MicroPython module for work with ENS160 Digital Metal-Oxide Multi-Gas
Sensor.
Humidity
Human Presence
- ld2410
- 24GHz human presence sensing module, capable of detecting moving and
stationary targets, and providing an approximate range.
Light
- MicroPython-SI1145
- SI1145 UV index, IR, visible light and proximity sensor.
- micropython-tsl2561
- Driver for the TSL2561 illumination sensor from TAOS / ams.
- mpy_bh1750fvi_esp8266
- ESP8266 driver for BH1750FVI sensor.
- bh1750 -
BH1750 I2C digital light sensor driver.
- micropython-max44009
- MicroPython driver for the MAX44009 ambient light sensor.
- veml7700 -
Library for MicroPython for VEML7700 light sensor.
- MicroPython_MAX44009_driver
- MicroPython driver for MAX44009 light sensor.
- MicroPython-VEML6075
- Driver base for the VEML6075 UV light sensor.
- BH1750 -
MicroPython module for the BH1750 ambient light sensor (ALS).
- veml7700 -
MicroPython module for the VEML7700 ambient light sensor (ALS) from
Vishay.
- opt3001 -
MicroPython module for OPT3001, external lighting sensor from Texas
Instruments.
- ltr390uv -
MicroPython module for LTR390UV, ambient light sensor in the visible and
ultraviolet ranges.
Load Cell
- micropython-hx711
- MicroPython driver for HX711 24-Bit Analog-to-Digital Converter.
- hx711_mpy-driver
- MicroPython Driver for the HX711 weighing sensor.
- hx710
- MicroPython driver for the HX710.
- hx711 - MicroPython
driver for the HX711 load cell interface.
- hx710 - MicroPython
driver for the HX710 load cell interface.
Magnetometer
Motion Inertial
Proximity
- uPy_APDS9960 -
MicroPython proximity library for ESP8266 using APDS9960.
- MicroPython_VCNL4010
- MicroPython Driver for the Vishay VCNL4010 Proximity and Ambient Light
Sensor.
- apds9960
- MicroPython Driver for the APDS9960, with simple gesture
detection.
Radiation
Soil Moisture
- micropython-chirp
- Driver for the Chirp Soil Moisture Sensor.
- MicroPython-MiFlora
- Xiaomi Mi Flora (aka flower care) BLE plant sensors (soil
moisture/conductivity/light intensity/temperature).
- micropython-miflora
- MicroPython library for Xiaomi Mi Flora BLE plant sensors.
Spectral
Temperature Analog
- micropython-max31855
- Thermocouple amplifier, SPI interface.
- max31856 -
Precision thermocouple to digital converter with linearization, SPI
interface.
- max31865 -
Precision resistance-to-digital converter optimized for platinum
resistance temperature detectors, SPI interface.
- mcp9700 -
Generic MicroPython driver for MCP9700.
- micropython-generic-thermistor
- MicroPython Generic Thermistor Library for simplified temperature
sensing using NTC thermistors with voltage dividers.
- micropython-simple-thermistor
- Read NTC thermistor temperature wired in a potential divider.
Temperature Digital
- bme680-mqtt-micropython
- Driver for BME680 gas, pressure, temperature and humidity sensor.
- LM75-MicroPython
- Driver for LM75 digital temperature sensor, I2C interface.
- micropython-am2320
- Aosong AM2320 temperature and humidity sensor, I2C interface.
- micropython-dht12
- Aosong DHT12 temperature and humidity sensor, I2C interface.
- micropython-hdc1008
- Driver for the Texas Instruments HDC1008 humidity and temperature
sensor.
- micropython-mcp9808
- Driver for the Microchip MCP9808 temperature sensor.
- micropython-mpl115a2
- Pyboard driver for the MPL115A2 barometric pressure sensor.
- micropython-sht30
- Driver for SHT30 temperature and humidity sensor.
- micropython-sht31
- Driver for the SHT31 temperature and humidity sensor.
- micropython-Si7005
- Driver for Si7005 relative humidity and temperature sensor.
- micropython-si7021
- SI7021 Temperature and humidity sensor, I2C interface.
- micropython-si7021
- SI7021 Temperature and humidity sensor, I2C interface.
- micropython-Si705x
- Silicon Labs Si705x series of temperature sensors, I2C interface.
- micropython-Si70xx
- Silicon Labs Si70xx series of relative humidity and temperature
sensors, I2C interface.
- micropython-tmp102
- Driver for TMP102 digital temperature sensor.
- Official
DHT11+DHT12 - ESP8266 driver for DHT11 and DHT12 temperature and
humidity sensor.
- sht25-micropython
- Driver for SHT25 temperature and humidity sensor.
- micropython-tmp1075
- Driver for the TI TMP1075 temperature sensor.
- micropython-sht11
- Driver for Sensirion SHT11 temperature and humidity sensor.
- micropython-lm75a
- Driver for the NXP LM75A digital temperature sensor.
- BME680-Micropython
- MicroPython driver for the BME680 sensor.
- htu21d-esp8266
- This is a MicroPython module / class to measure data from the
HTU21D.
- HTU21D
- Asynchronous driver for HTU21D temperature and humidity sensor.
- esp-sht3x-micropython
- A SHT3x (SHT30/31/35) library for ESP8266/ESP32 with MicroPython.
- sht25-micropython
- MicroPython implementation of API of SHT25 humidity and temperature
sensor.
- micropython-sht30
- SHT30 sensor driver in pure Python based on I2C bus.
- micropython_ahtx0
- MicroPython driver for the AHT10 and AHT20 temperature and humidity
sensors.
- sht85 - MicroPython
driver for the Sensiron SHT85
humidity and temperature sensor.
- micropython-zacwire
- MicroPython driver for the ZACwire protocol used in TSic 506F
temperature sensors.
- MicroPython_HTU31D
- MicroPython library for TE HTU31D temperature and humidity
sensors.
- MicroPython_SHTC3
- MicroPython Driver for the Sensirion SHTC3 Temperature and Humidity
Sensor.
- MicroPython_TMP117
- MicroPython Driver for the TMP117 Temperature Sensor.
- MicroPython_SI7021
- MicroPython Library for the Temperature and Humidity SI7021
Sensor.
- MicroPython_ADT7410
- MicroPython Driver for the Analog Devices ADT7410 Temperature
Sensor.
- MicroPython_WSENTIDS
- MicroPython library for the WSEN WSEN-TIDS temperature Sensor.
- MicroPython_HS3003
- MicroPython Driver for the Renesas HS3003 Temperature and Humidity
Sensor.
- MicroPython_STTS22H
- MicroPython Driver for the STTS22H Temperature Sensor.
- MicroPython_HTU21DF
- MicroPython HTU21D-F Temperature & Humidity driver.
- MicroPython_SHT4X
- MicroPython Driver for the Sensirion Temperature and Humidity SHT40
and SHT45 Sensor.
- MicroPython_SHT20
- MicroPython Driver for the Sensirion SHT20 Temperature Sensor.
- MicroPython_MCP9808
- MicroPython Driver for the Microchip MCP9808 Temperature Sensor.
- MicroPython_HDC1080
- MicroPython driver for the TI HDC1080 Temperature and Humidity
sensor.
- TMP117 -
MicroPython module for the TMP117 temperature sensor from Texas
Instruments.
- BME680 -
MicroPython module for the BME680, Bosch low power gas, pressure,
temperature & humidity sensor.
- SHT30 - MicroPython
driver for the Sensirion SHT3x sensor.
- MicroPython_AS6212
- MicroPython Library for the ASM AS6212 Temperature Sensor.
- MicroPython_PCT2075
- MicroPython Driver for the NXP Semiconductors PCT2075 Temperature
Sensor.
- micropython-hdc1080
- MicroPython driver for the HDC1080 temperature and humidity
sensor.
- bme680-pure-mp -
Pure MicroPython Bosch BME680 sensor driver.
- SHT4X - MicroPython
module for controlling the SHT4x - 4th generation relative humidity and
temperature sensor.
Temperature IR
Touch Capacitive
- micropython-mpr121
- Driver for MPR121 capacitive touch keypads and breakout boards.
- micropython-ttp223
- Examples using TTP223 capacitive touch module.
- micropython-TTP229-BSF
- MicroPython ESP8266/ESP32 driver for TTP229-BSF 16-key capacitive
keypad in serial interface mode.
- uFT6336U -
MicroPython I2C driver for the Focus LCDs FT6336U capacitive touch panel
controller IC.
- MicroPythonTrill
- Trill touch sensor library for MicroPython.
- L58Touch - L58
Multi-Touch MicroPython Module.
- micropython-ft6x06
- Simple driver for FT6x06 capacitive touch sensor in pure Python.
Touch Resistive
Scheduling
- micropython-mcron
- MicroCRON is a time-based task scheduling program for
MicroPython.
- micropython-scron
- SimpleCRON is a time-based task scheduling program inspired by the
well-known cron program for Unix systems.
- Schedule
- A scheduler for asyncio based applications. Schedule events at
specified times and dates or with reference to Sun and Moon rise and
set.
- micropython-aioschedule
- A persistent uasyncio scheduler that supports deepsleep between task
runs.
Storage
Configuration file
- uPyftsConf -
MicroPython Far Too Simple Config File. Single file library that writes
configurations to itself.
Databases
- uPyMySQL - Pure
MicroPython MySQL Client.
- micropython-redis
- A Redis client implementation designed for use with MicroPython.
- picoredis -
A very minimal Redis client (not only) for MicroPython.
- micropg -
PostgreSQL database driver for MicroPython.
- micropg_lite -
Lightweight version of micropg with some slight limitations (e.g. error
handling), in order to run on low-RAM microcontrollers (works with
ESP8266).
- micropg_superlite
- The lightest PostgreSQL database driver for micropython based on
micropg_lite/micropg, but has even stronger restrictions in
functionality and focuses only on the absolutely necessary
functions.
- micropython-cratedb
- MicroPython driver for CrateDB databases.
- nmongo - MongoDB
client for CPython and MicroPython, with MongoDB shell-like APIs.
- MicroPyDatabase -
A low-memory JSON-based database for MicroPython.
- micropython-firebase-realtime-database
- Firebase implementation for MicroPython optimized for ESP32.
- micropython-firebase-firestore
- Firebase Firestore implementation for MicroPython.
- uSQLite -
SQLite library module for MicroPython.
EEPROM
- micropython_eeprom
- Cross-platform MicroPython device drivers for memory chips (EEPROM,
FRAM, Flash, PSRAM).
- mb_24x256_512 -
Very simple MicroPython module/driver for Microchip 24x256 and 24x512
I2C EEPROM devices.
- micropython-eeprom
- MicroPython driver for AT24Cxx EEPROM.
Flash
- micropython_data_to_py
- A Python 3 utility to convert an arbitrary binary file to Python
source for freezing as bytecode in Flash.
- micropython-winbond
- Interact with Winbond W25Q Flash chips via SPI.
- freezeFS - Create
self-extracting compressed or self-mounting archives for
MicroPython.
FRAM
PSRAM
- mb_PSRAM_64Mb_SPI
- Very simple MicroPython module to use a generic 64Mbit PSRAM (ie
Adafruit 4677) with a Raspberry Pi Pico (RP2040).
SD
- mp-sdcard-littleFS
- MicroPython SD card driver that works with LittleFS2 (implements
extended interface).
SRAM
- mb_23LC1024
- Very simple MicroPython module to use a Microchip 23LC1024 SPI SRAM
with a Raspberry Pi Pico (RP2040).
- mb_47x16 - Very
simple MicroPython module/driver for Microchip 47x16 EERAM devices
(47L/47C).
Threading
- MicroWorkers - A
micro workers class that easily manages a pool of threads to optimise
simultaneous jobs and jobs endings, for MicroPython (used on Pycom
modules & ESP32).
User Interface
- upymenu -
MicroPython Menu for LCD Displays.
Utilities
Tutorials
Books
Frameworks
- micrOS -
MicroPython-based IoT Framework.
- terkin-datalogger
- Flexible data logger application for MicroPython and CPython.
- perthensis -
Perthensis: an asynchronous framework for MicroPython.
- meerkat - I2C
Data Acquisition for MicroPython and Raspberry Pi.
Resources
Development
Code Generation
- micropy-cli -
Micropy CLI is a project management/generation tool for writing
MicroPython code in modern IDEs such as Visual Studio Code.
- micropython-stubber
- Generate and use stubs for different MicroPython firmwares to use with
Visual Studio Code or any IDE and linter.
- micropython-stubs
- Stubs of most MicroPython ports, boards and versions to make writing
code that much simpler.
- micropy-stubs
- Automatically Generated Stub Packages for Micropy-Cli and whomever
else.
- micropython-extmod-generator
- Generator for MicroPython external modules written in C.
- micropython-package-template
- GitHub workflow supported MicroPython package template with deploys to
the Python Package Index on a push to
the main branch and test deploys to the Test Python Package Index on PRs.
- micropython-usermod
- Online book about MicroPython external modules writen in C.
- wasm2mpy -
Compile WebAssembly to native MicroPython
.mpy files.
Allows writing code in various statically compiled languages, and
translating them to C for near-native performance.
Debugging
Firmware
- micropython-builder
- Tool for building and flashing a custom MicroPython firmware.
- mpflash -⚡Your
Ultimate MicroPython Flashing Companion for stm32, rp2, esp32, esp8266,
samd.
IDEs
- BIPES - Web-based IDE for
MicroPython with file manager, editor, code generation from blocks, IoT
dashboard and Serial/USB/Bluetooth/WebREPL console on the web browser.
Source: https://github.com/BIPES.
- ESP32-MPY-Jama
- Tool for managing Espressif ESP32 microcontrollers with
MicroPython.
- JetBrains
IntelliJ/PyCharm MicroPython Plugin - Plugin for MicroPython devices
in IntelliJ and PyCharm.
- MicroPython
IDE for VSCode - MicroPython IDE for Visual Studio Code.
- MicroPython-REPLink
for VSCode - Handy shortcuts for interacting with a MicroPython REPL
terminal.
- MPRemote
for VSCode - An extension to provide easy access to some of
mpremote’s functionality from within Visual Studio Code.
- Mu Editor - Code with Mu: a
simple Python/MicroPython/CircuitPython editor for beginner
programmers.
- Thonny IDE - Thonny: Python IDE
for beginners.
- ViperIDE - An innovative
MicroPython / CircuitPython IDE for Web and Mobile. No installation
required.
- Pyboard File
Manager - Pyboard File Manager: Windows GUI for Pyboard.py
compatible devices.
- uPIDE - µPIDE is a
simple IDE for MicroPython.
- pye -
On device editor.
Logging
- micropython-ulogger
- Lightweight log module customized for MicroPython.
- scd30logger -
Sensirion SCD30 based CO2, Humidity and Temperature Logger for
MicroPython.
- sht15logger -
MicroPython Temperature and Humidity Logger using Sensirion SHT15.
Shells
Jupyter
On Device
- upy-shell - A
simple command line-based shell for MicroPython.
- Micropython-Editor
- Small on-board editor for Pyboard, WiPy, ESP8266, ESP32, PyCom and
Adafruit devices written in Python.
On Host
- rshell - Copy or
sync files to boards, enter REPL from your terminal.
- ampy -
Utility to interact with a MicroPython board over a serial
connection.
- mpbridge - A file
system bridge to synchronize and manage files on a device running
MicroPython.
- mpfshell - A
simple shell-based file explorer for ESP8266 and WiPy.
- mpsync - A tool
that automatically synchronizes code to a MicroPython board.
- mpremote
- Powerful official shell that supports mounting the host’s current
directory on the target. Run code without changing the target’s
filesystem.
- MPRemoteEditor - A
simple Windows IDE for developing with MicroPython MPRemote
devices.
- uPyExplorer -
Explorer for MicroPython Device.
- mpr - Wrapper for
MicroPython mpremote tool.
Miscellaneous
Contributing
Contributions and suggestions are always welcome! Please take a look
at the contribution
guidelines first.
I will keep some pull requests open if I’m not sure whether those
libraries are awesome, you could vote for them by adding 👍 to them.
micropython.md
Github