This release is basically v1.23.0, except that it's actually based upon MicroPython v1.23.0, plus a small fix to make our builds work.
If you're seeing hangs when you try to time.sleep()
or use led = Pin("LED", Pin.OUT)
or wireless functionality, then this is the release for you 🥳
Doing A Thing With USB
This release is based on MicroPython v1.23.0 (well, actually, just slightly past v1.23.0), which introduces USB support. We have not rolled this out to all of our builds because:
- It's new and complicated
- So we're still figuring it out...
- It's also big, and we're forever running out of firmware space
- And in many cases there's no good reason for USB... at least yet!
In lieu of this, you'll find a new build in this release: pico_usb
. This build gives you a way to play with USB on the Pico (non W for now) in conjunction with our libraries. To demo this we've added some basic code for long-time holdout Keybow 2040, which can now do keyboards things with MicroPython. You can find those here: https://github.com/pimoroni/pimoroni-pico/tree/main/micropython/examples/keybow2040
pico_usb
build uses a 1MB/1MB Flash/Filesystem split so it will erase your .py files. Back up before flashing!
What's Changed
To get an idea of what's new and what's improved, you should first read the MicroPython release notes: https://github.com/micropython/micropython/releases/tag/v1.23.0
Over here in Pimoroni Pico MicroPython land we've been busy fixing bugs and adding features-
Renamed And Less Breaky Builds
More of a personal bugbear than anything else, but I renamed our .uf2 files to drop the "pimoroni-" from the front so it's easier to scan-read down the list. I've also added a verification step to make sure we don't inadvertently produce totally broken builds- which has happened in a release at least once - or subtly broken builds - which has wasted inordinate amounts of my time spent scratching my head. If you want a tool/library to poke at Pico's binary metadata gooey innards, see: https://github.com/gadgetoid/py_decl
Updated ulab
Since we needed compatibility with some breaking changes in MicroPython v1.23.0, a bunch of extra fixes have been swept up in the ulab module. Details of the latest release can be found here: https://github.com/v923z/micropython-ulab/releases/tag/6.5.2
PNG Decode
We've added support for greyscale PNG files, which are a great way to stamp out monochrome icons from very, very small source files.
This support includes the ability to shift a greyscale PNGs "colours" to anywhere within a PicoGraphics palette. It's a hard concept to explain, but you can get two completely different recolours of artwork out of the same greyscale PNG file- @thirdr has illustrated this with an example: https://github.com/pimoroni/pimoroni-pico/blob/main/micropython/examples/pico_display/display_png_offset_palette.py
You'll also find basic PNG examples for Inky Frame, Pico Display and Tufty 2040 - https://github.com/pimoroni/pimoroni-pico/pull/928/files
All The Things 🎉
And here's an exhaustive list of everything we've merged since v1.22.2-
- PNGdec: Add greyscale support. by @Gadgetoid in #918
- README.md: Add link to pimoroni-pico-stubs. by @Gadgetoid in #910
- Added example for reading speeds from Inventor 2040W's encoders by @ZodiusInfuser in #923
- CI: Update actions to fix nodejs deprecation warnings. by @Gadgetoid in #925
- Fixed arg order bug by @thirdr in #929
- PNGdec: Add support for palette offsets and greyscale copy mode by @Gadgetoid in #919
- Slightly less frustrating MicroPython builds. by @Gadgetoid in #930
- LTR559: Add interrupt.py demo from #169. by @Gadgetoid in #909
- G/S/C Unicorn: Fix get_brightness to use correct max value. by @Gadgetoid in #911
- inky73: Add busy wait timeout. by @Gadgetoid in #920
- PicoDisplay: Fix misalignment on rotated Pico Displays (fixes #562.) by @Gadgetoid in #912
- Add support for 96x48 display to Interstate75 by @ConnorLinfoot in #867
- CI: Add py_decl verify step to catch binary overflows. by @Gadgetoid in #938
- Add PNG File subsection to Pico Graphics documentation by @coadkins in #939
- Add link to png by @exussum12 in #940
- Patch inky launcher by @thirdr in #942
- Examples/pngdec by @thirdr in #928
- Corrected pin definitions for OX and RED by @thirdr in #945
- Fixed button polarity by @thirdr in #944
- Fixed result status bug by @thirdr in #943
- CI: Scannable artifact and release names. by @Gadgetoid in #933
- AS7343: New driver for the 14 channel spectrometer by @Gadgetoid in #931
- i2s audio examples by @thirdr in #916
- Fixed background in SH1107 example by @thirdr in #946
- MicroPython v1.23.0 + USB-compatible Pico firmware. by @Gadgetoid in #915
- Docs: Fix .uf2 names, add pico_usb. by @Gadgetoid in #950
- TEST: Revert to v1.23.0. by @Gadgetoid in #952
Full Changelog: v1.23.0...v1.23.0-1
MicroPython Changelog: micropython/micropython@v1.22.2...v1.23.0
Note: also includes this commit: micropython/micropython@932f76c
New Contributors
- @ConnorLinfoot made their first contribution in #867
- @coadkins made their first contribution in #939
- @exussum12 made their first contribution in #940