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

Overview

Pimoroni Pico Libraries and Examples

Welcome to the brave new world of Pico! This repository contains the C/C++ and MicroPython libraries for our range of Raspberry Pi Pico addons.

First of all you need to decide if your project is going to be done in MicroPython or using C/C++ with the Pico SDK. We have instructions for both here:

Software support for our Pico range

It's very early days for Pico and we've been working our little socks off to get everything ready for launch.

Most of our Pico addons have support for both C/C++ and MicroPython but we're still catching up a little bit in places.

The table below shows the current state of compatibly and some notes to set expectations:

Product C/C++ Library MicroPython Library Notes
Pico Explorer Base Yes Yes
Pico RGB Keypad Yes Yes
Pico Unicorn Pack Yes Yes MicroPython support added in v0.0.3 Alpha
Pico Audio Pack Yes No Limited support for MicroPython planned
Pico Scroll Pack Yes Yes
Pico Display Pack Yes Yes

We will keep this information updated as things develop.

Note: It's very early days for Raspberry Pi Pico and it's likely that our libraries will undergo quite a lot of changes over the next couple of weeks as we take in feedback and expand the functionality.

Issues
  • ST7789 / PicoGraphics rewrite - Support for 4-bit, 8-bit and 16-bit framebuffers and more.

    ST7789 / PicoGraphics rewrite - Support for 4-bit, 8-bit and 16-bit framebuffers and more.

    :information_source: Latest test builds - https://github.com/pimoroni/pimoroni-pico/actions/runs/2514970828 (now with MicroPython v1.19, PIO accelerated ST7789 parallel output, performance tweaks, Tufty2040 build, updated 17 Jun, 11:00 GMT)

    A 340x240 16-bit framebuffer uses a whopping 150k of RAM. This is relatively okay in C++ but causes issues in MicroPython where the gc_heap is only 192k.

    This set of changes allow you to use a native 16-bit, smaller 8-bit, or tiny 4-bit framebuffer for most of our SPI displays. This lets you balance memory usage with available colours and display performance.

    This change renames the st7789 module to picographics in MicroPython.

    Bringup

    Here's an example bringup for the 160x80 ST7735 LCD in true-colour RGB565 mode:

    from picographics import PicoGraphics, DISPLAY_LCD_160X80, PEN_RGB565
    
    display = PicoGraphics(display=DISPLAY_LCD_160X80, pen_type=PEN_RGB565)
    

    The above uses 25K of RAM and supports 65K colours.

    from picographics import PicoGraphics, DISPLAY_LCD_160X80, PEN_P4
    
    display = PicoGraphics(display=DISPLAY_LCD_160X80, pen_type=PEN_P4)
    

    The above uses 6.25K of RAM and supports 8 colours!

    Custom Pins

    You can use your own pins for supported SPI or Parallel displays.

    You must construct an SPIBus or ParallelBus object using the pimoroni_bus module:

    from pimoroni_bus import SPIBus
    from picographics import PicoGraphics, DISPLAY_PICO_EXPLORER, PEN_RGB332
    
    spibus = SPIBus(cs=17, dc=16, sck=18, mosi=19)
    
    display = PicoGraphics(display=DISPLAY_PICO_EXPLORER, bus=spibus, pen_type=PEN_RGB332)
    

    Saving More RAM / Doing Weird Things

    If you need to temporarily claim back RAM from PicoDisplay, or use multiple framebuffers, you can use set_framebuffer to set/clear the region of memory it uses internally.

    :warning: DO NOT attempt to draw when no framebuffer is set. You'll have a bad time!

    from picographics import PicoGraphics, get_buffer_size, DISPLAY_LCD_160X80, PEN_P4
    
    # Big enough for 160 * 80 at 4-bits per pixel
    buf = bytearray(get_buffer_size(DISPLAY_LCD_160X80, PEN_P4))
    
    display = PicoGraphics(display=DISPLAY_LCD_160X80, pen_type=PEN_P4,  buffer=buf)
    
    # Detach the framebuffer from PicoGraphics
    display.set_framebuffer(None)
    
    # Set a different framebuffer
    buf2 = bytearray(int(160 * 80 / 2))
    display.set_framebuffer(buf2)
    

    Displaying JPEG files

    Thanks to JPEGDEC - https://github.com/bitbank2/JPEGDEC - you can load and display JPEG files via PicoGraphics, like so:

    import picographics
    import jpegdec
    
    lcd = picographics.PicoGraphics(display=picographics.DISPLAY_PICO_EXPLORER, rotate=0, pen_type=picographics.PEN_RGB565)
    
    # Create a new JPEG decoder for our PicoGraphics
    j = jpegdec.JPEG(lcd)
    
    # Open the JPEG file
    j.open_file("240.jpeg")
    
    # Decode the JPEG
    j.decode(0, 0, 0)
    
    # Display the result
    lcd.update()
    

    The arguments to "decode" are x-offset, y-offset and scale. Value scale values are:

    JPEG_SCALE_HALF = 2
    JPEG_SCALE_QUARTER = 4
    JPEG_SCALE_EIGHTH = 8
    

    When you call decode the jpeg decoder makes a best effort to draw into your PicoGraphics surface in a sensible pixel format.

    Sprites

    Pico Graphics has very basic support for 128x128 spritesheets in PEN_RGB332 mode:

    from picographics import PicoGraphics, DISPLAY_TUFTY_2040, PEN_RGB332
    import time
    
    lcd = PicoGraphics(DISPLAY_TUFTY_2040, pen_type=PEN_RGB332)
    
    # Reserve a large enough buffer
    sprites = bytearray(128 * 128)
    
    # Load a spritesheet into the buffer
    open("s4m_ur4i-dingbads.rgb332", "rb").readinto(sprites)
    #open("s4m_ur4i-pirate-characters.rgb332", "rb").readinto(sprites)
    
    # Tell PicoGraphics to use this new spritesheet
    lcd.set_spritesheet(sprites)
    
    # Draw a sprite
    lcd.sprite(0, 0, 10, 10, 255)
    

    The function sprite takes:

    • the X/Y index of a sprite in the spritesheet. These should be between 0-15.
    • the X/Y coordinates to draw the sprite on screen.
    • the colour to treat as transparent

    Supported Displays

    The current list of supported displays is:

    • DISPLAY_ENVIRO_PLUS
    • DISPLAY_LCD_160X80
    • DISPLAY_LCD_240X240
    • DISPLAY_PICO_DISPLAY
    • DISPLAY_PICO_DISPLAY_2
    • DISPLAY_PICO_EXPLORER
    • DISPLAY_ROUND_LCD_240X240
    • DISPLAY_TUFTY_2040

    Supported Pen Types

    • PEN_P4 - 4-bit packed, with an 8 colour palette. This is commonly used for 7/8-colour e-ink displays or driving large displays with few colours.
    • PEN_P8 - 8-bit, with a 256 colour palette. Great balance of memory usage versus available colours. You can replace palette entries on the fly.
    • PEN_RGB332 - 8-bit, with a fixed 256 colour RGB332 palette. Great for quickly porting an RGB565 app to use less RAM. Limits your colour choices, but is easier to grok.
    • PEN_RGB565 - 16-bit, 65K "True Colour." Great for rainbows, gradients and images but comes at the cost of RAM!

    TODO

    • [ ] Add some new documentation here!
    • [x] Handle a failure to allocate a palette colour (return -1 if we've run out of palette space?)
    • [x] Provide MicroPython bindings for palette put/get methods
    • [x] Provide a way to initialize a specific display type's args automatically, eg: ST7789(display=SPI_LCD_240X240)
    • [x] Update all examples to remove set_pen(r, g, b) since this is meaningless and deprecated
    • [ ] Write a migration guide
    • [ ] Update documentation
    • [x] Remove obsolete functions from Pico Display & Pico Explorer classes- should be header-only defines of pins
    • [ ] Create a C++ "Buzzer" driver to mirror the MicroPython one and replace "pico_explorer.set_tone()"

    TO TEST

    • [x] Pico Display 2.0 - All rotations
    • [x] Pico Display - All rotations
    • [x] SPI LCD 240 x 240 - All rotations
    • [x] Pico Explorer - All rotations
    opened by Gadgetoid 71
  • Graphic glitch introduced by v0.0.7

    Graphic glitch introduced by v0.0.7

    I think either by this commit or this commit some graphic glitch has been introduced regarding the pico display since moving from release v0.0.6 to v0.0.7. The glitch is visible in this video. It works flawlessly when using v.0.0.6. Any ideas as to why?

    bug 
    opened by slabua 40
  • Set pixels as image, add show_bitmap_1d(), show_text()

    Set pixels as image, add show_bitmap_1d(), show_text()

    Preamble

    I don't know how you folks feel about PR's - if this is not your game, I will not be offended if I see a close with no comments.

    Proposed API extensions

    Show images

    Show images using a set_pixels method:

    image = bytearray(0 for j in range(width * height))
    picoscroll.set_pixels(image)
    

    seems convenient for cases where you want to redraw the image from one "frame" to the next, means all of the pixel value copying is done in C not Python/

    Scroll bitmaps

    Scroll bitmaps (one dimensional, e.g. text) using a show_bitmap_1d method:

    bitmap = bytearray(j for j in range 127)
    for offset in range(-17, 127):
        picoscroll.show_bitmap_1d(bitmap, 16, offset)
        picoscroll.update()
    

    Detailed illustration in this gist

    Motivation for second one: pico scroll did not offer a simple method to actually scroll text across the display, and I feel that this is pretty fundamental so decided to offer one. I wondered about adding the code to render the text to a bitmap to the API but decided on balance to keep things simple, as fonts are something people hold strong opinions about.

    End product:

    https://youtu.be/XIvKc523NwM

    Will welcome any feedback here, I tried to stick to the "house style"

    enhancement 
    opened by graeme-winter 20
  • Badger2040 Micropython battery improvements

    Badger2040 Micropython battery improvements

    There's been some chat in the Discord about how the Badger2040 eats through the battery when it's not doing anything. I had a look into the Micropython side of things and saw that Badger doesn't halt when running these apps (and it's running at 125MHz), which means it's using 20mA or so instead of almost nothing.

    This is my attempt to start resolving this problem. In summary I have:

    • Exposed versions of halt and pressed to wake to python
    • Set the enable 3v3 pin as early as possible after boot
    • Added functionality in launcher.py to launch a saved app on wake, by checking a file appstate.txt
    • Modified the badge and image examples to use this mechanism to halt the badger after each screen update. The other apps still all work as they did before (for the moment).

    Exposing halt and pressed to wake

    I've not directly exposed the Badger2040 methods for these, instead implementing them independently in the Micropython module. For halt, this allows Thonny to interrupt even when the Badger is "halted" but connected to USB so the power doesn't go off.

    For pressed to wake, the motivation is to capture the button press as soon as possible. Waiting for python to come up and the Badger2040 instance to be created is way too slow, you have to hold down the button for ages for it to register. Instead, I have a static singleton class and grab the button state in its constructor. This does catch most reasonable length button presses, but it still sometimes misses short ones. This could probably be improved by moving this function into preinit, so that the state was captured even earlier during boot - I might look into that later.

    For pressed to wake, I've exposed the button state as a global function on the badger2040 module, as well as on the Badger2040 object. This allows launcher to quickly check the state without having to instantiate a Badger object it would then immediately destroy.

    Enable 3v3 earlier

    Like capturing the button presses, waiting until the Badger object is instantiated before setting the 3v3 enable line makes it hard to wake the Badger up when it's on battery. Instead, I now set the 3v3 enable pin high in the singleton constructor discussed above.

    Launcher changes - appstate.txt

    In order to give the experience of seamlessly using an app while the badger is actually rebooting between each button press, launcher needs to immediately drop into the app again instead of displaying the menu. I've acheived this by writing a short text file appstate.txt, which contains the name of the app on the first line, and any app specific state can be stored on subsequent lines.

    If this file is present and the first line is a valid app name, then launcher loads that app straight away, unless buttons A and C are pressed. This is my suggestion of a new convention whereby pressing buttons A and C together cause the app to exit, instead of having to use the reset button. Using the reset button doesn't work because on battery pressing only the reset button doesn't wake the Badger.

    There is maybe a question of whether we could wear out the flash with frequent writes - possibly it would be best to at least not to rewrite the file if state hadn't changed. Another possibility might be to reserve some flash in the image and provide API methods to read/write this data instead of using the file system, then the location of that block could be changed on each firmware update at least.

    Note that not all apps have to use this mechanism - more interactive apps or apps that you aren't likely to leave running probably shouldn't use it, though potentially they should time out and halt after a few minutes.

    On my way past I've also added a machine.freq(48000000) to the top of launcher, which ~halves power usage and I haven't seen a noticeable difference in performance. I considered putting a call to reduce the clock into the singleton constructor, but I thought it was useful to users to make clear how the clock was being configured, and running the boot at 125MHz isn't going to do any singificant harm.

    Badge and image examples

    I've changed these in the obvious way - the image example shows how additional state can be stored in the appstate file.

    I haven't changed any more examples yet, but if you'd like to accept these changes then I'm happy to do so.

    With these changes, I can just about run these apps off a single new coin cell, providing I give it a bit of time to rest rather than mashing buttons continuously. One coin cell is unlikely to be able to provide sufficient current past the very early stages of its life though.

    opened by MichaelBell 17
  • Pico Display Pack V2 x 2?

    Pico Display Pack V2 x 2?

    I have a need to run two Pico Display Packs side by side, portrait mode if possible. I get that this is a very unusual request, and that its not designed to be used this way. They will be mounted to proto boards so each one can use a different chip select and backlight pin. I'll just mirror what pins are used on the Pico Breakout Garden SPI slots. And ignore the button and LED connections. The stock Pimoroni Micro Python Display Pack driver / module doesn't support alternate pin select so I can't use it. The BreakoutColourLCD240x240 Micro python module does, and does work with the Display Pack, with one exception. It limits me too 240 x 240 pixels. It's already in portraited mode because of the different screen orientation of the display pack but I can't draw to the lower 1/4 of the screen. Even if I specify a height=320 and adjust the display buffer to match.
    I currently have a 1.5' 240x240 LCD Breakout and Display Pack v2 running side by side, so running two displays is possible. What I need is **BreakoutColorLCD240x320 module. I don't have the skills to write my own of know where to even begin to modify the current 240x240 module. I may be asking too much, but I figure it can't hurt to at least ask. @Gadgetoid

    from breakout_colourlcd240x240 import BreakoutColourLCD240x240
    #import picodisplay2 as display2
    display_buffer = bytearray(320 * 240 * 2)  # 2-bytes per pixel (RGB565)
    display1 = BreakoutColourLCD240x240(display_buffer, cs=(22), bl=(21))
    display2 = BreakoutColourLCD240x240(display_buffer, cs=(17), bl=(20))
    #display2.init(display_buffer)
    
    opened by alphanumeric007 17
  • Unable to use VL53L5CX break with Pico or PicoW (via Inventor 2040 W)

    Unable to use VL53L5CX break with Pico or PicoW (via Inventor 2040 W)

    I haven't been able to get a VL53L5CX breakout to work with either a Pico W or Pico using both 1.19.2 or 1.19.1 releases.

    I'm using the MicroPython examples taken from https://github.com/pimoroni/pimoroni-pico/tree/main/micropython/examples/breakout_vl53l5cx in both cases.

    On the Inventor 2040 W running the example results in the board hanging, I then need to power cycle the board for it to work. on this board I have tried both via a soldered breakout slot and via the QW/ST connectors, both with the same result.

    On a regular Pico 2040 running the example returns the following:

    Starting up sensor...
    Traceback (most recent call last):
      File "<stdin>", line 18, in <module>
    RuntimeError: VL53L5CX: init error
    

    In both cases I have ensured that the firmware blob is named correctly and is in the root /.

    opened by FutureMatt 14
  • Using two optical flow sensors simultaneously

    Using two optical flow sensors simultaneously

    I am really excited that the optical flow sensors (PMW3901 & PAA5100) are now supported on the Pico. I was wondering if it is possible to use two sensors simultaneously? The "normal" PMW3901 library lets you set arguments including slots and ports, which opens the option of having 2 sensors recording simultaneously which I've used before, but it's not clear from the Pico example how to achieve this. I'm not a wiz' in .cpp, but it seems that it might be possible from the source code, but I'm not sure how. Any ideas?

    documentation 
    opened by roaldarbol 14
  • ST7789: Create generic display driver

    ST7789: Create generic display driver

    This change introduces an "ST7789" class to C++ and MicroPython. It allows the user to supply supply a width, height and rotation instead of the current ugliness of supplying a properly sized bytearray(). It would also combine all of the (ST7789-based) display product libraries into a single library so we don't have duplicated functionality all over the place (getting progressively worse with every new display product :grimacing:)

    TODO

    1. [x] Bind ST7789 library + PicoGraphics to MicroPython
    2. [x] Add support for various display orientations to ST7789
    3. [x] Migrate PicoDisplay, and PicoDisplay 2" and all other ST7789-based devices to the generic ST7789
    4. [ ] ~~Add shim modules (written in Python and baked into the firmware) to fake the old PicoDisplay and PicoDisplay2 module functionality~~
    5. [x] Update the examples
    6. [x] Remove Pico Display modules
    7. [ ] Communicate The Old Way as deprecated (update documentation?)

    Phase 1 tests:

    Test builds - https://github.com/pimoroni/pimoroni-pico/actions/runs/2017564653

    1. [x] Pico Display
    2. [x] Pico Display 2.0
    3. [x] Pico Explorer

    Impact

    This would change:

    import picodisplay as display
    
    width = display.get_width()
    height = display.get_height()
    
    display_buffer = bytearray(width * height * 2)
    display.init(display_buffer)
    

    Into something a little more like:

    import st7789
    
    WIDTH = 320
    HEIGHT = 240
    
    display = st7789.ST7789(WIDTH, HEIGHT, rotate180=False, slot=BG_SPI_FRONT)
    

    It might involve breaking changes to the C++ API/SDK.

    opened by Gadgetoid 13
  • driver-sh1170 for Raspberry Pico (1.12

    driver-sh1170 for Raspberry Pico (1.12" OLED I2C Breakout)

    Needed a display to attach to a Tiny 2040, so I ported one for the OLED 1.12" monochrome I2C Breakout. As before, I found an Arduino driver and modified it to the new breakouts-dev standards and converted from C to C++. I only have the I2C version of the breakout, so I couldn't check the SPI code. As far as I remember, the Python version of the Pi library (luma) has an image display function, but that wasn't in the original code I used. I'm going to have to dig around for that! There is a warning in the demo code about converting a string constant to a char *. I also cast an int to an "enum" type - not sure how to use the enum directly (for black/white colours). I have created this PR against the breakouts-dev branch - I hope that's right! Thanks for setting up all of the breakout templates - made life a lot easier.

    enhancement 
    opened by simon3270 13
  • Can't get Pimoroni i2c breakouts to work with Micro Python Machine i2c?

    Can't get Pimoroni i2c breakouts to work with Micro Python Machine i2c?

    I have a Pimoroni VEML6076 UV sensor breakout that I want to use in Micro Python on a Pi Pico. It's discontinued so there is no Pimoroni Micro Python library. I have found one that does work in Micro Python using machine i2c.

    import machine
    sda=machine.Pin(4) # Explorer 20 Breakout 4
    scl=machine.Pin(5) # Explorer 21 Breakout 5
    i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000)
    
    import veml6075
    import time
    
    time.sleep_ms(500)
    
    uv = veml6075.VEML6075(i2c)
    connected = uv.initUV()
    
    while True:
        UVI, UVIA, UVIB = uv.readUV()
        print (UVI)
        print (UVIA)
        print (UVIB)
    
        time.sleep(1.0)
    

    The library file is as follows

    import time
    import ubinascii
    
    class VEML6075:
    	
    	# Device information
    	
    	VEML6075_ADDR  = 0x10
    	VEML6075_DEVID = 0x26
    
    	REG_CONF        = 0x00  # Configuration register (options below)
    	REG_UVA         = 0x07  # UVA register
    	REG_UVD	        = 0x08  # Dark current register (NOT DUMMY)
    	REG_UVB         = 0x09  # UVB register
    	REG_UVCOMP1     = 0x0A  # Visible compensation register
    	REG_UVCOMP2     = 0x0B  # IR compensation register
    	REG_DEVID       = 0x0C  # Device ID register
    
    	CONF_IT_50MS    = 0x00  # Integration time = 50ms (default)
    	CONF_IT_100MS   = 0x10  # Integration time = 100ms
    	CONF_IT_200MS   = 0x20  # Integration time = 200ms
    	CONF_IT_400MS   = 0x30  # Integration time = 400ms
    	CONF_IT_800MS   = 0x40  # Integration time = 800ms
    	CONF_IT_MASK    = 0x8F  # Mask off other config bits
    
    	CONF_HD_NORM    = 0x00  # Normal dynamic seetting (default)
    	CONF_HD_HIGH    = 0x08  # High dynamic seetting
    
    	CONF_TRIG       = 0x04  # Trigger measurement, clears by itself
    
    	CONF_AF_OFF     = 0x00  # Active force mode disabled (default)
    	CONF_AF_ON      = 0x02  # Active force mode enabled (?)
    
    	CONF_SD_OFF     = 0x00  # Power up
    	CONF_SD_ON      = 0x01  # Power down
    
    	# To calculate the UV Index, a bunch of empirical/magical coefficients need to
    	# be applied to UVA and UVB readings to get a proper composite index value.
    
    	UVA_A_COEF = 2.22 
    	UVA_B_COEF = 1.33 
    	UVB_C_COEF = 2.95 
    	UVB_D_COEF = 1.74 
    
    	# Once the above offsets and crunching is done, there's a last weighting
    	# function to convert the ADC counts into the UV index values. This handles
    	# both the conversion into irradiance (W/m^2) and the skin erythema weighting
    	# by wavelength--UVB is way more dangerous than UVA, due to shorter
    	# wavelengths and thus more energy per photon. These values convert the compensated values 
    
    	UVA_RESPONSIVITY = 0.0011
    	UVB_RESPONSIVITY = 0.00125
    
    	def __init__(self, i2c=None):
    		self.i2c = i2c
    		self.address = self.VEML6075_ADDR
    		
    	
    	# initialize device
    	def initUV(self):
    		try:
    			deviceID = bytearray(2)
    			self.i2c.readfrom_mem_into(self.address, self.REG_DEVID, deviceID)
    			if (deviceID[0] != self.VEML6075_DEVID):
    				return False
    			else:	
    				# Write Dynamic and Integration Time Settings to Sensor
    				conf_data = bytearray(2)
    				conf_data[0] = self.CONF_IT_100MS| \
    						  self.CONF_HD_NORM| \
    						  self.CONF_SD_OFF
    				conf_data[1] = 0
    				self.i2c.writeto_mem(self.address, self.REG_CONF, conf_data)  
    				return True
    		except:
    			return False
    			
    	# Read UV data from device, return UV index
    	def readUV(self):
    		time.sleep_ms(150)  
    		uv_data = bytearray(2)
    		
    		self.i2c.readfrom_mem_into(self.address,self.REG_UVA, uv_data)
    		uva = int.from_bytes(uv_data, 'little')
    		
    		self.i2c.readfrom_mem_into(self.address,self.REG_UVD, uv_data)
    		uvd = int.from_bytes(uv_data, 'little')
    		
    		self.i2c.readfrom_mem_into(self.address,self.REG_UVB, uv_data)
    		uvb = int.from_bytes(uv_data, 'little')
    		
    		self.i2c.readfrom_mem_into(self.address,self.REG_UVCOMP1, uv_data)
    		uvcomp1 = int.from_bytes(uv_data, 'little')
    		
    		self.i2c.readfrom_mem_into(self.address,self.REG_UVCOMP2, uv_data)
    		uvcomp2 = int.from_bytes(uv_data, 'little')
    		
    		uvacomp = (uva-uvd) - (self.UVA_A_COEF * (uvcomp1-uvd)) - (self.UVA_B_COEF * (uvcomp2-uvd))
    		uvbcomp = (uvb-uvd) - (self.UVB_C_COEF * (uvcomp1-uvd)) - (self.UVB_D_COEF * (uvcomp2-uvd))
    		
    # Do not allow negative readings which can occur in no UV light environments e.g. indoors
    		if uvacomp < 0:  
    			uvacomp = 0
    		if uvbcomp < 0:
    			uvbcomp = 0
    
    		uvai = uvacomp * self.UVA_RESPONSIVITY
    		uvbi = uvbcomp * self.UVB_RESPONSIVITY
    		uvi = (uvai + uvbi) / 2
    		
    		return (uvi, uvai, uvbi)
    

    The pickle I'm in is the above won't work if I try to use the Pimoroni i2c. If I substitute in the following: from pimoroni_i2c import PimoroniI2C PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5} PINS_PICO_EXPLORER = {"sda": 20, "scl": 21} i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN) I get AttributeError: 'pimoroni_i2c' object has no attribute 'readfrom_mem_into'

    And if I try to use any of the Pimoroni i2c breakouts with machine i2c

    from breakout_bme280 import BreakoutBME280 bme = BreakoutBME280(i2c) I get ValueError: BreakoutBME280: Bad i2C object?

    Any help with this would be greatly appreciated.

    opened by alphanumeric007 12
  • Suggestion: Screen orientation setting

    Suggestion: Screen orientation setting

    The picodisplay seems to be fixed orientation so that the "Pico Display" logo on the silkscreen is on the left. But the way I need to use it due to the USB cable I need the logo on the right so now everything is upside-down.

    On the Arduino display libraries, either by Adafruit or other compatible libraries, there is a function to rotate the display so any of the edges are the top edge so you can have it 0,90, 180 or 270 degrees rotated.

    Any chance a similar function could be added to the display library and module here?

    opened by Galbi3000 12
  • ST7789 Parallel: Work with SYS clock faster than default

    ST7789 Parallel: Work with SYS clock faster than default

    When I tried to overclock my Tufty the display went odd (it actually split in two taking up the top half of the screen - seems the display hardware copes OK with the clock being two fast - it just misses every other byte, or something like that).

    This PR makes PIO setup take account of the current system clock when specifying the divider. Using a maximum of 32MHz is a fairly conservative guess at where the safe limit is - my Tufty works OK at 40MHz. The old default was 31.25MHz if you kept a 125MHz system clock.

    opened by MichaelBell 0
  • Update bme68x_demo.py

    Update bme68x_demo.py

    Some products such as the adafruit breakout and Pimoroni Enviro Indoor have the BME68x on the alternate address. This adds a prompt for users getting errors.

    opened by guru 0
  • PCF85063A library: can we set RTC timers longer than 255 ticks?

    PCF85063A library: can we set RTC timers longer than 255 ticks?

    I'm having a lot of fun with the Inky Frame, but I've hit a stumbling block: how would I go about sleeping the Frame for longer than 255 seconds? I'd like it to update once an hour to conserve battery life.

    This code:

    HOLD_VSYS_EN_PIN = 2
    hold_vsys_en_pin = Pin(HOLD_VSYS_EN_PIN, Pin.OUT)
    hold_vsys_en_pin.value(True)
    
    i2c = PimoroniI2C(I2C_SDA_PIN, I2C_SCL_PIN, 100000)
    rtc = PCF85063A(i2c)
    
    UPDATE_INTERVAL = 60 * 60
    rtc.enable_timer_interrupt(True)
    rtc.set_timer(UPDATE_INTERVAL)
    hold_vsys_en_pin.init(Pin.IN)
    time.sleep(UPDATE_INTERVAL)
    

    Returns this error:

    ValueError: ticks out of range. Expected 0 to 255

    documentation 
    opened by lowercasename 1
  • Remove endian byte swap in RGB565 colour handling

    Remove endian byte swap in RGB565 colour handling

    It looks like at some point in the past an issue (perhaps during writing image data to one of our LCD products?) was fixed by byte swapping our basic RGB565 type.

    For example here: https://github.com/pimoroni/pimoroni-pico/blob/8d736324d4c6670f196a31ee7363e63cf107905b/libraries/pico_graphics/pico_graphics.hpp#L81

    The issue should be fixed at the specific driver level as byte swapping our internal representation just leads to confusion when trying to directly manipulate the framebuffer contents.

    I'm not sure which driver was causing the issue hence posting this here instead of just fixing it. If you can point me in the right direction I'll take a look!

    opened by lowfatcode 2
Releases(v1.19.6)
  • v1.19.6(Jul 27, 2022)

    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

    • Feature/pen888 by @lowfatcode in https://github.com/pimoroni/pimoroni-pico/pull/467
    • Pico Unicorn: Fix clear for #461 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/469
    • MicroPython: Bump for macOS USB race cond fix, again. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/471
    • Badger2040: Produce build without baked-in modules. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/473

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.19.5...v1.19.6

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.19.6-micropython-without-badger-os.uf2(1.06 MB)
    pimoroni-badger2040-v1.19.6-micropython.uf2(1.06 MB)
    pimoroni-pico-v1.19.6-micropython.uf2(1.15 MB)
    pimoroni-picolipo_16mb-v1.19.6-micropython.uf2(1.31 MB)
    pimoroni-picolipo_4mb-v1.19.6-micropython.uf2(1.31 MB)
    pimoroni-picow-v1.19.6-micropython.uf2(1.87 MB)
    pimoroni-tiny2040-v1.19.6-micropython.uf2(1.15 MB)
    pimoroni-tufty2040-v1.19.6-micropython.uf2(1.15 MB)
  • v1.19.5(Jul 25, 2022)

    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 https://github.com/micropython/micropython/issues/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

    • Add Inky Frame examples and other misc fixes by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/460
    • Badger2040: Fix fast partial update endless busy wait for #464. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/465
    • MicroPython: Bump for macOS USB race cond fix. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/466

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.19.4...v1.19.5

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.19.5-micropython.uf2(1.26 MB)
    pimoroni-pico-v1.19.5-micropython.uf2(1.15 MB)
    pimoroni-picolipo_16mb-v1.19.5-micropython.uf2(1.31 MB)
    pimoroni-picolipo_4mb-v1.19.5-micropython.uf2(1.31 MB)
    pimoroni-picow-v1.19.5-micropython.uf2(1.86 MB)
    pimoroni-tiny2040-v1.19.5-micropython.uf2(1.15 MB)
    pimoroni-tufty2040-v1.19.5-micropython.uf2(1.15 MB)
  • v1.19.4(Jul 22, 2022)

    Frustrating Fix Frenzy

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

    :warning: 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: https://github.com/micropython/micropython/issues/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

    • Inky Frame: Sensible limit on SDCard speed. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/450
    • maintain cursive font for header after timer expires and script pulls… by @MatStace in https://github.com/pimoroni/pimoroni-pico/pull/455
    • MicroPython: Add ShiftRegister class. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/456
    • VL53L5CX: Alloc results data in MPY gc_heap. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/454
    • CI: Revert: wget ARM GCC toolchain by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/458
    • Pico Scroll/Unicorn: Fix static memory alloc for Pico W. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/457
    • Create show_ip_address by @lesley-byte in https://github.com/pimoroni/pimoroni-pico/pull/433
    • Added documentation for Automation 2040W by @ZodiusInfuser in https://github.com/pimoroni/pimoroni-pico/pull/453
    • PicoW: Bump MPY to 5dbb822ca4a809ac5cb4513afb0411b4eb8dc3cf. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/452
    • PMS5003: Support for i2c version. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/413

    New Contributors

    • @MatStace made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/455
    • @lesley-byte made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/433

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.19.3...v1.19.4

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.19.4-micropython.uf2(1.26 MB)
    pimoroni-pico-v1.19.4-micropython.uf2(1.15 MB)
    pimoroni-picolipo_16mb-v1.19.4-micropython.uf2(1.31 MB)
    pimoroni-picolipo_4mb-v1.19.4-micropython.uf2(1.31 MB)
    pimoroni-picow-v1.19.4-micropython.uf2(1.86 MB)
    pimoroni-tiny2040-v1.19.4-micropython.uf2(1.15 MB)
    pimoroni-tufty2040-v1.19.4-micropython.uf2(1.15 MB)
  • v1.19.3(Jul 15, 2022)

    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

    • Update examples to use PicoGraphics by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/428
    • Add inky pack examples readme by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/439
    • Add new products to readme by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/440
    • Corrected some confusing typos by @ahnlak in https://github.com/pimoroni/pimoroni-pico/pull/436
    • README.md: Fix typo by @RichiH in https://github.com/pimoroni/pimoroni-pico/pull/431
    • PicoGraphics: Fix 3Bit mode dithering for Inky Frame. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/444
    • PicoW: Bump MicroPython to latest commit. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/443
    • Add Cheerlights example for Pico W / Pico Explorer by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/442
    • Inky Frame: MicroPython Examples. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/445
    • Inky Frame: Library + C++ Examples. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/426
    • PicoGraphics: Update C++ docs. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/441

    New Contributors

    • @RichiH made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/431

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.19.2...v1.19.3

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.19.3-micropython.uf2(1.31 MB)
    pimoroni-pico-v1.19.3-micropython.uf2(1.20 MB)
    pimoroni-picolipo_16mb-v1.19.3-micropython.uf2(1.36 MB)
    pimoroni-picolipo_4mb-v1.19.3-micropython.uf2(1.36 MB)
    pimoroni-picow-v1.19.3-micropython.uf2(1.90 MB)
    pimoroni-tiny2040-v1.19.3-micropython.uf2(1.19 MB)
    pimoroni-tufty2040-v1.19.3-micropython.uf2(1.19 MB)
  • v1.19.2(Jul 7, 2022)

    Wonderful World of Wireless

    :warning: 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!

    :speech_balloon: Discussion, bugs and issues here - https://github.com/pimoroni/pimoroni-pico/issues/392

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

    • PicoGraphics/JPEGDEC: Use PicoGraphics dither. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/427
    • Correct the Enviro+ LED pins by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/430
    • Inky Pack: MicroPython Examples. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/420

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.19.1...v1.19.2

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.19.2-micropython.uf2(1.31 MB)
    pimoroni-pico-v1.19.2-micropython.uf2(1.20 MB)
    pimoroni-picolipo_16mb-v1.19.2-micropython.uf2(1.36 MB)
    pimoroni-picolipo_4mb-v1.19.2-micropython.uf2(1.36 MB)
    pimoroni-picow-v1.19.2-micropython.uf2(1.89 MB)
    pimoroni-tiny2040-v1.19.2-micropython.uf2(1.19 MB)
    pimoroni-tufty2040-v1.19.2-micropython.uf2(1.19 MB)
  • v1.19.1(Jul 4, 2022)

    Wonderful World of Wireless

    :warning: 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!

    :speech_balloon: Discussion, bugs and issues here - https://github.com/pimoroni/pimoroni-pico/issues/392

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

    • Updated PicoGraphics README and .gitignore by @kevinmcaleer in https://github.com/pimoroni/pimoroni-pico/pull/395
    • MICS6814: read_nh3 and read_oxidising now call the correct get_raw_* functions by @ahnlak in https://github.com/pimoroni/pimoroni-pico/pull/398
    • Add boot button to button test, new LED PWM example by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/397
    • PicoGraphics support for UC8151-based displays by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/400
    • Inky 2040 Support, UC8159 Driver & Improvements by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/322
    • Badger2040: Move to more generic fixups hack. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/401
    • fatfs: Enable FF_USE_STRFUNC for f_gets. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/402
    • Breakout RTC: Optimise required kwarg functions to positional. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/381
    • SH1107: Support for alternate i2c address. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/407
    • added ability to set/get the free ram byte on pcf85063a by @lowfatcode in https://github.com/pimoroni/pimoroni-pico/pull/409
    • Micropython examples by @rabid-inventor in https://github.com/pimoroni/pimoroni-pico/pull/406
    • PicoGraphics: Partial update/speed support. Tidyup. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/410
    • UC8159: Timeout-based busy wait. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/414
    • Bitmap Fonts: Break to newline on \n. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/412
    • UC8159: Timeout compiler error fix. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/415
    • Libraries and examples for Inventor 2040 W by @ZodiusInfuser in https://github.com/pimoroni/pimoroni-pico/pull/417
    • Libraries and examples for Automation 2040 W by @ZodiusInfuser in https://github.com/pimoroni/pimoroni-pico/pull/418
    • CI: Add PicoW MicroPython build. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/416
    • PicoGraphics/UC8159: 3bit bitplane pen mode. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/419

    New Contributors

    • @kevinmcaleer made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/395
    • @ahnlak made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/398

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.19.0...v1.19.1

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.19.1-micropython.uf2(1.31 MB)
    pimoroni-pico-v1.19.1-micropython.uf2(1.20 MB)
    pimoroni-picolipo_16mb-v1.19.1-micropython.uf2(1.36 MB)
    pimoroni-picolipo_4mb-v1.19.1-micropython.uf2(1.36 MB)
    pimoroni-picow-v1.19.1-micropython.uf2(1.89 MB)
    pimoroni-tiny2040-v1.19.1-micropython.uf2(1.19 MB)
    pimoroni-tufty2040-v1.19.1-micropython.uf2(1.19 MB)
  • v1.19.0(Jun 17, 2022)

    Go Go Gadget Glorious Graphics

    :warning: 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!

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

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.9...v1.19.0

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.19.0-micropython.uf2(1.32 MB)
    pimoroni-pico-v1.19.0-micropython.uf2(1.19 MB)
    pimoroni-picolipo_16mb-v1.19.0-micropython.uf2(1.34 MB)
    pimoroni-picolipo_4mb-v1.19.0-micropython.uf2(1.34 MB)
    pimoroni-tiny2040-v1.19.0-micropython.uf2(1.18 MB)
    pimoroni-tufty2040-v1.19.0-micropython.uf2(1.18 MB)
  • v1.18.9(May 23, 2022)

    Really Rad Refactor

    :warning: This release has some spicy changes that you might not want to be dealing with right now. If you're looking for your code to keep ticking along as usual then please grab v1.18.7. If you want to help find all the ways in which I've broken our MicroPython build... please give this release a go!

    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 https://github.com/pimoroni/pimoroni-pico/pull/369
    • Small pico unicorn cleanups by @Daft-Freak in https://github.com/pimoroni/pimoroni-pico/pull/370
    • Improve PIMORONI_PICO_PATH fallback by @Daft-Freak in https://github.com/pimoroni/pimoroni-pico/pull/366
    • Add Motor SHIM for Pico link to readme by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/358
    • MicroPython: Use placement new to alloc classes on GC_HEAP by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/365
    • ADC FFT library & MicroPython Bindings by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/371

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.8...v1.18.9

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.18.9-micropython.uf2(1.30 MB)
    pimoroni-pico-v1.18.9-micropython-v1.18-blinka-7.3.0-platformdetect-3.22.1.uf2(1.35 MB)
    pimoroni-pico-v1.18.9-micropython.uf2(1.20 MB)
    pimoroni-picolipo_16mb-v1.18.9-micropython.uf2(1.19 MB)
    pimoroni-picolipo_4mb-v1.18.9-micropython.uf2(1.19 MB)
    pimoroni-tiny2040-v1.18.9-micropython.uf2(1.19 MB)
  • v1.18.8(May 18, 2022)

    Beta Bonanza

    :warning: This release has some spicy changes that you might not want to be dealing with right now. If you're looking for your code to keep ticking along as usual then please grab v1.18.7. If you want to help find all the ways in which I've broken our MicroPython build... please give this release a go!

    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)
    

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

    1. PimoroniI2C is a weird superset of machine.I2C and will work fine as a drop-in replacement if you want to keep using it
    2. machine.I2C instances will now be accepted by all of our MicroPython I2C-based sensor libraries, and quietly promoted to PimoroniI2C 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 https://github.com/pimoroni/pimoroni-pico/pull/363
    • Sideload vl53l5cx firmware to avoid bloating MicroPython binary by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/360
    • MicroPython: Make Pimoroni I2C compatible with machine.I2C by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/361
    • ST7789: Create generic display driver by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/327

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.7...v1.18.8

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.18.8-micropython.uf2(1.30 MB)
    pimoroni-pico-v1.18.8-micropython-v1.18-blinka-7.3.0-platformdetect-3.22.1.uf2(1.35 MB)
    pimoroni-pico-v1.18.8-micropython.uf2(1.19 MB)
    pimoroni-picolipo_16mb-v1.18.8-micropython.uf2(1.19 MB)
    pimoroni-picolipo_4mb-v1.18.8-micropython.uf2(1.19 MB)
    pimoroni-tiny2040-v1.18.8-micropython.uf2(1.19 MB)
  • v1.18.7(May 16, 2022)

    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: https://github.com/pimoroni/pimoroni-pico/pull/327

    What's Changed

    • Update Badger readme to include bitmap fonts by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/337
    • Stop & reinit SCD41 to fix lockup for #338 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/340
    • fix micropython line and triangle primitives for LCD displays by @cedel1 in https://github.com/pimoroni/pimoroni-pico/pull/344
    • Updating the samples README to reflect current contents by @andypiper in https://github.com/pimoroni/pimoroni-pico/pull/345
    • Badger 2040: Fix partial update hang for #348 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/353
    • Add vl53l5cx driver, MicroPython bindings and examples by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/347
    • Bump Blinka and PlatformDetect for #349 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/350
    • Added support for motors and encoders by @ZodiusInfuser in https://github.com/pimoroni/pimoroni-pico/pull/352
    • Use I2C pins constants for #351 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/355

    New Contributors

    • @cedel1 made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/344

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.6...v1.18.7

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.18.7-micropython.uf2(1.30 MB)
    pimoroni-pico-v1.18.7-micropython-v1.18-blinka-7.3.0-platformdetect-3.22.1.uf2(1.34 MB)
    pimoroni-pico-v1.18.7-micropython.uf2(1.18 MB)
    pimoroni-picolipo_16mb-v1.18.7-micropython.uf2(1.18 MB)
    pimoroni-picolipo_4mb-v1.18.7-micropython.uf2(1.18 MB)
    pimoroni-tiny2040-v1.18.7-micropython.uf2(1.18 MB)
  • v1.18.6(Apr 1, 2022)

    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 https://github.com/pimoroni/pimoroni-pico/pull/312
    • Add example to set RV3028 RTC breakout by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/308
    • Even better Badger wake handling by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/316
    • Badger2040: Improve help, info, qrgen by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/318
    • Badger2040: system_speed call, plus performance improvements by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/325
    • Adding support for Servos by @ZodiusInfuser in https://github.com/pimoroni/pimoroni-pico/pull/259
    • Hershey & Pixel fonts as libraries + Pixel fonts for Badger 2040 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/326
    • Reinitialize hardware after system clock change by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/330
    • Pico Wireless - ESP32 Driver Rewrite by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/328
    • Badger2040: Update list app to use new system by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/319
    • Fonts: Ungracefully handle accented characters. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/332
    • Badger 2040: Support for multiple QR codes. by @jpwsutton in https://github.com/pimoroni/pimoroni-pico/pull/333

    New Contributors

    • @deodre made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/312

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.5...v1.18.6

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.18.6-micropython.uf2(1.30 MB)
    pimoroni-pico-v1.18.6-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2(1.27 MB)
    pimoroni-pico-v1.18.6-micropython.uf2(1.14 MB)
    pimoroni-picolipo_16mb-v1.18.6-micropython.uf2(1.13 MB)
    pimoroni-picolipo_4mb-v1.18.6-micropython.uf2(1.13 MB)
    pimoroni-tiny2040-v1.18.6-micropython.uf2(1.13 MB)
  • v1.18.5(Mar 25, 2022)

    :point_down: Scroll down to find .uf2 files under "Assets". There are now too many to manually list at the top here! :point_down:

    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!
    • :warning: 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: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.4...v1.18.5

    Merged PRs

    • Fix filenames in examples README, some minor code tweaks by @andypiper in https://github.com/pimoroni/pimoroni-pico/pull/296
    • Badger2040: Add sleep to help and info by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/298
    • PAA5100/PMW3901 Fix default float argument bug for #228 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/302
    • Combine PAA5100 and PMW3901 into a single module for #301 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/303
    • Conway's game of life for Badger2040 by @samuelmcdermott in https://github.com/pimoroni/pimoroni-pico/pull/304
    • Badger2040: Fix builtin module depends typo. by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/315
    • Badger2040 Micropython battery improvements by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/313

    New Contributors

    • @samuelmcdermott made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/304
    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.18.5-micropython.uf2(1.34 MB)
    pimoroni-pico-v1.18.5-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2(1.22 MB)
    pimoroni-pico-v1.18.5-micropython.uf2(1.09 MB)
    pimoroni-picolipo_16mb-v1.18.5-micropython.uf2(1.08 MB)
    pimoroni-picolipo_4mb-v1.18.5-micropython.uf2(1.08 MB)
    pimoroni-tiny2040-v1.18.5-micropython.uf2(1.08 MB)
  • v1.18.4(Mar 11, 2022)

    :point_down: Scroll down to find .uf2 files under "Assets". There are now too many to manually list at the top here! :point_down:

    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.

    :exclamation: 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.

    image

    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 https://github.com/pimoroni/pimoroni-pico/pull/273
    • badger2040: Only 24 hours in a day (not 60) by @lurch in https://github.com/pimoroni/pimoroni-pico/pull/276
    • badger2040: Set default clock to a valid date by @lurch in https://github.com/pimoroni/pimoroni-pico/pull/275
    • Add Pimoroni Pico LiPo button/LED example, tweak docs by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/284
    • badger2040: prevent date being set to an invalid value by @lurch in https://github.com/pimoroni/pimoroni-pico/pull/278
    • Make USB powered and battery powered Badger2040 work the same by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/285
    • Badger2040: Fix ebook.py missing lines for #280 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/289
    • Badger2040: Build .py conversion into convert.py by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/288
    • Build MicroPython for multiple boards by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/291
    • Badger2040: Fix text rotation aliasing for #290 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/292
    • QRCode Library by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/268

    New Contributors

    • @andypiper made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/273
    • @lurch made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/276

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.3...v1.18.4

    Source code(tar.gz)
    Source code(zip)
    pimoroni-badger2040-v1.18.4-micropython.uf2(1.34 MB)
    pimoroni-pico-v1.18.4-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2(1.22 MB)
    pimoroni-pico-v1.18.4-micropython.uf2(1.09 MB)
    pimoroni-picolipo_16mb-v1.18.4-micropython.uf2(1.08 MB)
    pimoroni-picolipo_4mb-v1.18.4-micropython.uf2(1.08 MB)
    pimoroni-tiny2040_8mb-v1.18.4-micropython.uf2(1.08 MB)
  • v1.18.3(Mar 4, 2022)

    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 https://github.com/pimoroni/pimoroni-pico/pull/254
    • Badger2040: Allow builtin demos to be replaced by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/257
    • Badger2040: Build assets from source + CMake builtin copy by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/264
    • Add simple LED example and readme tweaks by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/263
    • Badger2040 C++ library and example fixes by @MichaelBell in https://github.com/pimoroni/pimoroni-pico/pull/260
    • Badger 2040 - Improve examples by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/271

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/1.18.2...v1.18.3

    New Contributors

    • @nathanmayall made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/254
    • @MichaelBell made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v1.18.3-badger2040-micropython-v1.18.uf2(1.28 MB)
    pimoroni-pico-v1.18.3-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2(1.16 MB)
    pimoroni-pico-v1.18.3-micropython-v1.18.uf2(1.03 MB)
  • 1.18.2(Feb 25, 2022)

    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 https://github.com/pimoroni/pimoroni-pico/pull/250
    • Add battery example for Pimoroni Pico LiPo by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/251
    • Support for Badger 2040 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/252

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-1.18.2-badger2040-micropython-v1.18.uf2(1.27 MB)
    pimoroni-pico-1.18.2-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2(1.30 MB)
    pimoroni-pico-1.18.2-micropython-v1.18.uf2(1.16 MB)
  • v1.18.1(Feb 10, 2022)

    Downloads

    • MicroPython with Pimoroni Libs (1.01MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.18.1/pimoroni-pico-v1.18.1-micropython-v1.18.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.14MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.18.1/pimoroni-pico-v1.18.1-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2

    Summary

    This releases fixes an issue with I2C for the ICP10125 sensor. Otherwise the Python builds are the same as v1.18.0.

    What's Changed

    • Tweak readme links by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/244
    • I2C Library for boilerplate projects? by @lordmortis in https://github.com/pimoroni/pimoroni-pico/pull/246
    • ICP10125: Fix block indefinitely on repeated start by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/248

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v1.18.0...v1.18.1

    New Contributors

    • @lordmortis made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/246

    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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v1.18.1-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2(1.16 MB)
    pimoroni-pico-v1.18.1-micropython-v1.18.uf2(1.03 MB)
  • v1.18.0(Jan 27, 2022)

    Downloads

    • MicroPython with Pimoroni Libs (1.01MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.18.0/pimoroni-pico-v1.18.0-micropython-v1.18.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.14MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v1.18.0/pimoroni-pico-v1.18.0-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2

    Summary

    This release has the same libraries/modules as v0.3.3 (https://github.com/pimoroni/pimoroni-pico/releases/tag/v0.3.3) however:

    • The MicroPython version has been bumped to v1.18 - release notes here: https://github.com/micropython/micropython/releases/tag/v1.18
    • Blinka has been bumped to 6.20.1 (from 6.14.1)
    • PlatformDetect has been bumped to 3.19.3 (from 3.15.3)

    Changes

    • Clarify BME68X humidity and gas resistance units by @SamStudio8 in https://github.com/pimoroni/pimoroni-pico/pull/241
    • SCD41: Add i2c pins to MicroPython example by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/242
    • Bump MicroPython to v1.18 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/240
    • Various minor documentation tweaks and improvements have been swept along for the ride

    New Version Number Format

    We were previously stepping through incremental minor and patch numbers. In an effort to better reflect the dependence upon upstream MicroPython, the Major and Minor (1.18) version numbers now reflect the MicroPython release version.

    The Patch version will continue to reflect incremental changes to the library, including bugfixes, newly supported device and so on.

    New Contributors

    • @SamStudio8 made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/241

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v0.3.3...v1.18.0

    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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v1.18.0-micropython-v1.18-blinka-6.20.1-platformdetect-3.19.3.uf2(1.16 MB)
    pimoroni-pico-v1.18.0-micropython-v1.18.uf2(1.03 MB)
  • v0.3.3(Jan 25, 2022)

    Downloads

    • MicroPython with Pimoroni Libs (1.01MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.3/pimoroni-pico-v0.3.3-micropython-v1.17.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.14MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.3/pimoroni-pico-v0.3.3-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2

    Summary

    This release adds support for the SCD4X series CO2 sensors, exposes the update method of the Plasma APA102 and WS2812 libraries and fixes the ordering of return values from WS2812's get method.

    Changes

    • tweak resources links by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/231
    • Driver for SCD4X series CO2 sensors by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/174
    • Plasma/MP: bind update method for #236 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/237
    • Fix "repeat_time" docs in README by @mozz100 in https://github.com/pimoroni/pimoroni-pico/pull/235
    • Fix ordering of tuple returned by WS2812.get by @waveform80 in https://github.com/pimoroni/pimoroni-pico/pull/2328

    New Contributors

    • @mozz100 made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/235
    • @waveform80 made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/232

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v0.3.2...v0.3.3

    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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    • SCD40 - TBC
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.3.3-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2(1.14 MB)
    pimoroni-pico-v0.3.3-micropython-v1.17.uf2(1.01 MB)
  • v0.3.2(Dec 9, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (1.01MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.2/pimoroni-pico-v0.3.2-micropython-v1.17.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.14MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.2/pimoroni-pico-v0.3.2-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2

    Summary

    This release adds support for the Interstate 75 HUB75 panel driver, plus some other tweaks and fixes detailed below.

    Changes

    • Fix documentation examples setting RGB LED by @eddhurst in https://github.com/pimoroni/pimoroni-pico/pull/222
    • Couple of festive examples for Plasma 2040 by @helgibbons in https://github.com/pimoroni/pimoroni-pico/pull/227
    • Plasma: Add WS2812 W suppot for #220 by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/226
    • Pure C++ HUB75 example by @Gadgetoid in https://github.com/pimoroni/pimoroni-pico/pull/193
    • Improve ST7789 frame rate ~4x by @ProgramMax in https://github.com/pimoroni/pimoroni-pico/pull/218

    New Contributors

    • @eddhurst made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/222
    • @ProgramMax made their first contribution in https://github.com/pimoroni/pimoroni-pico/pull/218

    Full Changelog: https://github.com/pimoroni/pimoroni-pico/compare/v0.3.1...v0.3.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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    • Plasma 2040 - https://shop.pimoroni.com/products/plasma-2040
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.3.2-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2(1.14 MB)
    pimoroni-pico-v0.3.2-micropython-v1.17.uf2(1.01 MB)
  • v0.3.1(Nov 12, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (1020KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.1/pimoroni-pico-v0.3.1-micropython-v1.17.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.13MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.1/pimoroni-pico-v0.3.1-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2

    Changes

    • Added support for the ICP10125 air pressure sensor - https://shop.pimoroni.com/products/icp10125-air-pressure-breakout

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.3.1-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2(1.12 MB)
    pimoroni-pico-v0.3.1-micropython-v1.17.uf2(1023.00 KB)
  • v0.3.0(Oct 11, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (1020KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.0/pimoroni-pico-v0.3.0-micropython-v1.17.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.13MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.3.0/pimoroni-pico-v0.3.0-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.3.0-micropython-v1.17-blinka-6.14.1-platformdetect-3.15.3.uf2(1.12 MB)
    pimoroni-pico-v0.3.0-micropython-v1.17.uf2(1019.50 KB)
  • v0.2.7(Oct 7, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (1010KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.7/pimoroni-pico-v0.2.7-micropython-v1.16.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.12MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.7/pimoroni-pico-v0.2.7-micropython-v1.16-blinka-6.14.1-platformdetect-3.15.3.uf2

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
      • Pico Display 2.0"
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.7-micropython-v1.16-blinka-6.14.1-platformdetect-3.15.3.uf2(1.11 MB)
    pimoroni-pico-v0.2.7-micropython-v1.16.uf2(1014.00 KB)
  • v0.2.6(Aug 27, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (993KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.6/pimoroni-pico-v0.2.6-micropython-v1.16.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.1MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.6/pimoroni-pico-v0.2.6-micropython-v1.15-blinka-6.13.0-platformdetect-3.15.3.uf2

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.6-micropython-v1.15-blinka-6.13.0-platformdetect-3.15.3.uf2(1.09 MB)
    pimoroni-pico-v0.2.6-micropython-v1.16.uf2(992.50 KB)
  • v0.2.5(Aug 19, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (981KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.5/pimoroni-pico-v0.2.5-micropython-v1.16.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.08MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.5/pimoroni-pico-v0.2.5-micropython-v1.16-blinka-6.10.2-platformdetect-3.14.1.uf2

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.5-micropython-v1.16-blinka-6.10.2-platformdetect-3.14.1.uf2(1.08 MB)
    pimoroni-pico-v0.2.5-micropython-v1.16.uf2(991.50 KB)
  • v0.2.4(Aug 2, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (982KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.4/pimoroni-pico-v0.2.4-micropython-v1.16.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.08MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.4/pimoroni-pico-v0.2.4-micropython-v1.16-blinka-6.10.2-platformdetect-3.14.1.uf2

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-54-spi-colour-square-lcd-240x240-breakout
    • 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
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.4-micropython-v1.16-blinka-6.10.2-platformdetect-3.14.1.uf2(1.07 MB)
    pimoroni-pico-v0.2.4-micropython-v1.16.uf2(981.50 KB)
  • v0.2.3(Jul 8, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (945KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.3/pimoroni-pico-v0.2.3-micropython-v1.16.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.04MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.3/pimoroni-pico-v0.2.3-micropython-v1.16-blinka-6.10.2-platformdetect-3.14.1.uf2

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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 and 1.3" round LCD
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.3-micropython-v1.16-blinka-6.10.2-platformdetect-3.14.1.uf2(1.04 MB)
    pimoroni-pico-v0.2.3-micropython-v1.16.uf2(946.50 KB)
  • v0.2.2(Jun 5, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (945KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.2/pimoroni-pico-v0.2.2-micropython-v1.15.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.04MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.2/pimoroni-pico-v0.2.2-micropython-v1.15-blinka-6.10.1-platformdetect-3.13.3.uf2

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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 and 1.3" round LCD
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.2-micropython-v1.15-blinka-6.10.1-platformdetect-3.13.3.uf2(1.04 MB)
    pimoroni-pico-v0.2.2-micropython-v1.15.uf2(945.00 KB)
  • v0.2.1(May 20, 2021)

    Downloads

    • MicroPython with Pimoroni Libs (945KB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.1/pimoroni-pico-v0.2.1-micropython-v1.15.uf2
    • MicroPython with Pimoroni Libs + Adafruit Blinka + Adafruit PlatformDetect (1.04MB) - https://github.com/pimoroni/pimoroni-pico/releases/download/v0.2.1/pimoroni-pico-v0.2.1-micropython-v1.15-blinka-6.9.1-platformdetect-3.13.1.uf2

    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 - :warning: I2C devices now use the "PimoroniI2C" class :warning:

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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 and 1.3" round LCD
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.1-micropython-v1.15-blinka-6.9.1-platformdetect-3.13.1.uf2(1.03 MB)
    pimoroni-pico-v0.2.1-micropython-v1.15.uf2(944.50 KB)
  • v0.2.0(May 19, 2021)

    AWOOGA - :warning: I2C devices now use the "PimoroniI2C" class :warning:

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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 and 1.3" round LCD
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.2.0-micropython-v1.15.uf2(944.50 KB)
  • v0.1.8(May 14, 2021)

    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

    • 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
      • https://shop.pimoroni.com/products/11x7-led-matrix-breakout
      • https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout
    • 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 and 1.3" round LCD
      • https://shop.pimoroni.com/products/1-3-spi-colour-lcd-240x240-breakout
      • https://shop.pimoroni.com/products/1-3-spi-colour-round-lcd-240x240-breakout
    Source code(tar.gz)
    Source code(zip)
    pimoroni-pico-v0.1.8-micropython-v1.15.uf2(945.50 KB)
Owner
Pimoroni Ltd
We are a company of Makers and educators based in Sheffield, UK.
Pimoroni Ltd
Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:

sol2 sol2 is a C++ library binding to Lua. It currently supports all Lua versions 5.1+ (LuaJIT 2.0+ and MoonJIT included). sol2 aims to be easy to use

The Phantom Derpstorm 3.1k Aug 1, 2022
Structy is an irresponsibly dumb and simple struct serialization/deserialization library for C, Python, and vanilla JavaScript.

Structy Structy is an irresponsibly dumb and simple struct serialization/deserialization library for C, Python, and vanilla JavaScript. You can think

Stargirl Flowers 47 Jun 19, 2022
A tool for generating cross-language type declarations and interface bindings.

Djinni Djinni is a tool for generating cross-language type declarations and interface bindings. It's designed to connect C++ with either Java or Objec

Dropbox 2.8k Aug 1, 2022
Duktape - embeddable Javascript engine with a focus on portability and compact footprint

Duktape ⚠️ Master branch is undergoing incompatible changes for Duktape 3.x. To track Duktape 2.x, follow the v2-maintenance branch. Introduction Dukt

Sami Vaarala 5.3k Aug 4, 2022
The missing bridge between Java and native C++

JavaCPP Commercial support: Introduction JavaCPP provides efficient access to native C++ inside Java, not unlike the way some C/C++ compilers interact

Bytedeco 3.9k Aug 1, 2022
Seamless operability between C++11 and Python

pybind11 — Seamless operability between C++11 and Python Setuptools example • Scikit-build example • CMake example Warning Combining older versions of

pybind 11.4k Aug 10, 2022
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

SWIG (Simplified Wrapper and Interface Generator) Version: 4.1.0 (in progress) Tagline: SWIG is a compiler that integrates C and C++ with languages

SWIG 4.6k Aug 8, 2022
A minimalist and mundane scripting language.

Drift Script A minimalist and mundane scripting language. I like all simple things, simple and beautiful, simple and strong. I know that all developme

Drift 11 Apr 3, 2022
Digital rain animation gif with glow squeezed into a raspberry pi pico and pimoroni pico-display

pico-display-matrix Digital rain animation gif with glow squeezed into a raspberry pi pico and pimoroni pico-display or how to actually use all Flash

null 30 Jul 17, 2022
Tetris on a Raspberry Pi Pico mounted on a Pimoroni Pico Explorer

PicoTetris Classic Tetris game running on a Raspberry Pi Pico microcontroller. Pico C port by Richard Birkby Original JavaScript implementation - Jake

Richard Birkby 32 Jul 27, 2022
Breakout game for Raspberry Pi Pico with Pimoroni Pico Display pack

breakout_rpi_pico Breakout game for Raspberry Pi Pico with Pimoroni Pico Display pack Prebuilt binary (breakout.uf2) is here. To build your own binary

null 18 Jan 17, 2022
I am planning to add a beginner friendly path for my Juniors to Learn DSA and I will try to provide solutions of every problem also. We can add codeChef Challenge solutions also

DSA-Path-And-Important-Questions I am planning to add a beginner friendly path for my Juniors to Learn DSA Are you a Newbie in programming and want to

Arpit Jain 30 May 31, 2022
About Add any Program in any language you like or add a hello world Program ❣️ if you like give us ⭐

Hello-World About Add any Program in any language you like or add a hello world Program ❣️ if you like give us ⭐ Give this Project a Star ⭐ If you lik

Lokesh Jangid 15 Aug 5, 2022
I add my Pi Pico (RP2040) stuff here.

Pico Stuff I add my Pi Pico (RP2040) stuff here. There are complete apps and libraries for sensors or complicated tasks. Libraries BMP180: Header-only

Luigi Cruz 97 Jul 13, 2022
Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.

An open source video game library manager and launcher with support for 3rd party libraries like Steam, GOG, Origin, Battle.net and Uplay. Includes game emulation support, providing one unified interface for your games.

Josef Nemec 4.3k Aug 7, 2022
MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

The MicroPython project This is the MicroPython project, which aims to put an implementation of Python 3.x on microcontrollers and small embedded syst

MicroPython 14.9k Aug 11, 2022
MicroPython for M5Camera and OpenMV.

M5Camera_OpenMV このリポジトリは、M5Camera+OpenMVのMicroPython環境です。 以下リポジトリのソースコードをベースとして環境を構築しています。 This repository is a MicroPython for M5Camera and OpenMV. I

null 10 Jul 22, 2022
USB to interfaces implementing MicroPython "machine" module functionalities on a computer.

u2if project u2if(USB to interfaces) is an attempt to implement some of the MicroPython "machine" module functionalities on a computer. The goal is to

null 91 Aug 3, 2022
Bootloader for mimrxt MicroPython port

iMX RT10XX bootloader Bootloader for mimrxt MicroPython port The bootloader must be programed into RT10XX qspi Flash (or Hyperflash, not tested) using

Boris Lovosevic 3 May 26, 2022
μSQLite library module for MicroPython

μSQLite library module for MicroPython WARNING: This project is in the beta development stage and may be subject to change. usqlite is a SQL database

Elvin Slavik 30 Jul 4, 2022
Raspberry Pi Pico SDK Examples

Raspberry Pi Pico SDK Examples Getting started See Getting Started with the Raspberry Pi Pico and the README in the pico-sdk for information on gettin

Raspberry Pi 1.4k Aug 6, 2022
Triton Python and C++ client libraries and example, and client examples for go, java and scala.

Triton Client Libraries and Examples To simplify communication with Triton, the Triton project provides several client libraries and examples of how t

Triton Inference Server 164 Aug 7, 2022
PicoSystem libraries and examples.

PicoSystem libraries and examples PicoSystem is a pocket sized handheld games console, built around Raspberry Pi's RP2040 chip (that's the little fell

Pimoroni Ltd 69 Jul 29, 2022
Pico-uart-bridge - Raspberry Pi Pico UART-USB bridge

Raspberry Pi Pico USB-UART Bridge This program bridges the Raspberry Pi Pico HW UARTs to two independent USB CDC serial devices in order to behave lik

Álvaro Fernández Rojas 118 Aug 5, 2022
The Raspberry Pi Pico SDK (henceforth the SDK) provides the headers, libraries and build system necessary

The Raspberry Pi Pico SDK (henceforth the SDK) provides the headers, libraries and build system necessary to write programs for the RP2040-based devices such as the Raspberry Pi Pico in C, C++ or assembly language.

Raspberry Pi 1.6k Aug 3, 2022
POCO C++ Libraries are powerful cross-platform C++ libraries for building network

The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.

POCO C++ Libraries 6.2k Aug 2, 2022
Add Sidecar support to unsupported models

SidecarFixup Lilu Kernel extension for enabling Sidecar support on the following SMBIOS

Acidanthera 220 Aug 3, 2022