Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MicroPython 1.23.0 #104

Merged
merged 28 commits into from
Jul 12, 2024
Merged

MicroPython 1.23.0 #104

merged 28 commits into from
Jul 12, 2024

Conversation

Gadgetoid
Copy link
Member

@Gadgetoid Gadgetoid commented Jul 5, 2024

A long overdue set of changes to bring PicoSystem kicking and screaming into 2024, MicroPython 1.23.0 and a quiet, hack-free life of almost vanilla mainline MicroPython.

Preview builds are here (these links may be updated):

⚠️ flashing these build will erase your files, back up your PicoSystem files first ⚠️

  1. With examples: https://github.com/pimoroni/picosystem/actions/runs/9813982533/artifacts/1672548574
  2. Without examples: https://github.com/pimoroni/picosystem/actions/runs/9813982533/artifacts/1672548560

What's changed

  • 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

Gadgetoid and others added 22 commits September 28, 2022 13:46
Borrows the build setup from Badger OS which-

* Uses a uf2-manifest and dir2uf2 to append examples in a user-visible filesystem
* Uses MICROPY_BOARD_DIR to specify an out-of-tree board def
* Uses ccache and caches MicroPython (compiled tools)
* Builds against upstream MicroPython
* Use string_view in lieu of string
* Rewrite _parse_escape_code to be compatible with string_view
* Allocate a static buffer_t _SCREEN if DYNAMIC_BUFFER not set
Replaces MICROPY_EVENT_POLL_HOOK.
@Gadgetoid Gadgetoid force-pushed the picosystem-2024 branch 2 times, most recently from 6a8c3d6 to 0ebba92 Compare July 5, 2024 19:48
@Gadgetoid Gadgetoid force-pushed the picosystem-2024 branch 2 times, most recently from 618f867 to 3c6c878 Compare July 5, 2024 20:55
@Gadgetoid Gadgetoid mentioned this pull request Jul 5, 2024
Bump dir2uf2 to v0.0.5 and use --fs-compact to trim the PicoSystem "with
examples" uf2 from 32mb down to around 2mb.
@Gadgetoid
Copy link
Member Author

Colour is messed up in this build for some reason 😭

@Gadgetoid Gadgetoid force-pushed the picosystem-2024 branch 2 times, most recently from 40cd97e to 2aab2f7 Compare July 12, 2024 11:31
This flag disabled the accomodations for PIO clock speed, causing PIO to
be driven way, way too fast and the parallel LCD to go fuzzy and lose
colour.
@Gadgetoid Gadgetoid merged commit e3615b5 into main Jul 12, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants