GitXplorerGitXplorer
m

awesome-micropython

public
1480 stars
182 forks
9 issues

Commits

List of commits on branch master.
Verified
e3f13cc6e8803d793297585525a19af9a6db90c8

Merge pull request #174 from bradcar/master

mmcauser committed 14 days ago
Verified
2bec1c7890d59a4b8d5ff778a9fd85c5807d96a7

noted additional archived drivers

bbradcar committed 16 days ago
Verified
4877ffe942e9d0f7eee765849a8fc3000b9027fb

fixed title for Barometer section

bbradcar committed 16 days ago
Verified
ea4ffd6764aad8fc9595b79c2ab33ccdf02519ef

corrected typo, replace missing "["

bbradcar committed 16 days ago
Verified
e3e1e13b583fa3fcf0969d10539541453e0a2c72

air and water pressure

bbradcar committed 22 days ago
Verified
59aa42be156e07c889aab5300a0fbeff566abdce

merged Barometer and Air Pressure, noted archived repos

bbradcar committed 23 days ago

README

The README file for this repository.

Awesome


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

  • 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.

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

  • micropython-tca9548a - MicroPython examples using TCA9548A I2C multiplexer.
  • tca9548a - MicroPython driver for the TCA9548A I2C 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.

Waveform Generator

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 - PostgreSQL database driver for MicroPython, based on micropg but aiming to require less memory with some compromises in functionality.
  • 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

Community

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

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.

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.