Skip to content

Releases: pimoroni/pimoroni-pico

Version 1.19.9

19 Oct 13:15
e928129
Compare
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
28b6698
Compare
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

Version 1.19.7

10 Aug 16:09
4e005c0
Compare
Choose a tag to compare
Version 1.19.7 Pre-release
Pre-release

Embedded Enviro Escapades

This pre-release is mostly to get a build for Pico Enviro out in the wild.

This build includes hacks to the Pico SDK runtime and standard link in order to read GPIO state and assert pins very early on startup.

The startup clock speed is also increased immensely on Enviro and Badger builds, for a quicker response to user input that triggers a cold boot. (IE: any button press on Badger and all wake events on Enviro)

What's Changed

New Contributors

  • @guru made their first contribution in #482

Full Changelog: v1.19.6...1.19.7

Version 1.19.6

27 Jul 11:43
86609b9
Compare
Choose a tag to compare

Fixing Fixes

  • This release includes another upstream fix for macOS USB wobbles
  • The clear method for Pico Unicorn should now... clear the display!
  • There should now be a Badger2040 release without the default launcher and examples (BadgerOS)

What's Changed

Note from the future - looks like the standard Badger build below also doesn't include the built in modules - use 1.19.7 instead!

Full Changelog: v1.19.5...v1.19.6

v1.19.5

25 Jul 16:40
d1765f2
Compare
Choose a tag to compare

Frustrating Fix Frenzy - Radical Redux

This is a quick patch release to fix a couple of issues.

  • The issue with macOS USB causing a hardlock on PicoW startup micropython/micropython#8904 should now be fixed.

  • Additionally, the partial refresh for Badger 2040 has been fixed at fast/turbo speeds where previously it would busy wait forever.

What's Changed

Full Changelog: v1.19.4...v1.19.5

Version 1.19.4

22 Jul 15:24
c5d4865
Compare
Choose a tag to compare

Frustrating Fix Frenzy

Finally! A release on a Friday. Things are slowly falling back into place.

⚠️ The Pico W firmware is still building against an unstable release of MicroPython, since there is no stable release yet. There will be bugs. We are currently monitoring the status of an issue with Pico W crashing when connected to USB on macOSX - see: micropython/micropython#8904

This release includes some bug fixes, a change to how our CI fetches compilers and some new bits and bobs.

  • Dramatically reduced the C++ stack/heap usage of VL53L5CX, switching it over to using MicroPython's gc_heap instead. This should get it working on Pico W boards!
  • Fixed Pico Scroll and Pico Unicorn, which were hogging too much memory up front, to work with Pico W!
  • Added a ShiftRegister class to pimoroni for reading the buttons on Inky Frame
  • Reduced the SDCard IO speed (for C++ users) so that reads aren't a corrupted mess

Continuous Integration Irritation

A slightly technical explanation for future adventurers and those playing along at home.

Our CI builds were coming out a little wonky. This transpired to be an issue with how it was fetching compilers (wget the ARM GCC .zip directly) in order to speed things up. We have reverted this change- after much frustrated tinkering.

If you decide to build MicroPython locally, you can check for a borked build by running:

arm-none-eabi-nm --demangle=gnu-v3 --print-size --size-sort firmware.elf

And keeping an eye out for rogue exception handling symbols such as: d_print_comp_inner. These indicate - afaik - that -fno-rtti (no runtime introspection) and --fno-exception (no runtime exception handling) are not having the desired effect. The resulting, bloated build usually fails spectacularly (doesn't boot) on a Pico.

I'm not sure how these broken builds went unchecked for so long, but things seem to be working... for now...

What's Changed

New Contributors

Full Changelog: v1.19.3...v1.19.4

Version 1.19.3

15 Jul 12:42
33b2c39
Compare
Choose a tag to compare

Incredible Inky Images

This release adds support for Inky Frame, adding a tightly-packed 3-bit pen mode so we can squeeze that huge 600x448 pixel display into the Pico's RAM while leaving enough free for downloading and processing fun things to display. The 3Bit pen also includes ordered dither support, making the best use of the 7 (or 8 if you count "clear") colours on Inky Frame for photos and images.

What's Changed

New Contributors

Full Changelog: v1.19.2...v1.19.3

Version 1.19.2

07 Jul 08:28
4eb54b3
Compare
Choose a tag to compare

Wonderful World of Wireless

⚠️ The 1.19.x release of Pimoroni Pico brings an enormous number of breaking changes into the mix. You will probably have to rewrite some of your code!

💬 Discussion, bugs and issues here - #392

ℹ️ Pico Wireless users (Including Automation and Inventor) should grab - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.19.2/pimoroni-picow-v1.19.2-micropython.uf2

Aside from introducing Pico Wireless support, this release is rife with small fixes, improvements and - mostly - laying of groundwork to support some new and shiny.

There's a couple of things you should now about MicroPython on Pico W:

  1. Around 26k of RAM has been borrowed from MicroPython for wireless features.
  2. The user filesystem has shrunk from 1408K to 848K.
  3. Processing text data from APIs and so on uses more RAM than you might think.

You should be especially cautious when using display products, since these eat a huge chunk of RAM. Our PicoGraphics changes mean that, by default, most displays use half the RAM they did before. This really helps!

Pico Inky Pack Fixes

This release brings some bug fixes to Pico Inky Pack, fixing an issue where displaying a jpeg would cause a hard-lock.

Additionally Inky Pack (and all 1-bit displays) now have 16 "greyscale" shades which are automatically dithered. That means that a pen of 0 is black and a pen of 15 is white- like Badger 2040. Anything between these values will be dithered. This has weird results for text, so stick with black/white if you want it to be readable!

What's Changed

Full Changelog: v1.19.1...v1.19.2

Version 1.19.1

04 Jul 15:18
9c079bb
Compare
Choose a tag to compare
Version 1.19.1 Pre-release
Pre-release

Wonderful World of Wireless

⚠️ The 1.19.x release of Pimoroni Pico brings an enormous number of breaking changes into the mix. You will probably have to rewrite some of your code!

💬 Discussion, bugs and issues here - #392

ℹ️ Pico Wireless users (Including Automation and Inventor) should grab - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.19.1/pimoroni-picow-v1.19.1-micropython.uf2

Aside from introducing Pico Wireless support, this release is rife with small fixes, improvements and - mostly - laying of groundwork to support some new and shiny.

There's a couple of things you should now about MicroPython on Pico W:

  1. Around 26k of RAM has been borrowed from MicroPython for wireless features.
  2. The user filesystem has shrunk from 1408K to 848K.
  3. Processing text data from APIs and so on uses more RAM than you might think.

You should be especially cautious when using display products, since these eat a huge chunk of RAM. Our PicoGraphics changes mean that, by default, most displays use half the RAM they did before. This really helps!

What's Changed

New Contributors

Full Changelog: v1.19.0...v1.19.1

Version 1.19.0

17 Jun 15:01
f101ffd
Compare
Choose a tag to compare
Version 1.19.0 Pre-release
Pre-release

Go Go Gadget Glorious Graphics

⚠️ This release of Pimoroni Pico brings an enormous number of breaking changes into the mix. You will probably have to rewrite some of your code!

💬 Discussion, bugs and issues here - #392

Pico Graphics

The generic ST7789 driver released as part of the 1.18.8 pre-release has been completely re-written into PicoGraphics.

Pico Graphics is now the canonical display library for Pimoroni Pico MicroPython. It includes support for our ST7789, ST7735 and SH1107 based displays.

Too much has changed to explain it here, but see the Pico Graphics documentation to learn more: https://github.com/pimoroni/pimoroni-pico/blob/main/micropython/modules/picographics/README.md

In brief, you now set up a display by creating a PicoGraphics class instance, and telling it the name of the display you want to use. For Tufty that would be:

from picographics import PicoGraphics, DISPLAY_TUFTY2040

display = PicoGraphics(DISPLAY_TUFTY_2040)

And that's it. Easy!

Some notable additions:

  1. JPEG decoding
  2. Hershey (Vector) font support for LCDs
  3. 1bit support for the SH1107 I2C OLED
  4. 1bit, 4bit, 8bit, RGB332 and RGB565 pen types
  5. 0, 90, 180 and 270 rotation support for (most) displays (TODO: SH1107)

C++ Users

C++ users will find libraries like Pico Explorer have been pared back to basic defines, favouring our new individual libraries to make all the bits go.

The examples should give you a clue how your code needs to change, eg: https://github.com/pimoroni/pimoroni-pico/blob/main/examples/pico_explorer/pico_explorer_demo.cpp

In brief, setting up a display now looks something like this:

ST7789 st7789(PicoExplorer::WIDTH, PicoExplorer::HEIGHT, ROTATE_0, false, get_spi_pins(BG_SPI_FRONT));
PicoGraphics_PenRGB332 graphics(st7789.width, st7789.height, nullptr);

And updating it, like this:

st7789.update(&graphics);

The Pico Graphics variant PicoGraphics_PenRGB332 gives you an RGB332 pen type, 256 colours in half the RAM it previously took to drive a display. You can use PicoGraphics_PenRGBRGB565 for more colours (65K) and less free RAM, or PicoGraphics_PenP4 for fewer colours (16!) and even more RAM for your own code.

What's Changed

  • ADCFFT: Use util.hpp by @Gadgetoid in #374
  • Pico Display & Pico Display 2 Demos: Avoid passing buffer into bool parameter by @Gadgetoid in #376
  • Customise MicroPython C++ modules per board to avoid blowing 640K binary limit on 2MB Pico boards by @Gadgetoid in #375
  • Drop obsolete MicroPython binding compat constructors. by @Gadgetoid in #379
  • Add businessbot example by @helgibbons in #382
  • BME280: Correctly set device settings. by @Gadgetoid in #385
  • Support for PCF85063A RTC by @lowfatcode in #378
  • PMS5003: Basic PMS5003 active-mode only driver. by @Gadgetoid in #389
  • MicroPython: Drop redundant Print. Saves 4K. by @Gadgetoid in #390
  • AS7262: Optimize function types. Saves 600 bytes. by @Gadgetoid in #391
  • ST7789 / PicoGraphics rewrite - Support for 4-bit, 8-bit and 16-bit framebuffers and more. by @Gadgetoid in #373

Full Changelog: v1.18.9...v1.19.0