Skip to content

Releases: pimoroni/pimoroni-pico

Version 1.20.2

12 May 13:38
00d1617
Compare
Choose a tag to compare

You Spin Me Right 'Round

Tufty 2040: Firmware should now work and includes a fix to Tufty's native (RGB565) update code to reduce a typical screen update from ~30ms to ~10ms.

Cosmic Unicorn: Ghosting should be fixed in (just like Galactic).

Pico Display Pack 1.14": A fix to LCD init.

Ulab has been bumped to 6.0.12 where it's available (Tufty, Cosmic, Galactic).

Support added for the shiny new RGB Encoder Wheel breakout 👀

We're still building against MicroPython stable v1.20.0 and will continue to do so until there are some irresistible updates upstream. Quite a few changes have been made to streamline our build process and this may have introduced some regressions. Let us know if something is missing or broken.

🎉 Thank you to contributors new & old! 🎉

What's Changed

Full Changelog: v1.20.1...v1.20.2

New Contributors

Version 1.20.1

28 Apr 15:46
56dba37
Compare
Choose a tag to compare

(ノ◕ヮ◕)ノ✲゚。⋆ [ɥɥɥɥɥƃƃƃƃ]ɹɹɹɐɐɐɐ

In my haste to release 1.20.0 I fell into a trap- a MicroPython C memory handling trap. One iiickkle tinnny change that I hadn't testing against turned out to be the one that broke all of our builds. This release fixes that, before someone makes me walk the plank.

As before, nothing much has really changed except for a version bump and some (apparently not as) minor (as I thought) changes.

ℹ️ since we'll tracking unstable MicroPython from this point onwards, the v1.20.x moniker doesn't mean all that much. We'll bump x every time we release a new version with new Pimoroni Pico libraries. Our point releases are unrelated to MicroPython's own point releases so it's just as well that those are extraordinarily uncommon.

Note from the future - the v1.20.1 image for Tufty 2040 is bugged. If you have a Tufty, best to use v1.19.18 for now.

What's Changed

Full Changelog: v1.20.0...v1.20.1

Version 1.20.0

27 Apr 14:50
f097577
Compare
Choose a tag to compare

Major MicroPython Milestone

Woah, woah. A version 1.20.0 of MicroPython! Surely that means lots of new great things in Pimoroni Pico MicroPython right, right?

Well... uh... it's not a particularly well-kept secret that we've (and, indeed, the official builds) been tracking the latest MicroPython changes since the Pico W. As such this release is mostly a formality and really nothing of consequence has changed since Pimoroni Pico v1.19.18.

Still, we're going to celebrate anyway: 🎉 🎉 🎉 🎉 🎉 🎉 🎉

What's Changed

Full Changelog: v1.19.18...v1.20.0

MicroPython Changes: micropython/micropython@38e7b84...v1.20.0

New Contributors

Version 1.19.18

27 Mar 15:46
c9bee93
Compare
Choose a tag to compare

MicroPython Magic Memory

Okay so 1.19.17 was a bit of a memory corruption disaster. It turned out that - despite our best efforts - our C++ code was still assuming it had heap RAM it could use at its leisure. This was... sort-of... the case, except MicroPython's heap overlapped this same memory with disastrous and unpredictable results.

This is a re-issue of sorts, fixing the critical flaws in 1.19.17 but not introducing much else.

This change fixes some init heap usage in LTR559, LTP-305 (Dot Matrix display breakout) - removing almost 10k of memory usage - and PicoGraphics and introduces a new module cppmem which quietly redirects C++ heap allocations over to the MicroPython heap.

🦡 Badger 2040 and Badger 2040 W builds now live here: https://github.com/pimoroni/badger2040/releases/latest

What's Changed

Full Changelog: v1.19.17...v1.19.18

MicroPython Changes: micropython/micropython@05bb260...38e7b84

New Contributors

  • @tjp made their first contribution in #729

Version 1.19.17

17 Mar 14:21
cb5db1d
Compare
Choose a tag to compare
Version 1.19.17 Pre-release
Pre-release

Heap Upheaval

⚠️ This build is incredibly broken, you should use v1.19.16 instead - https://github.com/pimoroni/pimoroni-pico/releases/tag/v1.19.16 ⚠️

A recent change in MicroPython took away the last remaining drips of heap memory that some of our modules (erroneously) relied upon, this release is mostly a great sweeping set of changes to fix these instances and ensure we can continue to follow the latest and greatest MicroPython changes and integrate Bluetooth when it comes.

This is a pretty significant set of changes which may not be complete, if you encounter issues let us know and try version 1.19.16 instead.

Most of these changes have no user-visible effect and everything should work as before, with the notable exception of:

Unicorn Pack & Scroll Pack

As part of these changes both Unicorn Pack and Scroll Pack received a refactor into MicroPython class style modules, so:

import picounicorn

picounicorn.init()

Becomes:

from picounicorn import PicoUnicorn

picounicorn = PicoUnicorn()

As an added bonus we've thrown in PicoGraphics support for both of these boards. Neither benefit particularly from all that fancy graphics stuff, but it's nice to have party. PicoGraphics for Scroll Pack and Unicorn Pack works like it does for Cosmic/Galactic Unicorn, here's a minimal example for Scroll Pack:

from picographics import PicoGraphics, DISPLAY_SCROLL_PACK, PEN_P8
from picoscroll import PicoScroll

graphics = PicoGraphics(DISPLAY_SCROLL_PACK, pen_type=PEN_P8)
scroll = PicoScroll()

while True:
    graphics.set_pen(0)
    graphics.clear()
    graphics.set_pen(255)
    graphics.text("Boo", 0, 0, scale=1)
    scroll.update(graphics)

ℹ️ Note that Scroll Pack's update() method now accepts a PicoGraphics instance, if you want to use it without PicoGraphics you can call show() instead.

Bye bye Badger Builds

The builds for Badger 2040 and Badger 2040 W have been removed. You should head over to https://github.com/pimoroni/badger2040/releases where you'll find ongoing releases for Badger boards.

What's Changed

Full Changelog: v1.19.16...v1.19.17

MicroPython Changes: micropython/micropython@294098d...05bb260

New Contributors

Version 1.19.16

08 Mar 21:20
faf4efa
Compare
Choose a tag to compare

Indelible Inky

This release includes a number of improvements to all Inky Frame boards, spurred by Inky Frame 7.3".

  • The inky_frame module now includes colour constants and handy functions to manage Inky Frame when it's running on battery.

  • The pimoroni module now includes a PWMLED class which handles a single LED with brightness and on/off control.

  • All inky_frame LEDs are now driven by PWMLED and have variable brightness control.

  • set_thickness() now works for Inky Frame (and all PicoGraphics pen types, in fact), allowing you to control the thickness of the lines used to render Hershey fonts. Text can be oooh so much prettier.

  • line() now supports a fifth argument, "thickness", letting you draw thick lines at any angle. This is great fun for really slow analogue clocks and other UI elements that involve thick lines that rectangles can't accomplish.

  • A PicoGraphics instance for Inky Frame will now raise a ValueError if you try to access the raw framebuffer with memoryview(graphics). It's backed by PSRAM so there's no memory to access... yet!

  • A bug has been fixed in PCF85063A driver, allowing you to set the time more than once.

See the Inky Frame module documentation for details about new (and old) features, caveats and so on.

What's Changed

New Contributors

Full Changelog: v1.19.15...v1.19.16

Version 1.19.15

02 Mar 15:11
6be46dd
Compare
Choose a tag to compare

Cosmic Calamity

Version 1.19.15 mostly adds support for a couple of new and shiny things but we've also taken the opportunity to make improvements to some existing products-

Galactic Unicorn

Galactic Unicorn firmware now includes numpy, and we've included a directory full of examples to show you how you can use it for all manner of dynamic effects and crude simulations.

To make these effects a little easier to produce we've also added support for palette-mode pens to Galactic, most of the examples use PEN_P8 which means every pixel on Galactic Unicorn is represented by one 8-bit number that provides an index into a palette of your choice.

Inky Frame

You can now use create_pen(r, g, b) with Inky Frame and PicoGraphics will try its best to dither your drawing to the 7 colours that Inky is capable of producing. This works best on large blocks of colour such as backgrounds or chunky text.

You can also use dither=False in JPEG decoding, causing JPEG files to be quantized to Inky's 7 colours rather than dithered. This is useful if you're using an image as a background for your project, or just want the cool posterisation-style effect.

PicoGraphics

PicoGraphics has a new create_pen_hsv(h, s, v) method, which replaces all of the copy-pasted hsv_to_rgb functions in our various examples with a faster, tidier implementation. Creating hsv pens works in all pen modes, and will either return a palette index or an appropriately converted RGB colour for you to use with set_pen as normal.

No Bluetooth, Yet.

While this is the first release built against Pico SDK 1.5.0, the new Bluetooth functionality is not yet available in MicroPython.

For a demonstration of Bluetooth doing something on Galactic/Cosmic see: https://github.com/Gadgetoid/galactic-bluetooth-audio/

What's Changed

Full Changelog: v1.19.14...v1.19.15

List of changes to MicroPython since Pimoroni Pico release v1.19.14: micropython/micropython@35524a6...294098d

New Contributors

Version 1.19.14

16 Feb 15:07
943ea13
Compare
Choose a tag to compare

Badger Badger Badger WiFi WiFi

This release adds support for Badger 2040 W which is, as the name suggests, a wireless version of Badger 2040. We've switched to PicoGraphics for this version (we'll migrate Badger 2040 once the bugs are ironed out). It includes breaking changes from older Badger code, so you should consult the Badger 2040 W Python README to see what's changed.

PicoGraphics has also gained an HSV Pen thanks to @ageeandakeyboard, allowing a pen to be created from (hue, saturation, value) values, avoiding the need to calculate the RGB result in Python. Try set_pen_hsv(h, s, v).

Thanks to @LionsPhil for tweaking the Tufty 2040 Launcher/Menu to be a lot more RAM friendly, to @MichaelBell for fixing the ghosting issue in Galactic Unicorn and @ahnlak for adding RGB332 Pen support into Galactic Unicorn.

What's Changed

Full Changelog: v1.19.12...v1.19.14

New Contributors

v1.19.12

16 Jan 15:17
63fc338
Compare
Choose a tag to compare

Upstream Upgrade Avalanche

This release bumps the MicroPython version we're building against, including significant changes and bugfixes.

Additionally, non-wireless boards are no longer built against the stable v1.19 MicroPython version and are instead synced with the latest, unreleased fixes.

This also means we should better align with the official releases of MicroPython, and we now include "mip" and "ntptime" in W builds as we should!

For an exhaustive list of changes see:

What's Changed

Full Changelog: v1.19.11...v1.19.12

Note from the future: If you're using Plasma 2040 or Plasma Stick then you should skip this release - the builds below contain a bug that affects the Plasma library. Use v1.19.11 instead!

Version 1.19.11

21 Dec 16:41
955f4e5
Compare
Choose a tag to compare
Version 1.19.11 Pre-release
Pre-release

PicoGraphics for HUB75

What's Changed

Full Changelog: v1.19.10...v1.19.11

New Contributors