MicroPython quo vadis

Weil das Ökosystem seit einiger Zeit ein wenig fragmentiert, hier eine Stammbaumsammlung mit Übersicht über verschiedene Forks und Anverwandte.

Überblick

Python-on-a-chip and PyMite, a Python Virtual Machine

Vanilla MicroPython

The genuine MicroPython for STM32 by Damien George et al.

Pycom MicroPython for ESP32

A MicroPython fork for ESP32 by Pycom.

LoBo MicroPython for ESP32

A MicroPython fork for ESP32 by Boris Lovosevic (@loboris).

CircuitPython for Cortex-M0 and -M4

By Adafruit.

Pycopy

By Paul Sokolovsky.
Focusing on uasyncio for MicroPython and more.

Zerynth VM, formerly called VIPER

Neuigkeiten

2013

2014

2015

2017

2018

2019

State of the onion by Tomasz Switon

The old port of MicroPython to ESP32 went dormant around two years ago with MicroPython version 1.9.2.

That’s probably the time Pycom MicroPython was left behind after Genuine MicroPython went on. On Pycom MicroPython, we are stuck with MicroPython version 1.9.4 right now.

More news where the Genuine/Vanilla MicroPython is heading towards.

Differences between CircuitPython and MicroPython

CircuitPython — Adafruit CircuitPython 0.0.0 documentation

CircuitPython

  • includes ports for MicroChip SAMD21 (Commonly known as M0 in Adafruit product names) and SAMD51 (M4).
  • supports only SAMD21, SAMD51, and nRF52840 ports.
  • tracks MicroPython’s releases (not master).
  • floats (aka decimals) are enabled for all builds.
  • error messages are translated into 10+ languages.
  • does not support concurrency within Python (including interrupts and threading). Some concurrency is achieved with native modules for tasks that require it such as audio file playback.

Behavior

Not replicated here.

API

  • Unified hardware APIs. Documented on ReadTheDocs.
  • API docs are rST within the C files in shared-bindings .
  • No machine API.

Modules

  • No module aliasing. ( uos and utime are not available as os and time respectively.) Instead os, time, and random are CPython compatible.
  • New storage module which manages file system mounts. (Functionality from uos in MicroPython.)
  • Modules with a CPython counterpart, such as time , os and random , are strict subsets of their CPython version. Therefore, code from CircuitPython is runnable on CPython but not necessarily the reverse.
  • tick count is available as time.monotonic()

We are so happy about the leap forward through Pycom Firmware Release 1.20.1, which bumps the Espressif SDK to IDF V3.2 and also brings us MicroPython 1.11.

A MicroPython-port to the energy-friendly Silicon Labs EFM32 MCUs for ultra-low power applications might be coming, see also EFM32 port - MicroPython Forum.

Linux kernel port of MicroPython


See also the Linux kernel MicroPython port README.