MicroPython – Python for Microcontrollers

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • MicroPython

    MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

  • TinyGo

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

  • Anybody has experience with how it stacks up against TinyGo [1]?

    [1] https://tinygo.org/

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • circuitpython

    CircuitPython - a Python implementation for teaching coding with microcontrollers

  • See also Adafruits fork CircuitPython, modified to be easier for beginerers.

    https://circuitpython.org/

  • awesome-embedded-rust

    Curated list of resources for Embedded and Low-level development in the Rust programming language

  • Another alternative is rust. https://github.com/rust-embedded/awesome-embedded-rust

    I intend to have a try of both rust and tinygo.

    Micropython is only ok on an esp32 with psram.

  • Nim

    Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).

  • An alternative to MicroPython is Nim (https://nim-lang.org/) - it has Python-like syntax, but compiles down to C. Since it compiles down to C, it's a breeze to use existing C libraries (just wrap the signatures), plus there's no "micro" version of the language needed.

    Several members of the community have worked on improving the embedded ecosystem: although I haven't played around with either yet, nesper (for the ESP32) and ratel (generic, tested for the Arduino/AVR) have been recommended to me.

    https://github.com/elcritch/nesper/

  • ratel

  • https://github.com/PMunch/ratel

    The author of ratel also did a talk on microcontroller programming with Nim for FOSDEM. It doesn't bring up MicroPython, but it does bring up TinyGo and some other alternatives mentioned in this thread.

    https://www.youtube.com/watch?v=0dt3icPj8Kk

  • pxed

    esp32-powered pixel art editor

  • I've been using Nim and Nesper for the firmware of a device I'm making, it's been mostly great. Nim's C interop is painless, anything Nesper hasn't already wrapped can generally be pulled in from ESP-IDF in one c2nim command. My only headache has been that Nim's FreeRTOS target assumes POSIX, which ESP-IDF doesn't fully implement, so you'll hit the occasional unusable stdlib function.

    https://github.com/khogeland/pxed/

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • TIC-80

    TIC-80 is a fantasy computer for making, playing and sharing tiny games.

  • micropython-numpy

    A basic numpy like library for micropython

  • micropython-ulab

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

  • microkeys

    Windows macro using MicroPython as an engine. [WIP]

  • And with a little bit of coercing, it can be used the other way: To embed Python in Desktop apps giving you a fairly light-weight Python interpreter.

    I used it for a little Windows macro program ( https://github.com/seligman/microkeys ) . I got it to a POC stage to solve the precise problem I have, basically I needed to be able to do some simple text parsing on whatever's in the clipboard and type out the results, so I'm happy. I'm always curious if it potentially fills a need for others as well.

  • picozero

    A beginner-friendly library for using common electronics components with the Raspberry Pi Pico.

  • If you have kids and you want to give them some experience with physical computing and MicroPython, can I suggest our resources at https://projects.raspberrypi.org/en/pathways/pico-intro

    They're pretty simple and very creative, and the Raspberry Pi Pico is about the only Raspberry Pi device you can get hold of at the moment.

    We've created an abstracted package called picozero, that makes turning on LEDs and reading sensors pretty simple in MicroPython. It's very easy to install and use, if you're using the Thonny editor - https://github.com/RaspberryPiFoundation/picozero

  • pycaribbean2017

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts