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
  - AI
  - Audio
  - Communications
  - Cryptography
  - Display
  - IO
  - Mathematics
  - Motion
  - Sensors
  - Scheduling
  - Storage
  - Threading
  - User Interface
  - Utilities
- Community
- Tutorials
- Books
- Frameworks
- Resources
- Development
  - Code Generation
  - Debugging
  - Firmware
  - IDEs
  - Logging
  - Shells
- Miscellaneous
- Contributing

## 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

- MicroMLP - A micro neural network multilayer perceptron for MicroPython (used on ESP32 and Pycom modules).
- MicroPython-NeuralNetwork - Neural Network for MicroPython.
- upython-chat-gpt - ChatGPT for MicroPython.
- emlearn-micropython - Efficient Machine Learning engine for MicroPython.
- mp_esp_dl_models - MicroPython binding for the ESP DL vision models like face detection.

### Audio

- micropython-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 - Library to control the DFPlayer mini MP3 player module.
- 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).
- micropython-i2s-examples - Examples for I2S support on microcontrollers that run MicroPython.
- micropython-osc - A minimal OSC client and server library for MicroPython.
- micropython-sgtl5000 - Library for SGTL5000 Low Power Stereo Codec w/ Headphone Amp.
- umidiparser - MIDI file parser for MicroPython, CircuitPython and Python.
- micropython-tas2505 - MicroPython driver for the Texas Instruments TAS2505 Digital Input Class-D Speaker Amplifier.
- yx5300 - MP3 player that can be controlled via a serial interface.
- micropython_nonblocking_buzzer - A nonblocking implementation of a buzzer class that allows you to play basic melodies or sound patterns without blocking the main loop while the sound is being played.

### Communications

#### APIs

- micropython-utelegram - Telegram API wrapper for MicroPython.
- uEagle - MicroPython Rainforest EAGLE client.
- micropython-youtube-api - YouTube API in MicroPython.
- micropython_esp8266_tweetbot - Tweet bot for MicroPython v1.8.4 (ESP8266).
- telegram-upy - Telegram API wrapper for MicroPython.
- micropython-thingspeak - Library for sending data to thingspeak.com from IoT devices running MicroPython (such as ESP8266).
- micropython_pushbullet - Simple example of how to use PushBullet with MicroPython on ESP8266.
- esp32-youtube-display - Display YouTube metrics using Google API and MicroPython.
- micropython-spotify-web-api - A library for using Spotify’s web API from a IoT device with MicroPython.
- micropython_demo_bot - Little example of how to create a bot for Telegram.
- micropython-basicdweet - A python module for very basic APIs of the free dweet service.
- micropython-dweeter - A python module for messaging through the free dweet service.
- micropython-cryptodweet - A python module for very basic APIs of the free dweet service with encryption.
- micropython-linenotify - MicroPython library for sending notifications to Line Notify with ESP8266 and ESP32.
- micropython-telegram-bot - MicroPython telegram bot library: simple way to put your IoT projects on the cloud.
- MicroPython-GoogleSheet - Fetch, update or append data in Google Sheets using Google Apps Script API.

#### Authentication

- micropython-firebase-auth - Firebase Auth implementation for MicroPython.

#### 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

- micropython-spacecan - Spacecan is a MicroPython implementation of the SpaceCAN protocol for embedded systems.
- Robomaster-Micropython - Robomaster S1 - MicroPython CAN BUS controller.
- micropython-mcp2515 - MicroPython MCP2515 driver, porting from Arduino MCP2515 CAN interface library.
- microPython_MCP2515 - A MicroPython library for the MCP2515 CAN bus controller.

#### 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

- mesh-espnow-micropython - Dynamic Secure Mesh for Collaborative Nodes of IoT devices.
- mp_espnow_wrapper - Send and receive data between ESPs over ESP-NOW without worries.

#### Ethernet

- Official WIZnet5k - Driver for the WIZnet5x00 series of Ethernet controllers.
- micropy-ENC28J60 - ENC28J60 Ethernet chip driver for MicroPython (RP2).
- RP2040 Ethernet example - Ethernet driver, example Python code and YouTube.
- micropython-ch9121 - MicroPython library for controlling CH9121 Ethernet modules.

#### FTP

- micropython-ftplib - An FTP client library for MicroPython.
- FTP-Server-for-ESP8266-ESP32-and-PYBD - Small FTP server for ESP8266/ESP32/Pyboard on the MicroPython platform.
- MicroFTPServer - Minimal FTP Server that can run on an ESP8266 with MicroPython.
- micropython-uaioftp - Lightweight FTP library for MicroPython.
- FtpTiny-Micropython - Really small FTP server that runs in a thread.

#### GPS

- micropyGPS - Full featured GPS NMEA sentence parser.
- micropython-gnssl76l - MicroPython I2C driver for Quectel GNSS L76-L (GPS).
- mpy-agps - MicroPython implementation of assisted location services (AGPS).
- Asynchronous GPS driver - Receive and parse GPS data as a uasyncio task.

#### GSM

- micropython-upyphone - A GSM phone using Pyboard and SIM800l.
- micropython-sim800 - MicroPython driver for SIM800.
- sim800 - Library for interfacing with SIM800 module in MicroPython.
- MicroPython-AM7020 - MicroPython driver for AM7020 Narrowband Internet of Things (NBIoT) module.
- SIM800L-micropython - MicroPython wrapper for common SIM800L AT commands.
- sim7600 - MicroPython library for SIM7600 module.
- sim900 - MicroPython library for SIM900 GSM/GPRS module.

#### 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

- 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 infrared array sensor (Adafruit 3538).
- micropython-ys-irtm - MicroPython examples for YS-IRTM 5V NEC Infrared UART transceivers.
- esp8266_ir - Control IR signal by WebSocket.
- micropython_espX_IR_Transceiver - MicroPython ESP32 IR Transceiver.
- pico-ir - IR library for Raspberry Pi Pico.
- esp32-ir-remote - A MicroPython project for running ESP32 IR remotes.

#### 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

- uPyLoRaWAN - ESP32 using MicroPython meets LoRa and LoRaWAN.
- SX127x_driver_for_MicroPython_on_ESP8266 - SX127x (LoRa transceiver) driver for (Micro)Python on ESP8266/ESP32/Raspberry Pi.
- LightLora_MicroPython - Lightweight Interrupt-driven Semtech SX127x Library for MicroPython.
- u-lora - Raspi-lora for MicroPython.
- sx127x_esp - Connect Ra-01 module base on LoRaTM sx127x chip to ESP8266/ESP32 under MicroPython.
- nanoserver - MicroPython embedded LoRaWAN server.
- micropySX126X - Semtech SX126X LoRa driver for MicroPython and CircuitPython.

#### 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

- esp8266_ntp_webserver - MicroPython + ESP8266 + NTP + web server.
- micropython-ntpd - An implementation of an NTP daemon in MicroPython.
- micropython_ntpserver - An NTP server written for MicroPython.
- micropython-ntpclient - NTP client for MicroPython using uasyncio.
- micropython-ntp - Robust NTP library for MicroPython.

#### 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

- micropython-ota-updater - OTA Updater for MicroPython.
- Micropython-ESP32-OTA - MicroPython updater based on rdehuyss/micropython-ota-updater.
- senko - Simplest OTA update solution for your MicroPython projects.

#### Proxy

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

#### Radio

- micropython-radio - Protocols for nRF24L01 2.4GHz radio modules.
- micropython-rfsocket - MicroPython implementation of popular 433MHz-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.
- FM_Talkie - FM Walkie Talkie using RDA5820N.
- micropython-TEA5767 - MicroPython ESP8266/ESP32 driver for TEA5767 FM radio module.
- micropython-ppm-decoder - Utility for decoding an R/C receiver PPM frame signal.
- ESP32-433Mhz-Receiver-and-Tools - ESP32 433MHz receiver written in MicroPython and tools for Windows.
- ESP32-433Mhz-Transmitter - A pure MicroPython RF transmitter. You can create and add your own encoder.
- pico_jjy_tx - JJY transmitter for Raspberry Pi Pico W.
- pico_dcf77_tx - DCF77 transmitter for Raspberry Pi Pico W.
- micropython_dcf77 - DCF77 receiver and decoder.
- EByte_LoRa_E220_micropython_library - MicroPython LoRa EBYTE E220 devices.
- EByte_LoRa_E22_micropython_library - MicroPython LoRa EBYTE E22 devices.
- EByte_LoRa_E32_micropython_library - MicroPython LoRa EBYTE E32 devices.

#### RC receiver

- micropython-ppm_reader - Library to decode PPM signals coming from a 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

- micropython-mfrc522 - Driver for NXP MFRC522 RFID reader/writer.
- micropython-wiegand - Wiegand protocol reader.
- urdm6300 - A MicroPython driver for the popular RDM6300 RFID card reader.

#### RPC

- ujrpc - JSON RPC for MicroPython.

#### RTC

- micropython-tinyrtc-i2c - Driver for DS1307 RTC and AT24C32N EEPROM.
- Micropython_TinyRTC - Driver for DS1307 RTC.
- micropython-mcp7940 - Driver for the Microchip MCP7940 RTC.
- micropython-ds1302-rtc - DS1302 RTC Clock driver for MicroPython.
- DS3231micro - MicroPython library for DS3231.
- micropython-ds1307 - MicroPython driver for DS1307 RTC.
- esp-ds3231-micropython - A DS3231 library for ESP8266/ESP32 with MicroPython.
- PCF8563_PythonLibrary - MicroPython library for NXP PCF8563 Real-time clock/calendar.
- DS3231 - MicroPython module for the DS3231 clock from Maxim Integrated.
- DS1307 - MicroPython driver for the DS1307 real time clock.
- micropython-DS3231-AT24C32 - MicroPython driver for DS3231 RTC.
- micropython_rx-8035 - A MicroPython Driver for Seiko Epson’s RTC, RX-8035SA/LC.

#### 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

- micropython-socks - MicroPython library implementing SOCKS server.

#### 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

- micropython-SYN6988 - MicroPython library for the VoiceTX SYN6988 text to speech module.

#### 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

- HueBridge - Philips Hue Bridge.
- micropython-wifimanager - A simple network configuration utility for MicroPython on the ESP8266 board.
- WiFiManager - WiFi manager for ESP8266 - ESP12 - ESP32 - MicroPython.
- Micropython-ESP-WiFi-Manager - WiFi Manager to configure and connect to networks.
- mpy-wpa_supplicant - MicroPython module to connect to the nearest known Wifi AP.
- micropython-wifi_manager - WiFi Manager for ESP8266 and ESP32 using MicroPython.

#### 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

- micropython-ili9341 - SSD1606 active matrix ePaper display 128x180.
- micropython-waveshare-epaper - Drivers for various Waveshare ePaper modules.
- micropython-waveshare-epd - Waveshare ePaper Display driver for devices running Pycom-flavored MicroPython.
- ssd1675a - Driver for SSD1675-based e-paper displays.
- Inkplate-micropython - MicroPython driver for Inkplate boards.
- micropython-inkplate6 - MicroPython driver for the Inkplate 6.
- eInk-micropython - eInk library for Waveshare 4.3inch device on MicroPython.
- eink - An eInk, ePaper display driver for MicroPython and ESP32.
- micropython_DEPG0213BN - Pure MicroPython driver for the DEPG0213BN eInk display found on the TTGO T5 V2.3 ESP32 boards.
- uPyEINK - Control a Waveshare 7.5” E-INK display using an ESP32 running MicroPython.
- MicroPython-2.9-inch-ePaper-Library - MicroPython Display Driver for WaveShare 2.9inch e-Paper Display (B).
- uc8151_micropython - UC8151 / IL0373 MicroPython e-paper display driver with support for greyscales and fast updates.

#### 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

- micropython-stage - A MicroPython port of the Stage game library.
- micropython-png - Derivative of PyPNG for use with MicroPython.
- mpy-img-decoder - PNG and JPEG decoder / parser / renderer in pure MicroPython.
- micropython-oled-progressbars - A collection of progress bars for use with ESP8266 and ESP32 on OLED displays.
- microplot - Simple MicroPython plotting package.
- micropython-microbmp - A small Python module for BMP image processing.
- MicroPython_UPLOT - MicroPython Small Graphics Framework.
- Tempe - Efficient MicroPython graphics library built on top of `framebuf`.
- mp_jpeg - A very fast MicroPython JPEG encoder and decoder for the ESP32.

#### 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

- 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.
- pyboard-LCD-character-display - Pyboar 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.
- HD44780-lcd-upy - MicroPython module for controlling a generic HD44780 LCD.
- LCM1602-14_LCD_Library - driver for AIP31068L 3.3 V I2C and SPI 1602 Serial Character LCDs.
- micropython-i2c-lcd - MicroPython package to control HD44780 LCD displays 1602 and 2004 via I2C.
- micropython_i2c_lcd - MicroPython library for interacting with HD44780-based LCD displays through a PCF8574 I/O expander. It offers a high-level API for LCD control, including text display, cursor manipulation, and backlight settings, while also providing lower-level access to the GPIO operations on the PCF8574.

#### LCD Graphic

- micropython-lcd-AQM1248A - ESP8266 driver for AQM1248A graphic LCD.
- 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-SHARP_Memory_Display - MicroPython driver for SHARP memory display.

#### 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

- 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-max7219 - MicroPython driver for MAX7219 8x8 LED matrix.
- MatrixDisplay - MicroPython module for work with MAX7219 LED matrix 8x8 display.
- LED_panel_upy - MicroPython driver module for Panel P10 32x16 Matrix display and its variants.

#### LED Segment

- 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-tm1640 - MicroPython Library for 16 digits 7-segment displays controlled by a TM1640.
- TM74HC595 - Driver for shift register-controlled 5 pin display modules.
- micropython-tm1638spi - MicroPython Library for a popular board with 8 7-segment digits, 8 separate LEDs and 8 push buttons controlled by a TM1638.
- micropython-hpdl1414 - MicroPython HPDL-1414 Display Driver.

#### LEDs

- 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.
- micropython-ws2801 - A MicroPython library to interface with strands of WS2801 RGB LEDs.
- tlc5947-rgb-micropython - Driver for the TLC5947 24 channel 12-bit PWM LED driver.
- micropython-ht16k33 - MicroPython driver for the HT16K33, a LED matrix, 7-Segment Numeric, and 14-Segment Alphanumeric display driver IC.
- micropython-rgbled - This wrapper module aims to reduce the work needed to work with NeoPixel (WS2812) and DotStar (APA102) RGB LED strips and matrices.
- micropython_fastled - Port of FastLED to MicroPython.
- micropython-rgb-led-driver - Tiny driver to control an RGB LED with PWM.
- micropython-dotstar - A MicroPython port of the Adafruit CircuitPython APA102/DotStar library.
- micropython-aw210xx - Driver for Awinic’s AW210xx line of 8-bit LED drivers.

#### OLED

- 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.
- micropython-ssd1309 - MicroPython SSD1309 Monochrome OLED Display Driver.
- sh1107-micropython - MicroPython driver for SH1107-based OLED display (64x128).
- SH1107 - Driver for SH1107 OLED displays (128x128 and 128x64 pixels).
- micropython-ssd1322 - MicroPython display driver for SSD1322 grayscale OLED.
- micropython-ssd1306 - MicroPython SPI & I2C Display Driver for SSD1306 monochrome OLED.

#### Printer

- micropython-thermal-printer - The MicroPython port of Python Thermal Printer by Adafruit.

### 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

- micropython-nunchuck - Driver for Nunchuk game controller, I2C interface.
- esp32-microgamepad-ble - Dual analog joystick on ESP32 over BLE (Nordic UART Service - NUS) using MicroPython.
- micropython-joystick-2-unit - Driver for the M5Stack Joystick 2 Unit.
- Micropython_Joystick - A simple and fast library for joysticks over ADC.

#### Keyboard

- micropython-keyboard - 47 key keyboard running on a MicroPython Pyboard.
- pico-rgbkeypad - A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico.
- micropython-aiobutton - A MicroPython module for asyncio button.
- MicroPython-SimpleKeypad - MicroPython library for interfacing with a keypad matrix.

#### 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

- AXP202_PythonLibrary - MicroPython AXP202 Library.
- micropython_hourly_sleeper_library - A MicroPython library that enables an ESP8266 to sleep for hourly increments for a setup amount of hours.

#### PWM

- upwmcontroller - A MicroPython library for controlling PWM outputs in an asyncio loop, with features including fading and blinking.

#### Relay

- micropython-xl9535-kxv5-relay - A MicroPython library for jxl XL9535-KxV5 I2C relay boards.

#### Rotary Encoder

- micropython-rotary - MicroPython module to read a rotary encoder.
- uencoder - A MicroPython library for reading from a rotary encoder.
- encodermenu - Simple GUI menu for MicroPython using a rotary encoder and basic display.
- encoderLib - MicroPython library to handle a rotary encoder.
- rotary-encoder - MicroPython code to drive a KY-040 rotary encoder.
- micropython-encoder-knob - A very simple lightweight encoder knob library with button support.
- encoders - Short document explaining issues around encoder technology.
- asynchronous encoder driver - Interface an encoder to uasyncio code.
- micropython-8encoder - Driver for the I2C M5Stack 8-Encoder Unit.
- micropython-quiic-twist - MicroPython Driver for Quiic Twist RGB Rotary Encoder.
- AS5600 - AS5600 MicroPython library for reading this magnetic sensor.
- AS5600 - MicroPython module for controlling single-turn magnetic encoder AS5600.

#### 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

- Micropython-AD9833 - Pyboard driver for AD9833, SPI interface.
- Clock_Generators - Clock generators (Si5351 for now) toolbox.
- Signal_Generators - Signal generators (AD9833, AD9834, AD9850, ADF4351) toolbox.
- pico-wave-vibration-generator - A MicroPython-based frequency generator for Raspberry Pi Pico designed to create vibrations on solenoids or speakers, enabling wave experimentation and exploration at home.
- micropython-m5stack-dds - MicroPython driver for the M5Stack DDS frequency generator.
- AD9833-MicroPython-Module - MicroPython module to use the AD9833 programmable 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

- MicroPython Motor Kit - General motor control libraries.

#### 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

- micropython-stepper - Library to control common stepper drivers in a tidy way.
- micropython-upybbot - A4988 driver for bipolar stepper motors.
- uln2003 - Driver for 5V 28BYJ-48 stepper motors.
- micropython-multiaxis - Multiaxis with MicroPython ESP32 and DRV8825.
- ticlib - Driver for Pololu Tic stepper motor controllers.
- AccelStepper-MicroPython - AccelStepper Library for MicroPython - ESP32.
- pystepper - MicroPython Stepper Motor Sequence Control.
- uPySteppers - DIY rotating platform using an ESP32 connected to WiFi.
- microPython_AMIS-30543 - MicroPython library for Stepper Driver control using AMIS-30543 driver.
- micropython-drv8825 - Driver and example in MicroPython to control a stepper motor via a DRV8825 controller board.
- microPython_TMC5160 - A MicroPython library for the Trinamic TMC5160 Motion Controller.
- micropython-stepper-motor - Drive a 28BYJ-48 motor attached to a ULN2003 driver.

### Sensors

#### Accelerometer Digital

- ADXL345-with-Pyboard - Driver for ADXL345 16g 3-axis accelerometer.
- adxl345_micropython - Driver for ADXL345 16g 3-axis accelerometer.
- MicroPython-LIS3DH - I2C driver for LIS3DH 3-axis accelerometer.
- micropython-lis2hh12 - I2C driver for LIS2HH12 3-axis accelerometer.
- MMA7660 - Driver for MMA7660 1.5g 3-axis accelerometer.
- ADXL345_spi_micropython - Library for interacting through the SPI protocol with an ‘Analog Devices ADXL345’ accelerometer from an MCU flashed with MicroPython.
- MicroPython_ADXL343 - MicroPython Driver for the Analog Devices ADXL343 Accelerometer.
- MicroPython_BMA220 - MicroPython Driver for the Bosch BMA220 Accelerometer.
- MicroPython_BMA400 - MicroPython Driver for the Bosch BMA400 Accelerometer.
- bma423-pure-mp - MicroPython Driver for the Bosch 423 accelerometer. Includes FIFO support. ⏩
- MicroPython_LIS3DH - MicroPython Driver for the LIS3DH 3-axis accelerometer.
- MicroPython_KX132 - MicroPython Driver for the Kionix KX132 Accelerometer.
- MicroPython_H3LIS200DL - MicroPython Driver for the ST H3LIS200DL Accelerometer.
- MicroPython_QMC5883L - MicroPython Driver for the QMC5883L Accelerometer.
- Micropython_MC3479 - MicroPython Driver for the MC3479 Accelerometer.
- MicroPython_MMA8451 - MicroPython module for the MMA8451 3-axis accelerometer.
- MicroPython_MMA8452Q - MicroPython Driver for the NXP MMA8452Q Accelerometer.
- msa301-micropython-driver - Homebrew MicroPython driver for MSA301 3-axis accelerometer. Tested on Raspberry Pico.

#### Air Quality

- 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 P air quality sensor for MicroPython.
- polly - SDS011 pollution sensor + Wemos D1 mini pro + MicroPython.
- micropython-SNGCJA5 - MicroPython driver for Panasonic SN-GCJA5 particulate matter (PM) sensor.

#### 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

- Micropython-LC709203F - A simple MicroPython library for LC709293F Fuel Gauge.

#### 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

- micropython-tcs34725 - Driver class for TCS34725 and TCS34727 color sensors.
- micropython-as7341 - MicroPython library for AS7341.
- MicroPython_ISL29125 - MicroPython Driver for the Intersil ISL29125 Color Sensor.
- TCS3200-MicroPython - A MicroPython driver and test programs for the TCS3200 color sensor.
- MicroPython_TCS3430 - MicroPython driver for the AMS TCS3430 Color and ALS sensor.
- micropython-gy33 - UART and I2C drivers for GY-33 module (TCS3472 color sensor).
- veml6040 - MicroPython module for managing a color sensor RGBW, VEML6040 from Vishay.

#### Compass

- micropython-esp8266-hmc5883l - 3-axis digital compass on the ESP8266.
- QMC5883 - Python class for the QMC5883 Three-Axis Digital Compass IC.
- microPython_AS5600L - MicroPython driver for AS5600L magnet rotary position sensor.
- QMC5883 - MicroPython module for control QMC5883L geomagnetic sensor.

#### 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

- micropython-gp2y0e03 - IR-LED distance measuring sensor using Sharp GP2Y0E03.
- micropython-vl6180 - Time-of-Flight sensor, ambient light sensor & IR emitter.
- GP2Y0A21YK - GP2Y0A21YK MicroPython library.

#### Distance Laser

- micropython-vl53l0x - Time-of-Flight laser-ranging sensor.
- Qwiic_TOF_Module_RFD77402 - Qwiic TOF Module (RFD77402) time-of-flight rangefinding module.
- VL53L0X - MicroPython Library for LiDAR Sensor VL53L0X.
- vl53l1x_pico - MicroPython driver for the VL53L1X ToF sensor.
- tf-luna-micropython - A simple MicroPython I2C library for TF-Luna LiDAR Module.
- vl53l5cx - MicroPython and CircuitPython Package for the VL53L5CX (4x4/8x8 ToF sensor array).
- VL6180X - MicroPython driver for the VL6180X sensor on the ESP32.
- LidarLight_v3HP_micropython - A MicroPython library for the Garmin Lidar Lite v3HP.
- vl53l1x - MicroPython driver for the VL53L1X ToF sensor.
- vl53l0x-nb - Fork of MicroPython driver for vl53l0x TOF sensor to add non-blocking mode.

#### Distance Ultrasonic

- micropython-hcsr04 - Driver for HC-SR04 ultrasonic distance sensors.
- micropython-us100 - MicroPython driver for the US-100 sonar distance sensor.
- micropython-i2c-ultrasonic - MicroPython driver for the RCWL-9620-based M5 I2C Ultrasonic Distance Unit.
- micropython-grove-ultrasonic-ranger - Driver for SeeedStudio’s Grove Ultrasonic Ranger.

#### 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

- MicroPython_HTS221 - MicroPython Driver for the HTS221 Humidity Sensor.

#### 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

- MicroPython_LIS2MDL - MicroPython Driver for the ST LIS2MDL Magnetometer sensor.
- MicroPython_LIS3MDL - MicroPython Driver for the ST LIS3MDL magnetometer.
- MicroPython_MLX90393 - MicroPython Driver for the MLX90393 Magnetometer.
- MicroPython_MMC5603 - MicroPython driver for the Memsic MMC5603 Magnetometer.
- MicroPython_BMM150 - MicroPython Driver for the Bosch BMM150 Magnetometer.
- MicroPython_MMC5983 - MicroPython Library for the Memsic MMC5983 Magnetometer.
- MMC5603 - MicroPython module for MMC5603 geomagnetic sensor.
- HSCDTD008A - MicroPython module for HSCDTD008A geomagnetic sensor.
- RM3100 - MicroPython module for RM3100 geomagnetic sensor.

#### Motion Inertial

- 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-fusion - Sensor fusion calculates heading, pitch and roll from the outputs of motion tracking devices.
- flight_controller - MicroPython flight controller.
- micropython-bno055 - Bosch BNO055 driver for MicroPython. IMU with hardware sensor fusion.
- micropython-mpu6050-mqtt-streamer - Stream data from MPU6050 to MQTT server using MicroPython on ESP8266.
- upy-motion - A simple MPU6050 driver written in MicroPython.
- micropython-bno08x-rvc - MicroPython library for BNO08x.
- micropython-mpu9250 - MicroPython MPU-9250 (MPU-6500 + AK8963) I2C driver.
- MicroPython_ICM20948 - MicroPython Driver for the TDK ICM20948 Accelerometer/Gyro Sensor.
- MicroPython_BMI160 - MicroPython Driver for the Bosch BMI160 Accelerometer/Gyro Sensor.
- micropython-mpu6050 - MicroPython library for reading from MPU-6050 accelerometer and gyroscope modules.
- MicroPython_ICG20660 - MicroPython Driver for the TDK ICG20660 Accelerometer/Gyro sensor.
- MicroPython_BMI270 - MicroPython Driver for the Bosch BMI270 Accelerometer/Gyro Sensor.
- MicroPython_LSM6DSOX - MicroPython Library for the ST LSM6DSOX accelerometer/gyro Sensor.

#### 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

- micropython-geiger - Geiger counter with MicroPython card.
- ESPGeiger - MicroPython library for the ESP8266 Geiger counter.

#### 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

- AS726X_LoPy - MicroPython driver for the AS726X spectral sensor.
- MicroPython_AS7262X_driver - MicroPython driver for AS7262/AS7263 nano spectrometer sensor.

#### 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

- micropython-mlx90614 - Driver for Melexis MLX90614 IR temperature sensor.
- MicroPython_MLX90615_driver - MicroPython driver for Melexis MLX90615 IR temperature sensor.

#### 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

- XPT2046-touch-pad-driver - Driver for XPT2046 touch pad controller used in many TFT modules.

### 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

- micropython-fram - Pyboard driver for Ferroelectric RAM module.

#### 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

- micropython-hexdump - An implementation of Hexdump for MicroPython.

## Community

- MicroPython Discussions on GitHub - GitHub discussions for all things related to MicroPython.
- MicroPython Forum (archive) - Archived community conversations on all things related to MicroPython.
- Discord - Get an invite to the MicroPython Discord server.
- MicroPython on Mastodon / Fediverse - Follow MicroPython in the Fediverse.
- MicroPython on Twitter - Follow MicroPython on Twitter for latest news and updates.
- MicroPython on Facebook - Like MicroPython on Facebook for competitions, news and updates.
- Melbourne MicroPython Meetup - Regular meetup at CCHS in Melbourne, Australia.

## Tutorials

- asyncio - Write asynchronous code which interfaces to hardware devices.
- Asynchronous drivers - Tutorial and code for asynchronous interfaces to switches, pushbuttons, encoders and ADCs.
- Pyboard micropower - Tutorial and code for low power applications on Pyboard 1.x and Pyboard D.
- 3D rotation with quaternions - Tutorial and code for the easy way to do 3D rotation.
- Miguel Grinberg - MicroPython and the Internet of Things.
- Bhavesh Kakwani - MicroPython videos + written tutorials.
- CoderDojo Twin Cities MicroPython - Full coding curriculum for teaching MicroPython to children.
- MicroPython Tutorials for ESP32 boards - Tutorials with code examples to learn the basic of MicroPython with ESP32 boards.
- Learn MicroPython with a Pi Pico board - Tutorials on MicroPython with the Raspberry Pi Pico / RP240 boards.

## Books

- Programming with MicroPython: Embedded Programming with Microcontrollers and Python - By Nicholas H. Tollervey. ISBN 9781491972731.
- MicroPython for the Internet of Things: A Beginner’s Guide to Programming with Python on Microcontrollers - By Charles Bell. ISBN 9781484231227.
- Beginning MicroPython with the Raspberry Pi Pico: Build Electronics and IoT Projects - By Charles Bell. ISBN 9781484281345.
- MicroPython Cookbook - By Marwan Alsabbagh. ISBN 9781838649951.
- Python for Microcontrollers: Getting Started with MicroPython - By Donald Norris. ISBN 9781259644535.
- Advanced Programming in MicroPython By Example - By Yury Magda. ISBN 9781090900937.
- MicroPython Projects - By Jacob Beningo. ISBN 9781789958034.
- Get Started with MicroPython on Raspberry Pi Pico 2nd Edition - By Gareth Halfacree and Ben Everard. ISBN 9781912047291.
- MicroPython for Microcontrollers - By Günter Spanner. ISBN 9783895764370.
- MicroPython for the Raspberry Pi Pico W: A gentle introduction to programming digital circuits with Python - By Miguel Grinberg. ISBN 9798361302710.
- Programming ESP32: Learn MicroPython Coding and Electronics - By Simon Monk. ISBN 9781739487454.

## 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

- 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.
- awesome-micropythons - The many forks & ports of MicroPython.

## 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

- esp32-backtrace - ESP32 Exception Stack Backtrace Analyzer.
- micropython-aiosentry - Asynchronous Sentry.io micro client for MicroPython.
- micropython-usyslog - Simple remote syslog client for MicroPython.
- Asynchronous monitor - Use a Raspberry Pico and a logic analyser or scope to monitor asynchronous code.

### 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

- micropython-magic - MicroPython integrated into Jupyter notebooks.
- jupyter_upydevice_kernel - Jupyter kernel to interact with a MicroPython board over its REPL interface.

#### 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

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

## 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