From the latest MicroPython Newsletter:
MicroPython’s 10th Years Old Now! The 29th of April marks the date on which the first line of code was written, which is now 10 years ago! Having 10 years of history is quite an achievement, and we are proud of that. And it’s only possible because of all of you that are part of the community. It’s one thing to develop code, but quite another to have it used by so many people and institutions around the world for such a vast array of uses.
In the past 12 months the main MicroPython code has seen 1283 commits (there are now 14676 total commits) and 121 contributors, with 573 total contributors over the life of the project. We deeply value all the code contributions, development discussions, bug reports, financial sponsorship and contracts, and general support, which together have made, and will continue to make, MicroPython a success.
To mark the 10 years of MicroPython we have prepared a timeline poster which you can find here, along with a visualisation of the evolution of the source code of MicroPython, which you can watch here.
We are also pleased and excited to let you know that MicroPython v1.20.0 has been released! This release has been 10 months in the making and includes a lot of improvements and new features. Here is a taste of some of the new items:
- We now have a new lightweight package manager called mip, which uses a custom protocol to query and install packages that is optimised for embedded systems.
- All pure-Python drivers have now been relocated to the micropython-lib repository, with full integration with mip, in an effort to provide easier installation of packages needed by a project.
- The mpremote tool is still the recommended way to interact with a MicroPython-enabled device, and now includes mip support, as well as new “edit” and “touch” commands, and the ability to separate commands with “+”.
- MicroPython fully supports the new Pico W board, which combines an RP2040 MCU and CYW43xx WiFi chip, to make it easy to explore and build small devices that connect to the Internet.
- The internal representation of built-in types has been optimised to use less code space, by compressing the C data structure of types.
- str, bytes and bytearray objects now have consistent methods. And bytes, bytearray and memoryview have gained hex and fromhex functions. This all matches CPython.
- There have been some good improvements to parsing and formatting floating point numbers.
- The framebuf module has new methods to render polygons and ellipses.
- A new “embed” port has been added, which is a port of MicroPython that targets the C language and outputs a set of self-contained .c and .h files for embedding into a wider project.
- The javascript port has been renamed to the webassembly port, and work has begun to improve it for integration into PyScript, so that (Micro)Python can be used to write the (client side) logic for webpages.
- All build artefacts (including executables) have been moved to their appropriate build directory. This affects mainly the unix and windows ports, and mpy-cross.
Despite all the improvements and additions, MicroPython still stays true to its original goal of being a lean and efficient implementation of Python. We keep a keen eye on performance (using the MicroPython performance benchmark suite) and code size, to make sure they don’t regress. As a test of this, upgrading a large project with around 20k lines of Python code, going from v1.19.1 to v1.20.0 of MicroPython, the overall firmware size decreased and memory use stayed the same. So you can be confident that when you switch to a newer version of MicroPython your existing code is still able to fit and run on your constrained device.
You can find the full release information for v1.20.0 here and download firmware from here. You can discuss it at MicroPython GitHub Discussions.
We have also recently changed a few of the online services related to MicroPython: GitHub Discussions has replaced the old phpBB forum (which is now read-only), and Discord has replaced Slack. Both of these places are great ways to interact with the wider MicroPython community.
It has again been a very busy time these past 12 months, and there is a lot more coming in the pipeline. MicroPython is part of Google’s Season of Docs for the third time so there will be even more improvements to the documentation in the coming 6 months. There is work on some new hardware targets, and we intend to put more effort into the zephyr port. We would also like to make progress this year towards MicroPython v2. So keep an eye out for updates!
From the MicroPython team.