pimoroni-pico

Libraries and examples to support Pimoroni Pico add-ons in C++ and MicroPython.

MIT License

Stars
1.2K
pimoroni-pico - Version 0.3.1

Published by Gadgetoid almost 3 years ago

Downloads

Changes

From v0.3.1

Version 0.3.0 marks a MicroPython bump from v1.16 to v1.17 but is otherwise the same as v0.2.7.

MicroPython v1.17 brings a handful of changes, the most notable of which is f-strings. For a complete list, see - https://github.com/micropython/micropython/releases/tag/v1.17

See version 0.2.7 for changes to our modules - https://github.com/pimoroni/pimoroni-pico/releases/tag/v0.2.7

Supported Breakouts

pimoroni-pico - Version 0.3.0 - MicroPython v1.17

Published by Gadgetoid about 3 years ago

Downloads

Changes

Version 0.3.0 marks a MicroPython bump from v1.16 to v1.17 but is otherwise the same as v0.2.7.

MicroPython v1.17 brings a handful of changes, the most notable of which is f-strings. For a complete list, see - https://github.com/micropython/micropython/releases/tag/v1.17

See version 0.2.7 for changes to our modules - https://github.com/pimoroni/pimoroni-pico/releases/tag/v0.2.7

Supported Breakouts

pimoroni-pico - Version 0.2.7

Published by Gadgetoid about 3 years ago

Downloads

Changes

Pico Wireless

Moved MicroPython HTTP library functions to "ppwhttp.py" and added many fixes to HTTP/HTTPS connection handling.

ppwhttp also supports routing and wildcard routes, see: https://github.com/pimoroni/pimoroni-pico/commit/78d50c29867fa2ef644cc62173ad28cc6eff797a

Misc

  • Add support for Pico Display 2.0"
  • Add support for PWM3901/PAA5100JE flow sensors
  • Add basic bringup/helper script for PicoSystem (will be replaced by a PicoSystem-specific MicroPython build)
  • Bumped Adafruit Blinka to 6.14.1
  • Add gamma correction to plasma

Supported Breakouts

pimoroni-pico - Version 0.2.6

Published by Gadgetoid about 3 years ago

Downloads

Changes

  • Plasma: Fix soft reset bugs in WS2812 and APA102
  • Plasma: Initialize MicroPython alloc'd bytearray with SOF bytes for APA102 (fixes broken APA102 with user-supplied buffer)
  • Plasma: Do not try to delete[] a bytearray (or other not-driver-owned) buffer
  • Plasma: Flush pixels with extra clocks at end of stream- for single, blocking writes only (fixes stuck LEDs when soft resetting)
  • Plasma: Add get pixel method
  • Rotary: Add clear to reset counts
  • IO Expander/Rotary: Fix bug with library crashing the encoder breakout
  • Pico Unicorn: fix hardfault when soft resetting
  • Bumped Adafruit Blinka to 6.13
  • Bumped Adafruit PlatformDetect to 3.15.3

Supported Breakouts

pimoroni-pico - Version 0.2.5

Published by Gadgetoid about 3 years ago

Downloads

Changes

  • Plasma 2040 drivers
  • Support for WS2812 pixels using PIO
  • Support for APA102 pixels using PIO
  • New pimoroni.Analog for general purpose ADC reading- intended for current-monitoring (isense) on - for example - Plasma 2040

Supported Breakouts

pimoroni-pico - Version 0.2.4

Published by Gadgetoid about 3 years ago

Downloads

Changes

  • Fix LCD breakout text scaling
  • Fix LCD breakout text hard-lock on non-string
  • Fix x/y position when drawing a single character
  • Fix default proximity LED duty cycle on LTR559 (Note: will dramatically change proximty values)
  • New RGBLED and Button C++ libraries + pure Python equivalents
  • New BH1745 driver
  • New BME680/BME688 driver
  • New BME280/BMP280 drivers

Supported Breakouts

pimoroni-pico - Version 0.2.3

Published by Gadgetoid over 3 years ago

Downloads

Changes

  • Bumped from MicroPython v1.15 to v1.16 - adds machine.RTC
  • Fixed RV3038/breakout_rtc set_time to correctly set year in range 2000-2099

Built against MicroPython release v1.16 - https://github.com/micropython/micropython/releases/tag/v1.16

Supported Breakouts

pimoroni-pico - Version 0.2.2

Published by Gadgetoid over 3 years ago

Downloads

Changes

  • Fixes to character position on Colour LCD 240x240 and 160x80
  • Fixed SPI trampling I2C in Pico Explorer library
  • Reset unused I2C pins when creating an I2C instance (prevents I2C weirdness when experimenting on the REPL)
  • Bumped Adafruit Blinka to 6.10.1
  • Bumped Adafruit PlatformDetect to 3.13.3

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

Supported Breakouts

pimoroni-pico - Version 0.2.1

Published by Gadgetoid over 3 years ago

Downloads

Adafruit Blinka for CircuitPython library support

This release is identical to v0.2.0, old release notes have been included below for posterity.

We've baked Adafruit's Blinka and PlatformDetect libraries into a new release of MicroPython so you can mix and match Adafruit CircuitPython libraries with our in-house ones.

For more information on how to get started with CircuitPython libraries on MicroPython see Adafruit's guide here: https://learn.adafruit.com/circuitpython-libraries-on-micropython-using-the-raspberry-pi-pico/

Note: if you're using our Blinka + PlatformDetect MicroPython .uf2 then you do not need to follow Adafruit's MicroPython Installation or Blinka/PlatformDetect setup steps. You can skip straight to downloading the .py bundle (MicroPython does not support CircuitPython's .mpy files) from here - https://circuitpython.org/libraries - or grabbing .py libraries of your choice.

AWOOGA - ⚠️ I2C devices now use the "PimoroniI2C" class ⚠️

This release includes the recent changes merged in https://github.com/pimoroni/pimoroni-pico/pull/129

Using I2C in MicroPython now requires an instance of the PimoroniI2C class, which is created once and passed into individual breakout classes for them to use.

The PimoroniI2C class has a __del__ method and finaliser, allowing Pico's I2C to be cleaned up during soft resets. This prevents an issue where using the wrong I2C pins would break I2C on a particular channel until the Pico is hard reset. A tricky situation for a device that... doesn't have a reset button!

See the Python examples for ... well ... examples of how to use the new I2C class with breakouts. For example, here's LTR559:

from pimoroni_i2c import PimoroniI2C
from breakout_ltr559 import BreakoutLTR559

PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5}
PINS_PICO_EXPLORER = {"sda": 20, "scl": 21}

i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN)
ltr = BreakoutLTR559(i2c)

Eventually you'll be able to construct a PimoroniI2C

Note: This PimoroniI2C class differs from machine.I2C since it's a direct port of the I2C class used to run out breakouts in C++. Interop may be possible at some point in the future but please understand that we are not raving lunatics and are making these odd, against-the-grain design choices because we want to re-use the C++ drivers in MicroPython.

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

Supported Breakouts

pimoroni-pico - Version 0.2.0

Published by Gadgetoid over 3 years ago

AWOOGA - ⚠️ I2C devices now use the "PimoroniI2C" class ⚠️

This release includes the recent changes merged in https://github.com/pimoroni/pimoroni-pico/pull/129

Using I2C in MicroPython now requires an instance of the PimoroniI2C class, which is created once and passed into individual breakout classes for them to use.

The PimoroniI2C class has a __del__ method and finaliser, allowing Pico's I2C to be cleaned up during soft resets. This prevents an issue where using the wrong I2C pins would break I2C on a particular channel until the Pico is hard reset. A tricky situation for a device that... doesn't have a reset button!

See the Python examples for ... well ... examples of how to use the new I2C class with breakouts. For example, here's LTR559:

from pimoroni_i2c import PimoroniI2C
from breakout_ltr559 import BreakoutLTR559

PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5}
PINS_PICO_EXPLORER = {"sda": 20, "scl": 21}

i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN)
ltr = BreakoutLTR559(i2c)

Eventually you'll be able to construct a PimoroniI2C

Note: This PimoroniI2C class differs from machine.I2C since it's a direct port of the I2C class used to run out breakouts in C++. Interop may be possible at some point in the future but please understand that we are not raving lunatics and are making these odd, against-the-grain design choices because we want to re-use the C++ drivers in MicroPython.

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

Supported Breakouts

pimoroni-pico - Version 0.1.8

Published by Gadgetoid over 3 years ago

Extends the fixes for class constructors in v0.1.7 to SPI breakouts.

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

Supported Breakouts

pimoroni-pico - Version 0.1.7

Published by Gadgetoid over 3 years ago

  • Fixes class constructors for various breakouts so that they can accept sda/scl pins for Breakout Garden or other I2C configurations, eg:
pot = BreakoutPotentiometer(sda=4, scl=5)
enc = BreakoutEncoder(sda=4, scl=5)

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

Supported Breakouts

pimoroni-pico - Version 0.1.6

Published by Gadgetoid over 3 years ago

More breakouts:

  • Support for 1.3" ST7789 colour LCD
  • AS7262 7-channel spectrometer
  • MSA301 accelerometer
  • IO Expander modules: Rotary Encoder, Rotary Potentiometer, MICS6814 and generic IOE Breakout
  • RV3028 Real-time Clock

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

Supported Breakouts

pimoroni-pico - Version 0.1.5

Published by Gadgetoid over 3 years ago

Breakout bonanza!

  • Added set_pixels, scroll_text, show_bitmap_1d and a 5x7 font to Pico Scroll for scrolly text goodness- thank you @graeme-winter
  • Trackball breakout support
  • SGP30 breakout support - thank you @simon3270
  • ST7735 colour LCD support (160x80)
  • LTR559 support

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

Supported Breakouts

pimoroni-pico - Version 0.1.4

Published by Gadgetoid over 3 years ago

  • Fix initialization of is31fl3731 for 11x7 matrix and 5x5 matrix
  • Support for the dual LTP-305 LED matrix breakout

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

pimoroni-pico - Version 0.1.3

Published by Gadgetoid over 3 years ago

  • 11x7 pixel matrix breakout support
  • 5x5 pixel RGB matrix breakout support

Built against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

pimoroni-pico - Version 0.1.2

Published by Gadgetoid over 3 years ago

  • Pico Wireless support!
  • Fix to Pico Keypad in MicroPython so that clear isn't mapped to init
  • New Pico Audio example for C++/Pico SDK (not available in MicroPython)

Build against MicroPython release v1.15 - https://github.com/micropython/micropython/releases/tag/v1.15

pimoroni-pico - Version 0.1.1

Published by Gadgetoid over 3 years ago

Fixes the backlight pin for Pico Display.

⚠️ Note: Breaks backlight control on Round LCD, but this needs some work to differentiate between different SPI slot CS and BL pins.

Note: This release should also include the MicroPython USB suspend fix: https://github.com/micropython/micropython/commit/ca3d51f12206a88463f2b2a2d27756a1b519cb6a

pimoroni-pico - Version 0.1.0

Published by Gadgetoid over 3 years ago

This version should build against mainline MicroPython, reducing any core differences between our .uf2 and MicroPython's own builds to zero. At least insofar as we keep up a relatively regular release schedule.

Includes a fix for PicoDisplay.text to throw a TypeError when given a non-string value to display, instead of hard-locking the Pico.

Includes support for our upcoming ST7789-powerd 240x240 pixel (ostensibly) Round LCD.

pimoroni-pico - Version 0.0.9 Alpha

Published by Gadgetoid over 3 years ago

This is 0.0.8 but - hopefully - with ulab.

Badges
Extracted from project README
CMake Build Status MicroPython Build Status MicroPython PicoW Build Status GitHub release (latest by date)