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.
Inspired by the Awesome lists.
Other places you can look for MicroPython Libraires:
- PyPi - This filter shows just the MicroPython libraries on PyPi. Note: You cannot pip install micropython libraries. See MicroPython docs for more information on upip.
- Github Search - Searching Github is never a bad idea
- Github Topic - MicroPython - Github Topics - Projects tagged with MicroPython
- Libraries.io - Libraries.io query for MicroPython
- MicroMLP - A micro neural network multilayer perceptron for MicroPython (used on ESP32 and Pycom modules).
- 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.
- ulinalg - Small size matrix handling module with a few linear algebra operations specifically for MicroPython (Python3).
- JQ6500 - Driver for JQ6500 UART MP3 modules.
- KT403A-MP3 - Driver for KT403A, used by DFPlayer Mini and Grove MP3 v2.0.
- micropython-buzzer - Play nokia compose and mid files on buzzers.
- micropython-dfplayer - Driver for DFPlayer Mini using UART.
- micropython-longwave - WAV player for MicroPython board.
- micropython-vs1053 - Asynchronous driver for VS1053b MP3 player.
- micropython-midi - A midi implementation example for MicroPython.
- upy-rtttl - Python Parser for Ring Tone Text Transfer Language (RTTTL).
- PyBoard-HC05-Android - Pyboard HC05 Bluetooth adaptor example application.
- ICantBelieveItsNotDNS - "I Can't Believe It's Not DNS!" (ICBIND) is an authoritative DNS server for the ESP8266 written in MicroPython.
- Official wiznet5k - Official driver for the WIZnet5x00 series of Ethernet controllers.
- micropython-ftplib - An FTP client library for MicroPython.
- FTP-Server-for-ESP8266-ESP32-and-PYBD - Small FTP server for ESP8266/ESP32/PYBD on the MicroPython platform.
- MicroFTPServer - Minimal FTP Server that can run on an ESP8266 with MicroPython.
- micropyGPS - Full featured GPS NMEA sentence parser.
- micropython-gnssl76l - MicroPython I2C driver for Quectel GNSS L76-L (GPS).
- micropython-upyphone - A gsm phone using pyboard and sim800l.
- 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-necir - NEC infrared capture for TL1838 IR receiver LEDs.
- Micropython-IR - Pyboard infrared remote sniff and replay.
- micropython_ir - Nonblocking device drivers to receive from IR remotes and for IR "blaster" apps.
- micropython-amg88xx - Driver for Grid-EYE thermal infra red array sensor (Adafruit 3538).
- micropython-ys-irtm - MicroPython examples for YS-IRTM 5V NEC Infrared UART transceivers.
- esp8266_ir - Control IR signal by websocket.
- uPyLoRaWAN - ESP32 using MicroPython meets LoRa and LoRaWAN.
- micropython-mqtt - A 'resilient' asynchronous MQTT driver. Plus a means of using an ESP8266 to bring MQTT to non-networked targets.
- sonoff-mqtt - MicroPython scripts to control Sonoff/ESP8266 using MQTT.
- pysmartnode - MicroPython Smarthome framework.
- micropython-thingspeak-mqtt-esp8266 - Publish and Subscribe to Thingspeak using MQTT with Micropython running on ESP8266/ESP32 platforms.
- umqtt_aws_iot - Publish UMQTT messages with MicroPython to AWS IoT.
- micropython-sonoff-switch - Implements a MQTT controllable switch for the iTead Sonoff Switch using MicroPython.
- uMQTT - MQTT publish for MicroPython on the WiPy board.
- esp8266_ntp_webserver - MicroPython + esp8266 + ntp + webserver.
- micropython-ntpd - An implementation of an ntpd in MicroPython.
- micropython_ntpserver - An NTP server written for MicroPython.
- micropython-ntpclient - NTP client for micropython using uasyncio.
- Official OneWire - For devices using the OneWire bus, eg Dallas ds18x20.
- micropython-radio - Protocols for nRF24L01 2.4Ghz radio modules.
- micropython-rfsocket - Micropython implementation of popular 433MHzn based RFSockets.
- Official nRF24L01 - Official driver for nRF24L01 2.4Ghz radio modules.
- micropython_remote - Capture and replay 433MHz remote control codes. Control remote switched power adaptors.
- micropython-ys-rf34t - MicroPython examples using YS-RF34T 433MHz ASK/OOK UART transceivers.
- micropython-mfrc522 - Driver for NXP MFRC522 RFID reader/writer.
- micropython-wiegand - Wiegand protocol reader.
- micropython-tinyrtc-i2c - Driver for DS1307 RTC and AT24C32N EEPROM.
- Micropython_TinyRTC - Driver for DS1307 RTC.
- mpy-miniterm - Tool for seamless serial debug and file synchronisation with MicroPython devices via the serial REPL.
- uMail - A lightweight, scalable SMTP client for sending email in MicroPython.
- MicroTelnetServer - Simple telnet server for MicroPython and the ESP8266 allowing telnet clients access to the REPL.
- HueBridge - Philips Hue Bridge.
- micropython-wifimanager - A simple network configuration utility for MicroPython on the ESP8266 board.
- 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 WebSockets, 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.
- ZbPy - MicroPython IEEE802.15.4 / Zigbee parser.
- micropython-epaper - Pyboard driver for Embedded Artists 2.7 inch e-paper display.
- micropython-ili9341 - SSD1606 active matrix epaper display 128x180.
- micropython-waveshare-epaper - Drivers for various Waveshare e-paper modules.
- micropython-waveshare-epd - Waveshare E-Paper Display driver for devices running Pycom-flavored MicroPython.
- Grove_RGB_LCD - Driver for SeeedStudio's Grove RGB LCD.
- lcdi2c - Driver for HD44780 compatible dot matrix LCDs.
- micropython-charlcd - Driver for HD44780 compatible LCDs.
- micropython-i2c-lcd - Driver for I2C 2x16 LCD Screens.
- micropython_grove_rgb_lcd_driver - Driver for SeeedStudio's Grove RGB LCD.
- pyboard-LCD-character-display - PyBoard driver for HDD44780 compatible 1602 LCDs.
- python_lcd - Driver for HD44780 compatible dot matrix LCDs.
- micropython-lcd - Class for controlling the HD44780 from a MicroPython pyboard.
- micropython-lcd-AQM1248A - ESP8266 driver for AQM1248A graphic LCD.
- micropython-lcd160cr-gui - Simple touch driven event based GUI for the Pyboard and LCD160CR colour display.
- micropython-pcd8544 - Driver for Nokia 5110 PCD8544 84x48 LCD modules.
- micropython-st7565 - Driver for ST7565 128x64 LCDs.
- micropython-st7920 - Library for simple graphic primitives on ST7920 128x64 monochrome LCD panel using ESP8266 and SPI.
- MicroPython_PCD8544 - ESP8266 driver for Nokia 5110 PCD8544.
- Official LCD160CR - Driver for official MicroPython LCD160CR display with resistive touch sensor.
- micropython-hx1230 - MicroPython library for HX1230 96x68 LCD modules.
- 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 - Driver for SSD1963 864x480 TFT LCDs.
- ST7735 - Driver for ST7735 TFT LCDs.
- micropython_ra8875 - MicroPython device driver and nano-GUI for RA8875 based displays.
- 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 Ali Express, written in MicroPython.
- micropython-ili9341 - MicroPython Driver for ILI9341 display.
- micropython-ili9341 - ILI9341 TFT driver for MicroPython on ESP32.
- micropython-ht1632c - Driver for HT1632C 32x16 bicolor led matrix.
- micropython-matrix8x8 - Driver for AdaFruit 8x8 LED Matrix display with HT16K33 backpack.
- micropython-max7219 - Driver for MAX7219 8x8 LED matrix modules.
- micropython-wemos-led-matrix-shield - Driver for Wemos D1 Mini Matrix LED shield, using TM1640 chip.
- micropython-wemos-led-matrix - Driver for Wemos D1 Mini Matrix LED shield, using TM1640 chip.
- micropython-max7219 - MicroPython driver for MAX7219 8x8 LED matrix.
- LKM1638 - Driver for JY-LKM1638 displays based on TM1638 controller.
- max7219_8digit - Driver for MAX7219 8-digit 7-segment LED modules.
- micropython-max7219 - Driver for MAX7219 8-digit 7-segment LED modules.
- micropython-my9221 - Driver for MY9221 10-segment LED bar graph modules.
- micropython-tm1637 - Driver for TM1637 quad 7-segment LED modules.
- micropython-tm1638 - Driver for TM1638 dual quad 7-segment LED modules with switches.
- micropython-tm1640 - Driver for TM1740 8x8 LED matrix modules.
- micropython-morsecode - Blink an LED with morse coded message.
- micropython-p9813 - Driver for P9813 RGB LED used in SeeedStudio's Grove Chainable RGB LED.
- micropython-ws2812-7seg - 7-segment display using WS2812 RGB LEDs.
- micropython-ws2812 - Driver for WS2812 RGB LEDs.
- Official APA102 - ESP8266 APA102/DotStar RGB LED driver.
- Official WS2811 - ESP8266 WS2811/NeoPixel RGB LED driver.
- tlc5940-micropython - Driver for TLC5940 16 channel LED driver.
- ws2812-SPI - An efficient micropython WS2812 (NeoPixel) driver.
- Grove_OLED - Driver for SSD1327 used by SeeedStudio's Grove OLED Display 1.12" v1.0.
- micropython-oled - Collection of drivers for monochrome OLED displays, PCD8544, SH1106, SSD1306, UC1701X.
- micropython-ssd1327 - Driver for SSD1327 128x128 4-bit greyscale OLED displays.
- micropython-ssd1351 - Driver for SSD1351 OLED displays.
- MicroPython_SSD1306 - ESP8266 driver for SSD1306 OLED 128x64 displays.
- Official SSD1306 - Driver for SSD1306 128x64 OLED displays.
- SH1106 - Driver for the SH1106 OLED display.
- 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-hx711 - Micropython driver for HX711 24-Bit Analog-to-Digital Converter.
- micropython-mcp4725 - Driver for the MCP4725 I2C DAC.
- micropython-inputs - Classes to count pulses, debounce digital inputs, and calculate moving averages of analog inputs for a MicroPython board.
- MCP23017-ESP8266-Miniature-Driver - Driver for MCP23017 16-bit I/O Expander.
- micropython-mcp230xx - Driver for MCP23017 and MCP23008 GPIO expanders.
- 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.
- micropython-nunchuck - Driver for Nunchuk game controller, I2C interface.
- micropython-rotary - MicroPython module to read a rotary encoder.
- Micropython-AD9833 - Pyboard driver for AD9833, spi interface.
- L298N - Driver for the L298N dual h-bridge motor controller.
- micropython-pca9685 - 16-channel 12-bit PWM/servo driver.
- micropython-upybbot - A4988 driver for bipolar stepper motors.
- uln2003 - Driver for 5V 28BYJ-48 stepper motors.
- ADXL345-with-Pyboard - Driver for ADXL345 16g 3-axis accelerometer.
- adxl345_micropython - Driver for ADXL345 16g 3-axis accelerometer.
- micropython-lis2hh12 - I2C driver for LIS2HH12 3-axis accelerometer.
- MMA7660 - Driver for MMA7660 1.5g 3-axis accelerometer.
- CCS811 - CCS811 Air Quality Sensor.
- upython-aq-monitor - Air Quality monitor using PMS5003 sensor and WiPy.
- micropython-pms7003 - Micropython driver for the PMS7003 Air Quality Sensor.
- pms5003_micropython - Driver for pms5003 air quality sensor for MicroPython.
- micropython-pms5003-minimal - Driver for pms5003 air quality sensor for MicroPython.
- polly - SDS011 pollution sensor + Wemos D1 mini pro + MicroPython.
- 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.
- wipy_bme280 - Driver for the Bosch BME280 temperature/pressure/humidity sensor.
- BME280 - MicroPython driver for the BME280 sensor, target platform Pycom devices.
- micropython-bmp280 - Module for the BMP280 sensor.
- 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-esp8266-hmc5883l - 3-axis digital compass on the ESP8266.
- QMC5883 - Python class for the QMC5883 Three-Axis Digital Compass IC.
- micropythonINA219 - Driver for INA219 current sensor.
- pyb_ina219 - Driver for INA219 current sensor.
- micropython-gp2y0e03 - IR-LED distance measuring sensor using Sharp GP2Y0E03.
- micropython-vl53l0x - Time-of-Flight laser-ranging sensor.
- micropython-vl6180 - Time-of-Flight sensor, ambient light sensor & IR emitter.
- micropython-hcsr04 - Driver for HC-SR04 ultrasonic distance sensors.
- ATM90E26_Micropython - Driver for ATM90E26 energy metering device.
- MCP39F521 - ESP8266 scripts for reading MCP39F521 power monitors.
- micropython-MQ - Drivers for MQ series gas sensors.
- MQ135 - Driver for MQ135 gas sensor.
- CCS811 - Basic MicroPython driver for CCS811 on ESP8266 boards.
- 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.
- micropython-bmx055 - Driver for Bosch BMX055 IMU sensor.
- micropython-bno055 - Bosch Sensortec BNO055 9DOF IMU sensor, I2C interface.
- micropython-lsm9ds0 - LSM9DS0 g-force linear acceleration, gauss magnetic and dps angular rate sensors.
- micropython-mpu9250 - I2C driver for MPU9250 9-axis motion tracking device.
- micropython-mpu9x50 - Driver for the InvenSense MPU9250 inertial measurement unit.
- MPU6050-ESP8266-MicroPython - ESP8266 driver for MPU6050 accelerometer/gyroscope.
- py-mpu6050 - ESP8266 driver for MPU6050 accelerometer/gyroscope.
- micropython-mpu6886 - MicroPython I2C driver for MPU6886 6-axis motion tracking device.
- micropython-chirp - Driver for the Chirp Soil Moisture Sensor.
- micropython-max31855 - Thermocouple amplifier, SPI interface.
- max31856 - Precision thermocouple to digital converter with linearization, SPI interface.
- 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.
- SHT10_uPython - Driver for SHT10 temperature and humidity sensor.
- sht25-micropython - Driver for SHT25 temperature and humidity sensor.
- micropython-mlx90614 - Driver for Melexis MLX90614 IR temperature sensor.
- micropython-mpr121 - Driver for MPR121 capacitive touch keypads and breakout boards.
- micropython-ttp223 - Examples using TTP223 capacitive touch module.
- XPT2046-touch-pad-driver - Driver for XPT2046 touch pad controller used in many TFT modules.
- micropython_eeprom - MicroPython device drivers for nonvolatile memory chips (EEPROM, FRAM, Flash).
- micropython-fram - Pyboard driver for Ferroelectric RAM module.
- MicroPython Forum - Online community of over 3400 users discussing all things related to MicroPython.
- MicroPython on Twitter - Follow MicroPython on Twitter for latest news and updates.
- Programming with MicroPython: Embedded Programming with Microcontrollers and Python - By Nicholas H. Tollervey.
- MicroPython for the Internet of Things: A Beginner's Guide to Programming with Python on Microcontrollers - By Charles Bell.
- MicroPython - Project website. Test drive the pyboard. Try MicroPython online with unicorn.
- MicroPython on GitHub - Submit bug reports, follow and join in development on GitHub.
- MicroPython Official Documentation - For various ports, including quick reference, general information, examples and tutorials.
- MicroPython Wiki - Community generated documentation and examples of the features of MicroPython and the pyboard.
- MicroPython Newsletter - Subscribe to the MicroPython newsletter for news and announcements including new features and new products.
- MicroPython Store - Where you can buy the pyboard, housings, skins, books, connectors and peripherals.
- MicroPython on Wikipedia - MicroPython on Wikipedia.
- JetBrains Micropython Plugin - Support for MicroPython devices in IntelliJ IDEA and PyCharm.
- Micropy Cli - Micropy Cli is a project management/generation tool for writing Micropython code in modern IDEs such as VSCode.
- Micropython IDE - Micropython IDE for VSCode README.
- Micropython-REPLink for VSCode - Handy shortcuts for interacting with a Micropython REPL terminal.
- Mu Editor - Code with Mu: a simple Python\MicroPythonb\CircuitPython editor for beginner programmers.
- Remote Shell for MicroPython - Copy or Sync files to Boards, enter REPL from your terminal.
- Thonny IDE - Thonny: Python IDE for beginners.
- MicroPython Kickstarter - 1,931 backers pledged £97,803 to help bring this project to life.
- MicroPython on the ESP8266 Kickstarter - 1,399 backers pledged £28,534 to help bring this project to life.
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.
To the extent possible under law, the authors have waived all copyright and related or neighbouring rights to this work.