Skip to content

Releases: pimoroni/pimoroni-pico

Version 1.19.18

27 Mar 15:46
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:

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
Choose a tag to compare
Version 1.19.17 Pre-release

Heap Upheaval

⚠️ This build is incredibly broken, you should use v1.19.16 instead - ⚠️

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



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.text("Boo", 0, 0, scale=1)

ℹ️ 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 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
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
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 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:

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
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


16 Jan 15:17
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
Choose a tag to compare
Version 1.19.11 Pre-release

PicoGraphics for HUB75

What's Changed

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

New Contributors

Version 1.19.10

18 Nov 14:47
Choose a tag to compare

Go Gaga for Gorgeous Graphics

This release adds support for Pico GFX Pack's RGB-backlit 128x64 monochrome LCD.

What's Changed

Full Changelog: v1.19.9...v1.19.10

New Contributors

Version 1.19.9

19 Oct 13:15
Choose a tag to compare

Let There Be Light

This release adds support for Plasma Stick and Galactic Unicorn.

What's Changed

Full Changelog: v1.19.8...v1.19.9

Version 1.19.8

06 Oct 11:47
Choose a tag to compare

Stable? Somewhat!

⚠️ Pico W builds are still based upon a pre-release, unstable version of MicroPython. We've bumped up the version we're using to the very latest commit as of today. You can find the full and very exhaustive lists of changes to MicroPython here - micropython/micropython@9dfabcd...46d02c2

ℹ️ Contrary to the above, this release includes no MicroPython changes over v1.19.7!

This release tentatively brings v1.19.7 features to a "stable" version and - thanks to @MichaelBell - tweaks how graphics data is copied to displays, hopefully fixing some glitches seen on Tufty 2040.

We've also added a way to disable JPEG dithering in RGB332 mode, giving you a posterised effect instead. See: #492

Thank you to our five new contributors!

What's Changed

Full Changelog: 1.19.7...v1.19.8

New Contributors