{"id":13605385,"url":"https://github.com/pfalcon/awesome-micropython","last_synced_at":"2025-10-01T05:30:41.356Z","repository":{"id":33640760,"uuid":"155666099","full_name":"pfalcon/awesome-micropython","owner":"pfalcon","description":"Curated list of awesome MicroPython resources","archived":false,"fork":false,"pushed_at":"2021-11-15T02:54:05.000Z","size":29,"stargazers_count":172,"open_issues_count":1,"forks_count":9,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-05-22T03:04:32.262Z","etag":null,"topics":["awesome","awesome-list","embedded","iot","micropython"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pfalcon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-01T05:28:18.000Z","updated_at":"2024-04-23T16:48:22.000Z","dependencies_parsed_at":"2022-08-07T22:16:43.631Z","dependency_job_id":null,"html_url":"https://github.com/pfalcon/awesome-micropython","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfalcon%2Fawesome-micropython","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfalcon%2Fawesome-micropython/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfalcon%2Fawesome-micropython/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfalcon%2Fawesome-micropython/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pfalcon","download_url":"https://codeload.github.com/pfalcon/awesome-micropython/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234827057,"owners_count":18892884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","embedded","iot","micropython"],"created_at":"2024-08-01T19:00:58.156Z","updated_at":"2025-10-01T05:30:36.307Z","avatar_url":"https://github.com/pfalcon.png","language":null,"funding_links":[],"categories":["More libraries"],"sub_categories":[],"readme":"Awesome MicroPython\n===================\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/micropython/micropython/master/logo/micropythonpowered-art.png\" alt=\"MicroPython Powered\"/\u003e\n\u003c/p\u003e\n\n[MicroPython](https://micropython.org) came known as a \"Python for\nmicrocontrollers\". It's far more than that.\n\nMicroPython is a full-stack language, which, unlike many other languages,\nis concerned not only with scaling up, but also with scaling down. This\nmeans it can run on your laptop, desktop, on a supercomputer (sure, why\nnot), but also inside your Internet router, fridge, clock, smartwatch,\ntemperature sensor, microcontroller development board, inside your new\ngame or productivity app, and in gazillion of other applications and\ndevices. Familiar, easy to use, expressive language everywhere, with\nthe ability to optimize your software based on the hardware needs.\n\nSumming this all up with the (unoffical) motto: **MicroPython runs everywhere!**\n\nMicroPython is created and maintained by Damien George,\n[@dpgeorge](https://github.com/dpgeorge/).\n\nThis list is not directly affiliated with, or endorsed by, the \"official\"\nMicroPython and/or forks owned by other parties. Opinions here are solely\nthose of the list author and agreeing contributors. The list is intended\nto capture breadth and pluralism of the MicroPython community, but may\nbe subjective nonetheless.\n\nThis list is compiled and maintained by Paul Sokolovsky, [@pfalcon](https://github.com/pfalcon/).\nThis list is licensed under [Creative Commons Attribution-ShareAlike 4.0 \nInternational License (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/):\nyou are free to share and reuse contents of this list, as long as you\ngive credit to the original author and allow other people to share/reuse\nit under the same terms.\n\n* [Forks and Variants](#forks-and-variants)\n* [Documentation](#documentation)\n* [Tools](#tools)\n* [Libraries](#libraries)\n* [Learning MicroPython](#learning-micropython)\n\n\nForks and Variants\n==================\n\nNotable Forks\n-------------\n\nThere are more than 2000 forks of MicroPython on Github, and here are\na few notable ones:\n\n* [Pycopy](https://github.com/pfalcon/pycopy) -\nby [@pfalcon](https://github.com/pfalcon/), 2nd largest (~35%) contributor\nto MicroPython. Dedicated to further developing all the great features which\nwere initially contributed to the mainline - stream I/O interface, async\nsupport, memory-saving APIs, etc. Also to optimizations, bugfixes and improved\ndocumentation. Synced with the mainline.\n* [Pycom MicroPython](https://github.com/pycom/pycom-micropython-sigfox) -\nby [@pycom](https://github.com/pycom/). Support for modern communication\nstandards like LoRa, Sigfox, etc.\n* [CircuitPython](https://github.com/adafruit/circuitpython) -\nby [@adafruit](https://github.com/adafruit/). Education friendly MicroPython\nfork, concentrating on microcontroller boards of a particular vendor.\nWealth of online tutorials and educational resources.\n* [OpenMV](https://github.com/openmv/openmv) - by [@openmv](https://github.com/openmv).\nMicroPython fork for machine vision boards.\n* [Loboris ESP32 fork](https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo) -\nby [@loboris](https://github.com/loboris). Concentrates on ESP32. A number\nof C libraries are wrapped.\n\nOS/RTOS Ports/Forks\n-------------------\n\n* POSIX/Unix - part of the mainline. The POSIX port is the biggest and most\nimportant MicroPython target, alone supporting thousands of diverse computer\nand device types, ranging from supercomputers to a few-dollar appliances.\n* Windows - part of the mainline. Runs on different Windows variants, from\nServer down to Windows IoT.\n* DOS/DJGPP - part of the mainline. Runs on DOS versions with support of x86\nextended mode.\n* [Zephyr port](https://github.com/pfalcon/micropython) - Modern advanced RTOS,\nmore than 100 boards supported.\n* FreeRTOS port - part of the mainline (as CC3200 port).\n* [mbedOS port](https://os.mbed.com/users/infinnovation/code/micropython/) -\nRTOS for ARM microcontrollers, dozens of boards supported.\n* [FrostedOS port](https://github.com/insane-adding-machines/micropython) -\nPOSIX-compatible RTOS.\n* [UEFI port](https://github.com/tianocore/tianocore.github.io/wiki/MicroPython) -\nport to UEFI (BIOS replacement framework) by Intel\n([ANN](https://software.intel.com/en-us/blogs/2018/03/08/implementing-micropython-as-a-uefi-test-framework)).\n\nHardware-specific Forks\n-----------------------\n\n* [Raspberry Pi A/B/Zero bare-metal](https://github.com/boochow/micropython-raspberrypi)\n  * Based on [@naums's fork](https://github.com/naums/micropython/commits/master)\n* [RISC-V LoFive](https://github.com/mmicko/micropython)\n* [MediaTek MT6260](https://github.com/xobs/micropython/)\n* [Infeneon XMC](https://github.com/micropython/micropython-infineon)\n* [NXP i.MX RT/LPC546](https://github.com/RockySong/micropython-rocky)\n* many more to be listed\n\nDocumentation\n=============\n\n* [README](https://github.com/micropython/micropython/blob/master/README.md) -\n  Never to miss the project README, it's an entry to the MicroPython universe.\n* [Pycopy docs](http://pycopy.readthedocs.io/) are more complete -\n  Online searchable documentation for language aspects and builtin modules.\n* [Mainline docs](http://docs.micropython.org/) lag in updates.\n* [CPython 3.5 docs](https://docs.python.org/3.5/) - MicroPython is an\n  implementation of the Python language, so main Python docs provide\n  the relevant background information (MicroPython's own docs concentrate\n  on differences with CPython and new features added.)\n\nTools\n=====\n\nAccessing MicroPython Prompt (REPL)\n-----------------------------------\n\n* Local access: MicroPython comes with REPL (read-evaluate print loop,\ninteractive prompt), which you can access right in your terminal, or by\nconnecting over UART (serial) or USB to another device.\n* Remote access:\n  * Telnet - available for some ports (e.g. CC3200), 3rd-party libraries\n    for other ports.\n  * WebREPL - REPL in your browser using Websockets! Official client:\n    http://micropython.org/webrepl/ . Can be\n    [deployed locally](https://github.com/micropython/webrepl/).\n\nShells\n------\n\nThere're shells which run directly on a MicroPython device (or in a MicroPython\nprocess), and ones whict run on a host and connect to a device:\n\nOn device:\n* [upysh](https://pypi.org/project/pycopy-upysh/) - very minimal file\n  shell using Python syntax, suitable for devices even with little memory.\n  [Part](https://github.com/pfalcon/pycopy-lib/tree/master/upysh)\n  of pycopy-lib.\n* [upy-shell](https://github.com/dhylands/upy-shell) - simple command line\n  based shell.\n\nOn host:\n* [rshell](https://github.com/dhylands/rshell) - remote shell for MicroPython.\n* [mpfshell](https://github.com/wendlers/mpfshell) - simple shell based file\n  explorer for Micropython based devices.\n* [ampy](https://github.com/adafruit/ampy) - utility to interact with a\n  MicroPython board over a serial connection.\n\nPackage Management\n------------------\n\n* Packages are distributed via [Python Package Index (PyPI)](https://pypi.org/search/?q=micropython),\n  like packages for any other Python implementation.\n* Installable using [upip](https://github.com/pfalcon/pycopy-lib#usage)\n  package manager (built into Unix port and some other ports with\n  networking capabilities, part of pycopy-lib otherwise).\n* Documentation of [MicroPython package usage](https://pycopy.readthedocs.io/en/latest/reference/packages.html)\n  * For non-networked ports, packages can be \"cross-installed\" on a host,\n    and copied to device (manually or using host-side shells above).\n  * For ultimate RAM efficiency, packages can be \"frozen\" into MicroPython\n    binary.\n\nIDEs\n----\n\n* [Thonny](https://thonny.org/) has [MicroPython suport](https://bitbucket.org/plas/thonny/wiki/MicroPython)\n* [PyCharm/IntelliJ IDEA](https://plugins.jetbrains.com/plugin/9777-micropython)\n  has [MicroPython support](https://blog.jetbrains.com/pycharm/2018/01/micropython-plugin-for-pycharm/)\n* [Mu Editor](https://github.com/mu-editor/mu)\n* many more\n\nLibraries\n=========\n\nStandard Libraries\n------------------\n\n* [pycopy-lib](https://github.com/pfalcon/pycopy-lib) - Standard library\n  of the Pycopy project. Dozens of modules ported from CPython, dozens\n  developed specifically for Pycopy.\n* [Backports of Pycopy API modules to CPython](https://github.com/pfalcon/pycopy-lib#cpython-backports) -\n  Allows to run software written for MicroPython using CPython (WIP). Part\n  of pycopy-lib.\n\nAsynchronous Scheduling and I/O\n-------------------------------\n\n* [uasyncio](https://pypi.org/project/pycopy-uasyncio/) (micro-asyncio) -\n  Pycopy’s asynchronous scheduling library, roughly modeled after\n  CPython’s asyncio. [Part](https://github.com/pfalcon/pycopy-lib/tree/master/uasyncio)\n  of pycopy-lib.\n\nGraphics\n--------\n\n* [framebuf](http://docs.micropython.org/en/latest/library/framebuf.html) -\n  builtin module for simple device-independent graphics.\n\nGraphical User Interfaces (GUI)\n-------------------------------\n\n* [micropython-nano-gui](https://github.com/peterhinch/micropython-nano-gui) -\n  lightweight MicroPython GUI library for display drivers based on `framebuf` class\n* [LittlevGL bindings](https://github.com/littlevgl/lv_binding_micropython) -\n  Bindings for [LittlevGL](https://littlevgl.com/) GUI library (C).\n\nText User Interfaces (TUI)\n--------------------------\n\n* [picotui](https://github.com/pfalcon/picotui) - Lightweight TUI widget\n  toolkit with minimal dependencies. Works both in MicroPython and CPython.\n* [FBConsole](https://github.com/boochow/FBConsole) - MicroPython terminal\n  (dupterm) over framebuffer.\n\nDatabases\n---------\n\n* [btree](https://pycopy.readthedocs.io/en/latest/library/btree.html) -\n  builtin module, simple \"NoSQL\" database with dictionary-like interface,\n  based on well-known BerkeleyDB 1.xx library. Available in both bare-metal\n  and OS ports.\n* [sqlite3](https://pypi.org/project/pycopy-sqlite3/) -\n  Reimplementation of CPython's sqlite3 module for Pycopy (Unix port).\n  [Part](https://github.com/pfalcon/pycopy-lib/tree/master/sqlite3) of pycopy-lib.\n* [micropython-redis](https://github.com/dwighthubbard/micropython-redis) -\n  Redis client.\n* [picoredis](https://github.com/SpotlightKid/picoredis) -\n  Another Redis client.\n* [uPyMySQL](https://github.com/dvrhax/uPyMySQL) - MySQL client.\n\nProtocols\n---------\n\n* HTTP\n  * [urequests](https://pypi.org/project/pycopy-urequests/) (micro-requests) -\n    implements a subset of API of well-known \"requests\" module.\n    [Part](https://github.com/pfalcon/pycopy-lib/tree/master/urequests) of\n    pycopy-lib.\n\n* DNS\n  * [udnspkt](https://pypi.org/project/pycopy-udnspkt/) - DNS queries,\n    [Sans I/O](https://sans-io.readthedocs.io/) approach.\n    [Part](https://github.com/pfalcon/pycopy-lib/tree/master/udnspkt) of\n    pycopy-lib.\n\n* Websocket\n  * [websocket](https://github.com/pfalcon/micropython/blob/pfalcon/extmod/modwebsocket.c) - \n  builtin provisional module (i.e. details of API is subject to change).\n\nWeb Frameworks\n--------------\n\n* [picoweb](https://github.com/pfalcon/picoweb/) - Really minimal web\n  application framework based on \"uasyncio\" module.\n\nInterfacing with Other Languages\n--------------------------------\n\n* [ffi](https://pycopy.readthedocs.io/en/latest/library/ffi.html) -\n  Foreign Function Interface module for MicroPython. Call C, etc. functions\n  from dynamic libraries or just in memory.\n* [uctypes](https://pycopy.readthedocs.io/en/latest/library/uctypes.html) -\n  \"Foreign Data\" interface for MicroPython. Access binary data structures\n  with the expressiveness of C language. \"ffi\" and \"uctypes\" modules commonly\n  used together.\n* [jni](https://github.com/pfalcon/pycopy/blob/pfalcon/ports/unix/modjni.c) -\n  Module for JavaVM integration (using JNI).\n* [pycopy-ffigen](https://github.com/pfalcon/pycopy-ffigen) -\n  Automatically generate bindings for `ffi`/`uctypes` modules from C header\n  files.\n* [micropython-wrap](https://github.com/stinos/micropython-wrap) -\n  C++ wrapper to interface C++ code with MicroPython easily.\n* [ullvm](https://github.com/pfalcon/ullvm) - Bindings for LLVM C API.\n\nTextual Data Processing\n-----------------------\n\n* Regular expressions\n  * [ure](https://pycopy.readthedocs.io/en/latest/library/ure.html) (micro-re) -\n    builtin module which implements subset of regular expression syntax.\n  * [re-pcre](https://pypi.org/project/pycopy-re-pcre/) -\n    more complete regular expression implementation, based on PCRE library,\n    largely compatible with full CPython re syntax.\n* Templating\n  * [utemplate](https://github.com/pfalcon/utemplate) - Micro template engine\n    with low memory usage, based on generators.\n\nSciences\n--------\n\n* [uMath](https://github.com/AaronKel/uMath) - Symbolic computer algebra system\n  (CAS)\n\nLearning MicroPython\n====================\n\nSites\n-----\n\n* [MicroPython category in Adafruit Learning System](https://learn.adafruit.com/category/micropython)\n\nBooks\n-----\n\n* [Programming with MicroPython: Embedded Programming with Microcontrollers and Python](https://books.google.com/books/about/Programming_with_MicroPython.html?id=Bic3DwAAQBAJ),\n  Nicholas H. Tollervey, 2017\n* [MicroPython for the Internet of Things: A Beginner’s Guide to Programming with Python on Microcontrollers](https://books.google.com/books/about/MicroPython_for_the_Internet_of_Things.html?id=70NADwAAQBAJ),\n  Charles Bell, 2017\n\nAcademia\n--------\n\n* University of California, Berkeley. [EE 49: Electronics for IoT](https://people.eecs.berkeley.edu/~boser/courses/49/index.html).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfalcon%2Fawesome-micropython","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpfalcon%2Fawesome-micropython","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfalcon%2Fawesome-micropython/lists"}