Releases: pimoroni/pimoroni-pico
Version 1.19.1
Wonderful World of Wireless
💬 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:
- Around 26k of RAM has been borrowed from MicroPython for wireless features.
- The user filesystem has shrunk from 1408K to 848K.
- 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
- Updated PicoGraphics README and .gitignore by @kevinmcaleer in #395
- MICS6814: read_nh3 and read_oxidising now call the correct get_raw_* functions by @ahnlak in #398
- Add boot button to button test, new LED PWM example by @helgibbons in #397
- PicoGraphics support for UC8151-based displays by @Gadgetoid in #400
- Inky 2040 Support, UC8159 Driver & Improvements by @Gadgetoid in #322
- Badger2040: Move to more generic fixups hack. by @Gadgetoid in #401
- fatfs: Enable FF_USE_STRFUNC for f_gets. by @Gadgetoid in #402
- Breakout RTC: Optimise required kwarg functions to positional. by @Gadgetoid in #381
- SH1107: Support for alternate i2c address. by @Gadgetoid in #407
- added ability to set/get the free ram byte on pcf85063a by @lowfatcode in #409
- Micropython examples by @rabid-inventor in #406
- PicoGraphics: Partial update/speed support. Tidyup. by @Gadgetoid in #410
- UC8159: Timeout-based busy wait. by @Gadgetoid in #414
- Bitmap Fonts: Break to newline on \n. by @Gadgetoid in #412
- UC8159: Timeout compiler error fix. by @Gadgetoid in #415
- Libraries and examples for Inventor 2040 W by @ZodiusInfuser in #417
- Libraries and examples for Automation 2040 W by @ZodiusInfuser in #418
- CI: Add PicoW MicroPython build. by @Gadgetoid in #416
- PicoGraphics/UC8159: 3bit bitplane pen mode. by @Gadgetoid in #419
New Contributors
- @kevinmcaleer made their first contribution in #395
- @ahnlak made their first contribution in #398
Full Changelog: v1.19.0...v1.19.1
Version 1.19.0
Go Go Gadget Glorious Graphics
💬 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:
- JPEG decoding
- Hershey (Vector) font support for LCDs
- 1bit support for the SH1107 I2C OLED
- 1bit, 4bit, 8bit, RGB332 and RGB565 pen types
- 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
Version 1.18.9
Really Rad Refactor
This is a bugfix and refactor release for the v1.18.8 beta.
Crucially the ST7789 combined LCD driver has seen some fixes to line
and triangle
which were fixed in #344 in the other libraries, but missed out here.
Additionally some significant refactoring has been applied across all of our MicroPython-wrapped-C++ classes, such that they are allocated within MicroPython's "gc_heap" memory region. This should have no real effect for most users, but fixes an issue where the RP2040 would run out of RAM when allocating classes because they were being allocated in the tiny amount of free RAM left to MicroPython's core/C/C++ code.
This led to some very smelly defensive programming where buffers that should have been constant sized and allocated as part of a class were being allocated with m_new
and passed in as pointers, just to keep the class size down and avoid blowing through the memory.
You can now create 3000 instances of Pimoroni I2C with impunity. Have fun!
I also snuck the ADCFFT library into this release. It's surprisingly effective even under MicroPython!
What's Changed
- ST7789: Add fixes from #344 by @Gadgetoid in #369
- Small pico unicorn cleanups by @Daft-Freak in #370
- Improve PIMORONI_PICO_PATH fallback by @Daft-Freak in #366
- Add Motor SHIM for Pico link to readme by @helgibbons in #358
- MicroPython: Use placement new to alloc classes on GC_HEAP by @Gadgetoid in #365
- ADC FFT library & MicroPython Bindings by @Gadgetoid in #371
Full Changelog: v1.18.8...v1.18.9
Version 1.18.8 - Beta Bonanza
Beta Bonanza
Unified ST7789 Display Driver
We were wasting a lot of precious bytes duplicating code for our display products. Indeed Pico Display, Pico Display 2.0, 240x240 1.3" SPI LCD and the 240x240 round SPI LCD were all using the same ST7789 driver under the hood and we'd reinvented how to read a pin (Pico Display's buttons) in an effort to keep things simple and self contained.
As a consequence I have replaced all of the libraries for these display products with just ST7789 which accepts a width and height corresponding to the product you want to use. This hides the bytearray
buffer wart we needed to avoid display buffers being eaten by MicroPython's GC.
This means you can now do really cool stuff like driving two Pico Display 2.0 boards from one Pico.
ST7789 discards the LED and Button functionality. With Pico Zero, MicroPython's own machine.Pin
and our Button
and RGBLED
libraries on the scene, we really didn't need yet another way to drive RGB LEDs and buttons.
Dropping four libraries in favour of one helps slim down our batteries-included MicroPython build so we can continue to add functionality. It does- however- mean you'll need to make some changes to your code.
Code that once looked like:
import picodisplay as display
width = display.get_width()
height = display.get_height()
display_buffer = bytearray(width * height * 2)
display.init(display_buffer)
Should now look like:
import st7789
WIDTH = 240
HEIGHT = 135
display = st7789.ST7789(WIDTH, HEIGHT, rotate180=False)
And if you want a portrait display you can just swap the width/height like so:
import st7789
WIDTH = 135
HEIGHT = 240
display = st7789.ST7789(WIDTH, HEIGHT, rotate180=False)
For buttons you can use Pico Zero, or our baked-in button library. Our Button library supports auto-repeat if you need it.
Here's how to set up the Pico Display and Pico Display 2.0" buttons:
from pimoroni import Button
button_a = Button(12)
button_b = Button(13)
button_x = Button(14)
button_y = Button(15)
And the RGB LED:
from pimoroni import RGBLED
led = RGBLED(6, 7, 8)
ℹ️ The 160x80 colour LCD uses the ST7735 driver under the hood and the way you use it has not changed!
Pimoroni I2C vs machine.I2C
It's been bugging me for a while, but it wasn't until @alphanumeric007 raised #359 that it truly dawned upon me how our Pimoroni I2C object feels like a dose of not-invented-here syndrome. It's not. It exists because we needed a standard set of I2C functions for our C++ libraries, and it works well for this. However MicroPython already has a standard set of I2C functions, so wrapping our C++ libraries up for it resulted in this ugly wart of a... weird third party I2C library. There was no real reason not to sweep this under the rug as an implementation detail; so I have.
I2C has now changed in two ways:
PimoroniI2C
is a weird superset ofmachine.I2C
and will work fine as a drop-in replacement if you want to keep using itmachine.I2C
instances will now be accepted by all of our MicroPython I2C-based sensor libraries, and quietly promoted toPimoroniI2C
behind the scenes
This means that, should you wish to, you can now do this:
sda = machine.Pin(4)
scl = machine.Pin(5)
i2c = machine.I2C(0, sda=sda, scl=scl, freq=400_000)
bme280 = BreakoutBME280(i2c)
And machine.I2C
and PimoroniI2C
are equivalent:
>>> import pimoroni_i2c
>>> i2c = pimoroni_i2c.PimoroniI2C(4, 5)
>>> dir(i2c)
['__class__', 'readinto', 'start', 'stop', 'write', 'init', 'readfrom', 'readfrom_into', 'readfrom_mem', 'readfrom_mem_into', 'scan', 'writeto', 'writeto_mem', 'writevto']
>>> import machine
>>> i2c = machine.I2C(0, sda=machine.Pin(4), scl=machine.Pin(5))
>>> dir(i2c)
['__class__', 'readinto', 'start', 'stop', 'write', 'init', 'readfrom', 'readfrom_into', 'readfrom_mem', 'readfrom_mem_into', 'scan', 'writeto', 'writeto_mem', 'writevto']
Your existing scripts should continue to work, and you should generally continue to use PimoroniI2C
since it avoids some extra overhead when used with our libraries. However you can now share one single I2C object (whichever it might be) with both Pimoroni baked-in libraries and any third-party MicroPython libraries you might want to use!
What's Changed
- Fix for broken asserts in ServoCluster by @ZodiusInfuser in #363
- Sideload vl53l5cx firmware to avoid bloating MicroPython binary by @Gadgetoid in #360
- MicroPython: Make Pimoroni I2C compatible with machine.I2C by @Gadgetoid in #361
- ST7789: Create generic display driver by @Gadgetoid in #327
Full Changelog: v1.18.7...v1.18.8
Version 1.18.7
Marvellous Motors & Exquisite Encoders
Following on from the Servo support @ZodiusInfuser added to the last release, they have now added motor support to Pico. This includes both PWM and PIO flavours, letting you drive up to 15 motors at once!
That's not all. This release also comes with PIO-based encoder support, letting you connect up to 8 quadrature rotary encoders to your projects. Use these as part of your project's interface, or to give feedback on the position and speed of your motors.
These are mostly to drive our own products, but you can use these libraries - both C++ and MicroPython-wrapped-C++ - to drive motors and read encoders connected to any RP2040 board.
Notable Fixes
- Fixed a bug that caused SCD41 to lock up
- Fixed breakout_roundlcd graphics primitives in MicroPython
- Fixed line and triangle primitives for breakout LCDs
- Badger2040: Fixed hang when calling "partial_update" in MicroPython
Known Issues
Blinka and PlatformDetect versions have been bumped and some more core files added, unfortunately our build is getting a little bloated- we've included too many batteries and there may be cases where this causes MicroPython to crash quite spectacularly and require re-flashing. (because the binary is so big it overwrites its very tippy top when the filesystem is created or written to) We're looking into this!
The Winds Of Change Are Blowin'
To try and whittle back our very chunky MicroPython build, we have a project in the works to unify all of our (ST7789-based) Display products under one driver. This includes Pico Display, Pico Display 2.0" and the 240x240 round and Square LCDs. The coded needed to drive these products will change somewhat, and we'll have a migration guide ready to help guide you.
A benefit of this change is that you can- if you're determined- use multiple displays. Watch this space, we're hoping this will find its way into the next release!
See the pending PR for more details: #327
What's Changed
- Update Badger readme to include bitmap fonts by @helgibbons in #337
- Stop & reinit SCD41 to fix lockup for #338 by @Gadgetoid in #340
- fix micropython line and triangle primitives for LCD displays by @cedel1 in #344
- Updating the samples README to reflect current contents by @andypiper in #345
- Badger 2040: Fix partial update hang for #348 by @Gadgetoid in #353
- Add vl53l5cx driver, MicroPython bindings and examples by @Gadgetoid in #347
- Bump Blinka and PlatformDetect for #349 by @Gadgetoid in #350
- Added support for motors and encoders by @ZodiusInfuser in #352
- Use I2C pins constants for #351 by @Gadgetoid in #355
New Contributors
Full Changelog: v1.18.6...v1.18.7
Version 1.18.6
Better Badger, Fantastic Fonts, Wonderful-WiFi, Super Servos
This release is packed with changes for Badger 2040 and general Pico builds.
Better Badger
@MichaelBell has delved to sweep up any remaining unconverted apps from 1.18.5, making everything possible super power-friendly on Badger 2040. There's also a new over/underclocking API method to help you get the most out of your batteries and slightly improved wake handling
Fantastic Fonts
I've overhauled our font rendering, pulling Hershey and Bitmap fonts into their own libraries so they're easy to combine with different drawing libraries and behave the same everywhere they are used. Bitmap fonts will now handle characters like £, ° and many accented characters gracefully. Hershey fonts are lagging behind, but will substitute some accented characters rather than breaking entirely.
The end game is to try and bring support for all the useful characters from - https://www.utf8-chartable.de/
Unfortunately characters outside of this set will get exponentially more complicated to add, and we have to strike a balance somewhere.
As a result of this overhaul, Badger 2040 now supports three bitmap fonts which are demonstrated in the updated fonts app. For now, use these for non-English languages (or even English, since we have many accented loan words), displaying prices in pounds, or temperatures in degrees C.
Wonderful WiFi
I've merged a huge changeset that overhauls every single Pico Wireless function to use a standard pattern that's much easier to work with, debug and understand. I've tried to test this as best I can, but it may still contain bugs. Let us know via issues if you have... issues... with your wireless apps.
Super Servos
@ZodiusInfuser has completed a huge project to bring incredible 18-channel PIO servo support to Pico. This is mostly to drive our own products, but you can use these libraries - both C++ and MicroPython-wrapped-C++ - to drive servos connected to any RP2040 board.
What's Changed
- Updated path to esp32 drivers in /libraries/pico_wireless/pico_wireless.cmake by @deodre in #312
- Add example to set RV3028 RTC breakout by @helgibbons in #308
- Even better Badger wake handling by @MichaelBell in #316
- Badger2040: Improve help, info, qrgen by @MichaelBell in #318
- Badger2040: system_speed call, plus performance improvements by @MichaelBell in #325
- Adding support for Servos by @ZodiusInfuser in #259
- Hershey & Pixel fonts as libraries + Pixel fonts for Badger 2040 by @Gadgetoid in #326
- Reinitialize hardware after system clock change by @MichaelBell in #330
- Pico Wireless - ESP32 Driver Rewrite by @Gadgetoid in #328
- Badger2040: Update list app to use new system by @MichaelBell in #319
- Fonts: Ungracefully handle accented characters. by @Gadgetoid in #332
- Badger 2040: Support for multiple QR codes. by @jpwsutton in #333
New Contributors
Full Changelog: v1.18.5...v1.18.6
Version 1.18.5 - Brilliantly Better Badger Battery
👇 Scroll down to find .uf2 files under "Assets". There are now too many to manually list at the top here! 👇
What's all this about battery, then?
The super exciting battery changes in this release have been brought to you by @MichaelBell, Bishop of Badger batteries and connoseuir of coins cells.
The TLDR is that battery life in apps like QRGen, Badge and Image is now immensely improved while running from AA, AAA, LiPo or Coin-cell batteries connected to the JST connector.
How did @MichaelBell achieve this enormous improvement? By just turning Badger 2040 off. Yup, MicroPython can't use any power if it's turned completely off. While I've been worring about sleep states and pin wake interrupts Michael has swept in with a brilliantly elegant solution. I wont say simple because there's some clever stuff happening here and it's taken a lot of work to make the best use of it. But it's elegant!
Badger OS now makes liberal use of text files to save the state of various apps, including which app was launched last. When the launcher fires up, it checks its own state and launches the last known app. That app will then load its own state and handle whatever button you pressed to wake up Badger 2040, update the screen and turn off the power again.
Now when you load the Badge app, for example, it'll display the badge and cut the power to your Badger 2040. Even the launcher itself will power off, so you wont drain the battery leaving it running!
Badger OS - what's changed?
- Exiting to the launcher is now done by pressing A + C simultaneously
- If a launcher app has an error, or is missing, you'll see a little on-screen message!
- There's a new
badger_os
module with some handy features for saving/loading app state and displaying warnings. - You should use
.pressed()
to handle buttons in Badger OS apps now. - If your app just shows something on screen, you can call
.halt()
to power off when you're done! ⚠️ The USER button doesn't work so well as a shift key on battery, since your Badger will wake up in bootloader mode! You can sorta fudge it by pressing USER quickly as the Badger starts up. It works as normal on USB power.
Known issues:
- Battery indicator mostly reads as disconnected, since it needs some time for the vref to stabalise.
- If you delete images and have an app state saved to show an out-of-range image, you'll get an IndexError.
Other Changes
- A nasty bug in PAA5100 / PMW3901 has been fixed, which would cause very confusing errors when trying to read data.
- An awesome new Conway's Game Of Life example for Badger 2040.
- Assorted minor tweaks and fixes, thank you to all who contributed these!
Full Changelog: v1.18.4...v1.18.5
Merged PRs
- Fix filenames in examples README, some minor code tweaks by @andypiper in #296
- Badger2040: Add sleep to help and info by @Gadgetoid in #298
- PAA5100/PMW3901 Fix default float argument bug for #228 by @Gadgetoid in #302
- Combine PAA5100 and PMW3901 into a single module for #301 by @Gadgetoid in #303
- Conway's game of life for Badger2040 by @samuelmcdermott in #304
- Badger2040: Fix builtin module depends typo. by @Gadgetoid in #315
- Badger2040 Micropython battery improvements by @MichaelBell in #313
New Contributors
- @samuelmcdermott made their first contribution in #304
Version 1.18.4 - Board-specific Build Bonanza
👇 Scroll down to find .uf2 files under "Assets". There are now too many to manually list at the top here! 👇
Board-specific Builds
As pointed out in #272 we weren't building versions of MicroPython for specific boards, so 4MB, 8MB and 16MB variants were getting left in the dark, with only 2MB being available.
This has now changed. You'll find multiple builds of MicroPython in this release and should use the one that corresponds to your board.
❗ Note: This isn't available for the Blinka build yet. That's a whole other can of worms! If you use this build, let us know because you can sideload the Blinka libraries and it would be really handy to drop it from our auto-builds altogether if it's not seeing much use.
Badger Bug Bashing
Bader2040 / badgerOS has had a number of fixes (detailed below) but nothing groundbreaking. Notably all the silly bugs I introduced when trying to make the clock example settable have been squashed by @lurch.
Additionally there are some fixes to the rendering of text, which should make 90, 180 and 270 degree rotations look less wonky.
QR Codes
badgerOS now includes a QR code generator: qrgen. Run it once and edit qrcode.txt
via Thonny to set your own URL, title and description.
This same library is baked into all other MicroPython builds, and there's an example .py for Pico Display/Pico Display 2.0" to get you started.
Improvements and documentation will follow!
What's Changed
- Trivial: fix width (298->296px) typos by @andypiper in #273
- badger2040: Only 24 hours in a day (not 60) by @lurch in #276
- badger2040: Set default clock to a valid date by @lurch in #275
- Add Pimoroni Pico LiPo button/LED example, tweak docs by @helgibbons in #284
- badger2040: prevent date being set to an invalid value by @lurch in #278
- Make USB powered and battery powered Badger2040 work the same by @MichaelBell in #285
- Badger2040: Fix ebook.py missing lines for #280 by @Gadgetoid in #289
- Badger2040: Build .py conversion into convert.py by @Gadgetoid in #288
- Build MicroPython for multiple boards by @Gadgetoid in #291
- Badger2040: Fix text rotation aliasing for #290 by @Gadgetoid in #292
- QRCode Library by @Gadgetoid in #268
New Contributors
- @andypiper made their first contribution in #273
- @lurch made their first contribution in #276
Full Changelog: v1.18.3...v1.18.4
Version 1.18.3 - The Badger Returns
Downloads
- MicroPython with Pimoroni Libs (1.03MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.18.3/pimoroni-pico-v1.18.3-micropython-v1.18.uf2
- MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.17MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.18.3/pimoroni-pico-v1.18.3-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2
- MicroPython for Badger 2040 (1.28MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.18.3/pimoroni-pico-v1.18.3-badger2040-micropython-v1.18.uf2
Summary
This release includes a slew of updates to the Badger 2040 examples and launcher:
- You can now replace the built-in examples by copying the appropriate example to your Badger 2040 via Thonny. Eg: copying
ebook.py
will launch your copy instead of the builtin one. To restore to the builtin just delete your version from the filesystem. - The eBook reader now supports multiple font sizes and styles. Press A or B to change size or style.
- The eBook reader now uses "book.txt"
- The image viewer now supports hiding the UI. Press A to toggle it on and off.
- The clock example can now have the time changed, press B to toggle time set mode and use A/B/UP/DOWN to navigate.
- Badge has been fixed to correctly read a custom image.
- Checklist/list now saves
checklist.txt
to disk and will update it when you check off an item! - Fixed a bug hiding in the launcher that caused it to crash after running a file.
Regular (non-badger) MicroPython builds no longer include the Badger2040 module (it's a bit redundant and very chonky) but are otherwise the same as v1.18.2.
What's Changed
- fix custom badge file not loading correctly by @nathanmayall in #254
- Badger2040: Allow builtin demos to be replaced by @Gadgetoid in #257
- Badger2040: Build assets from source + CMake builtin copy by @Gadgetoid in #264
- Add simple LED example and readme tweaks by @helgibbons in #263
- Badger2040 C++ library and example fixes by @MichaelBell in #260
- Badger 2040 - Improve examples by @Gadgetoid in #271
Full Changelog: 1.18.2...v1.18.3
New Contributors
- @nathanmayall made their first contribution in #254
- @MichaelBell made their first contribution in #260
Supported Breakouts
- AS7262 - 6-channel Spectral Sensor - https://shop.pimoroni.com/products/as7262-6-channel-spectral-sensor-spectrometer-breakout
- MSA301 - 3DoF Motion Sensor - https://shop.pimoroni.com/products/msa301-3dof-motion-sensor-breakout
- MICS6814 - Gas Sensor - https://shop.pimoroni.com/products/mics6814-gas-sensor-breakout
- RGB Potentiometer - https://shop.pimoroni.com/products/rgb-potentiometer-breakout
- RGB Encoder - https://shop.pimoroni.com/products/rgb-encoder-breakout
- IO Expander - https://shop.pimoroni.com/products/io-expander
- RV3028 - RTC - https://shop.pimoroni.com/products/rv3028-real-time-clock-rtc-breakout
- ST7735 - 0.96" LCD - https://shop.pimoroni.com/products/0-96-spi-colour-lcd-160x80-breakout
- IS31FL3730 - LTP-305 dual matrix breakout - https://shop.pimoroni.com/products/led-dot-matrix-breakout?variant=32274405654611
- LTR559 - Proximity/Presence/Light Sensor - https://shop.pimoroni.com/products/ltr-559-light-proximity-sensor-breakout
- IS31FL3731 - 11x7 and 5x5 matrix displays
- TrackBall - https://shop.pimoroni.com/products/trackball-breakout
- SGP30 - Air Quality Sensor - https://shop.pimoroni.com/products/sgp30-air-quality-sensor-breakout
- ST7789 - 1.3" LCD, 1.54" LCD and 1.3" round LCD
- BME680 - Temperature, Pressure, Humidity & Gas Sensor - https://shop.pimoroni.com/products/bme680-breakout
- BME688 - Temperature, Pressure, Humidity & Gas Sensor - https://shop.pimoroni.com/products/bme688-breakout
- BH1745 - Luminance & Colour Sensor - https://shop.pimoroni.com/products/bh1745-luminance-and-colour-sensor-breakout
- BME280 - Temperature, Pressure & Humidity Sensor - https://shop.pimoroni.com/products/bme280-breakout
- BMP280 - Temperature & Pressure Sensor - https://shop.pimoroni.com/products/bmp280-breakout-temperature-pressure-altitude-sensor
- PWM3901/PAA5100JE - Near Optical Flow Sensor - https://shop.pimoroni.com/products/paa5100je-optical-tracking-spi-breakout
- ICP10125 - High Accuracy Pressure / Altitude / Temperature Sensor - https://shop.pimoroni.com/products/icp10125-air-pressure-breakout
- Interstate 75 - HUB75 driver https://shop.pimoroni.com/products/interstate-75
- Plasma 2040 - https://shop.pimoroni.com/products/plasma-2040
- SCD41 CO2 Sensor (Carbon Dioxide / Temperature / Humidity) - https://shop.pimoroni.com/products/scd41-co2-sensor-breakout
Version 1.18.2 - Badger Edition
Downloads
- MicroPython with Pimoroni Libs (1.17MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/1.18.2/pimoroni-pico-1.18.2-micropython-v1.18.uf2
- MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.3MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/1.18.2/pimoroni-pico-1.18.2-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2
- MicroPython for Badger 2040 (1.28MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/1.18.2/pimoroni-pico-1.18.2-badger2040-micropython-v1.18.uf2
Summary
This release should finally fix the display memory corruption bugs. Sorry it took us so long, it was a tricky one despite the eventual fix being so simple (and staring us in the face).
This release also adds support for Badger 2040, complete with its own build of MicroPython preloaded with a launcher and some tasty examples.
Otherwise the Python builds are the same as v1.18.1.
What's Changed
- Fix display buffer being trampled for #89 by @Gadgetoid in #250
- Add battery example for Pimoroni Pico LiPo by @helgibbons in #251
- Support for Badger 2040 by @Gadgetoid in #252
Full Changelog: v1.18.1...1.18.2
Supported Breakouts
- AS7262 - 6-channel Spectral Sensor - https://shop.pimoroni.com/products/as7262-6-channel-spectral-sensor-spectrometer-breakout
- MSA301 - 3DoF Motion Sensor - https://shop.pimoroni.com/products/msa301-3dof-motion-sensor-breakout
- MICS6814 - Gas Sensor - https://shop.pimoroni.com/products/mics6814-gas-sensor-breakout
- RGB Potentiometer - https://shop.pimoroni.com/products/rgb-potentiometer-breakout
- RGB Encoder - https://shop.pimoroni.com/products/rgb-encoder-breakout
- IO Expander - https://shop.pimoroni.com/products/io-expander
- RV3028 - RTC - https://shop.pimoroni.com/products/rv3028-real-time-clock-rtc-breakout
- ST7735 - 0.96" LCD - https://shop.pimoroni.com/products/0-96-spi-colour-lcd-160x80-breakout
- IS31FL3730 - LTP-305 dual matrix breakout - https://shop.pimoroni.com/products/led-dot-matrix-breakout?variant=32274405654611
- LTR559 - Proximity/Presence/Light Sensor - https://shop.pimoroni.com/products/ltr-559-light-proximity-sensor-breakout
- IS31FL3731 - 11x7 and 5x5 matrix displays
- TrackBall - https://shop.pimoroni.com/products/trackball-breakout
- SGP30 - Air Quality Sensor - https://shop.pimoroni.com/products/sgp30-air-quality-sensor-breakout
- ST7789 - 1.3" LCD, 1.54" LCD and 1.3" round LCD
- BME680 - Temperature, Pressure, Humidity & Gas Sensor - https://shop.pimoroni.com/products/bme680-breakout
- BME688 - Temperature, Pressure, Humidity & Gas Sensor - https://shop.pimoroni.com/products/bme688-breakout
- BH1745 - Luminance & Colour Sensor - https://shop.pimoroni.com/products/bh1745-luminance-and-colour-sensor-breakout
- BME280 - Temperature, Pressure & Humidity Sensor - https://shop.pimoroni.com/products/bme280-breakout
- BMP280 - Temperature & Pressure Sensor - https://shop.pimoroni.com/products/bmp280-breakout-temperature-pressure-altitude-sensor
- PWM3901/PAA5100JE - Near Optical Flow Sensor - https://shop.pimoroni.com/products/paa5100je-optical-tracking-spi-breakout
- ICP10125 - High Accuracy Pressure / Altitude / Temperature Sensor - https://shop.pimoroni.com/products/icp10125-air-pressure-breakout
- Interstate 75 - HUB75 driver https://shop.pimoroni.com/products/interstate-75
- Plasma 2040 - https://shop.pimoroni.com/products/plasma-2040
- SCD41 CO2 Sensor (Carbon Dioxide / Temperature / Humidity) - https://shop.pimoroni.com/products/scd41-co2-sensor-breakout