MicroPython VS circuitpython

Compare MicroPython vs circuitpython and see what are their differences.

MicroPython

MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems (by micropython)
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
MicroPython circuitpython
212 94
20,584 4,305
0.8% 0.8%
9.9 0.0
8 days ago 2 days ago
C C
MIT GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

MicroPython

Posts with mentions or reviews of MicroPython. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-07-13.
  • Why Lua Beats MicroPython for Serious Embedded Devs
    4 projects | news.ycombinator.com | 13 Jul 2025
    it's not an embeddable runtime like Lua

    While it's true you can't have multiple MicroPython interpreters running concurrently (or at least not easily; it's not that the design makes this impossible, it's just that all in all MicroPython is fairly young and development focus has been put elsewhere), it is possible to embed MicroPython. Not completely out of the box, needs some glue code etc. See for example https://github.com/micropython/micropython/tree/master/ports....

  • 讓 MicroPython 輸入中文
    1 project | dev.to | 5 Jul 2025
  • MicroPython on M68k Mac
    1 project | news.ycombinator.com | 1 Jul 2025
    It's obviously not directly comparable - each port will be different - but startup time is <50ms on an RP2040 (Cortex M0 @133MHz):

    https://github.com/micropython/micropython/issues/8420

  • MicroPython v1.25.0
    5 projects | news.ycombinator.com | 14 May 2025
    Yes, although MicroPython is focused on running on microcontrollers it can be useful if you want to reduce memory consumption, flash space and even startup time on servers.

    The challenge is that MicroPython has many fewer standard libraries:

    https://github.com/micropython/micropython/wiki/Standard-Lib...

    And so many Python libraries targeting CPython won't work out-of-the box and you'll need to modify them or use alternatives that do work on the MicroPython subset.

  • MicroPython – Python for Microcontrollers
    1 project | news.ycombinator.com | 28 Mar 2025
  • Mruby/C and picoruby: high level langs in low-level devices?
    2 projects | news.ycombinator.com | 23 Mar 2025
  • Ask HN: What less-popular systems programming language are you using?
    38 projects | news.ycombinator.com | 1 Mar 2025
    I'll link to it because many people don't know a version of Python runs on microcontrollers:

    https://micropython.org/

  • Tactility: OS for the ESP32 Microcontroller Family
    3 projects | news.ycombinator.com | 10 Jan 2025
    I'm personally working on something like this for the ESP32, but written on top of micropython [1]. A few things are written in C such as the display driver, but otherwise most things are in micropython. We chose the T-Watch 2020 V3 microphone variant as the platform [2].

    Our objective is to build a modern PDA device via a mostly stand-alone watch that can be synced across devices (initially the Linux desktop). We want to achieve tasks that you might typically do on your desktop, focussed towards productivity.

    We did consider a custom OS, but decided against it for a few reasons:

    1. Allowing somebody else to handle basic OS stuff allows us to concentrate on what really matters, the higher level stuff on top.

    2. Having multiple threads in micropython is super simple and we are able to run many active apps at the same time, rather than having to kill them off [3]. Our background apps can continuously interact with the network in the background.

    3. Code written for micropython can be easily run on other Python-capable devices.

    [1] https://micropython.org/

    [2] https://lilygo.cc/products/t-watch-2020-v3

    [3] https://tactility.one/#/application-lifecycle

  • Release RP2350 and ESP32-C6 support, RISC-V native emitter, common TinyUSB code
    1 project | news.ycombinator.com | 3 Nov 2024
  • Wasm2Mpy: Compiling WASM to MicroPython so it can run in Raspberry
    8 projects | news.ycombinator.com | 20 Sep 2024
    tools/mpy_ld.py: https://github.com/micropython/micropython/blob/master/tools...

    tools/mpy-tool.py lists opcodes: https://github.com/micropython/micropython/blob/master/tools...

    Can the same be done with .pyc files; what are the advantages of MicroPython native modules?

    Why does it need wasm2c?

circuitpython

Posts with mentions or reviews of circuitpython. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • Talking to the Pico over USB
    1 project | dev.to | 16 Jul 2024
    The keypad itself can mimic any keypresses on a regular keyboard if the Pico is installed with CircuitPython, so the Pico-to-Mac communication is already set up. For the Mac to communicate with the Pico, I managed to piece the instructions together from various sources. That’s the bit I’ll be bringing together into this article.
  • Thoughts on a machine?
    1 project | /r/Fencing | 9 Dec 2023
    As another point for those interested, it (to my knowledge) is currently the ONLY implementation of a scoring machine that the firmware for the device is written in Circuit Python. which gives this unit an advantage when it comes to any and all multi tasking that the unit may need to do.
  • Unveiling secrets of the ESP32: creating an open-source Mac layer
    5 projects | news.ycombinator.com | 6 Dec 2023
    The barrier to entry has never been lower. Last night I prototyped some code in Python on my Mac to talk to a Bluetooth peripheral, and then had ChatGPT translate it to Arduino C++ code for a $5 ESP32 which mostly worked on the first go.

    You can even run Python on microcontrollers these days. See Adafruit's https://circuitpython.org for which they publish modules for many (almost all?) of the sensors they sell. The modern microcontroller frameworks hide much of the complexity of Wi-Fi, Bluetooth, filesystems, etc. so you can do complicated things with minimal effort. You can really cobble something together in an afternoon.

  • ALT.CTRL.GameCraft Workshop @ Beta Festival Write-up
    3 projects | dev.to | 7 Nov 2023
    The Pico runs CircuitPython and uses Adafruit's HID library to emulate a keyboard. It's also possible to emulate a mouse and a gamepad (there are some experiments for gamepad emulation in experiments).
  • CircuitPython added supports for Makerdiary nRF52840 Connect Kit
    1 project | /r/makerdiary | 15 Jul 2023
  • HT1632c library for circuitpython
    2 projects | /r/circuitpython | 21 Jun 2023
    Asked your question in the adafruit discord and they said there's no HT1632c library for circuit python yet. There is a library for micropython. You can request to have it ported from the Micropython library I linked to by opening a feature request in the Circuit Python Github. That would be your best option for now or attempt to port the library yourself.
  • Question about programming arduino
    2 projects | /r/arduino | 3 Jun 2023
  • This may be an odd question but can someone give me a Tl;dr of the Adafruit ecosystem between 2019-now?
    1 project | /r/adafruit | 13 May 2023
    Microcontrollers can run Python now https://circuitpython.org/
  • Projects for newbs!
    2 projects | /r/arduino | 21 Apr 2023
    I'm aware of two versions of Python for microcontrollers. Micro Python and Circuit Python
  • Pause and resume more than one audiofile with audiocore
    1 project | /r/circuitpython | 13 Mar 2023
    I tried to look in https://github.com/adafruit/circuitpython/tree/main/shared-bindings at audiocore, audioio, an audiomixer looking for a way to access the sample counter manually but I have no clue what I'm looking at :(

What are some alternatives?

When comparing MicroPython and circuitpython you can also consider the following projects:

TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.

moddable - Tools for developers to create truly open IoT products using standard JavaScript on low cost microcontrollers.

Unicorn Engine - Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)

micropython-ulab - a numpy-like fast vector module for micropython, circuitpython, and their derivatives

IronPython - Implementation of Python 3.x for .NET Framework that is built on top of the Dynamic Language Runtime.

Espruino - The Espruino JavaScript interpreter - Official Repo

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured

Did you know that C is
the 6th most popular programming language
based on number of references?