To say a lot has changed in MicroPython since PicoSystem v0.1.3 might be something of an understatement. It's been almost two years and MicroPython has seen over 2.3k commits.
What does this mean for PicoSystem? Not actually all that much in practice, but it's given us the opportunity to undo a lot of hacks and make PicoSystem a lot easier to build and maintain. We've also made it better and hopefully more stable. The vast majority of changes to this end were made in #104 and include:
- Bump to MicroPython v1.23.0
- No longer based upon a downstream hack of MicroPython, PicoSystem is now just a regular C/C++ module
- boot.py now imports picosystem and makes all of its methods globally available by adding them to
builtins
- We now use
MICROPY_BOARD_DIR
and have a local board definition for PicoSystem, makes full 15MB (16MB - 1MB firmware) available - Many small tweaks to avoid heap usage and increase stability
- Fixes to
init()
so you can call it twice, thrice, many times without it exploding - Added the C++ memory shim module, catches any rogue C++ allocations and redirects them to MicroPython's heap
- Display buffer is now allocated in C, MicroPython automatically takes up any free RAM for its heap
- "with examples" builds now use a pruned LittleFS filesystem, so you can flash them with a 2.2MB .uf2 rather than a 32MB .uf2 😱
- Many quality of life and CI tweaks to bring PicoSystem up to date and make it easier to maintain
What's Changed
- Buffer fixes by @ahnlak in #87
#include <array>
explicitly in examples which need it by @joewreschnig in #93- Fix error message for backlight() by @menehune23 in #98
- Fix typo by @J-J-B-J in #89
- Tick once, not twice, per game loop by @joewreschnig in #92
- MicroPython 1.23.0 by @Gadgetoid in #104
New Contributors
- @joewreschnig made their first contribution in #93
- @menehune23 made their first contribution in #98
- @J-J-B-J made their first contribution in #89
Full Changelog: v0.1.3...v1.0.0
MicroPython Changelog: micropython/micropython@v1.19...v1.23.0