Skip to content

Releases: pimoroni/pimoroni-pico-rp2350

v0.0.11 - Pico 2 W Is Officially A Thing Now

26 Nov 23:39
Compare
Choose a tag to compare

This is an experimental release, cleaning up our Pico 2 and Pico 2 W builds now there are - reasonably - final authoritative configurations for these in Pico SDK 2.1.0 and almost-in-MicroPython.

Pico 2 and Pico 2 W users can now download the appropriately named builds.

You should definitely read the previous release notes if you're doing anything fancy - https://github.com/pimoroni/pimoroni-pico-rp2350/releases/tag/v0.0.10

What's Changed

New Contributors

Full Changelog: v0.0.7...v0.0.11

Version 0.0.10 - Why so blue, RM2?

18 Nov 10:11
Compare
Choose a tag to compare

New Since v0.0.9

⚠️ Pico Plus 2 and Pico Plus 2 W users should download pico_plus2_rp2350-v0.0.10-pimoroni-micropython.uf2 - which supports WiFi and Bluetooth via either the onboard RM2 on PP2W or a SP/CE module on PP2.

This build includes fixes for Bluetooth and WL GPIO (that's GPIO provided by the wireless chip, ala Pico W's onboard LED).

For Bluetooth, bringup is similar to WiFi:

ble = bluetooth.BLE(pin_on=32, pin_out=35, pin_in=35, pin_wake=35, pin_clock=34, pin_cs=33)

And to ensure you can talk to a GPIO on an external module, you must also supply the pins when creating a new Pin instance, like so:

wl_gpio0 = Pin('WL_GPIO0', Pin.OUT, pin_on=32, pin_cs=33, pin_dat=35, pin_clock=34)
wl_gpio1 = Pin('WL_GPIO1', Pin.OUT, pin_on=32, pin_cs=33, pin_dat=35, pin_clock=34)
wl_gpio2 = Pin('WL_GPIO2', Pin.OUT, pin_on=32, pin_cs=33, pin_dat=35, pin_clock=34)

Note: the RM2 module has WL_GPIOs 0, 1 and 2 broken out, whereas the Pico Plus 2 Wireless uses WL_GPIO0 for the onboard LED.

Because the LED on Pico Plus 2 is driven by an RP2350 GPIO pin (25) it's known as "LED" whereas the Pico Plus 2 W's LED pin has been moved to "LEDW" and is an alias of "WL_GPIO0". We're looking into ways to iron out this wrinkle!

Note: The first bringup wins. After you have configured WiFi, Bluetooth or a GPIO pin with these custom pins, you will not need to supply them again.

Release notes form v0.0.9

This release targets our wireless branch, bringing support for PPP and WiFi (either onboard or with the RM2 module) to our RP2350-based boards.

Since the last release, RP2350 support has been merged into MicroPython so we're a step closer to a stable release (read: not a teetering tower of unmerged PRs and develop branches).

However we're still missing:

As such these builds are still necessarily somewhat experimental where PSRAM and/or Wireless are concerned!

Combined Builds

We have dropped separate W and non-W builds since SP/CE and the RM2 module means there isn't really any meaningful distinction.

Slightly more controversially, we've dropped the non-PSRAM variant of PPP2's firmware. This was mostly a fallback while PSRAM support was highly experimental and potentially unstable. It might still be useful for users who want ALL THE PERFORMANCE, since PSRAM is slower than RAM, so let us know if you miss it.

Phil's Plasma Palaver

If you've been having trouble with your Plasma 2350 failing and requiring a reflash to work again, that's my fault- I got the flash size wrong (8MB when it's actually 4MB) in the Pico SDK board configuration, resulting in a Plasma 2350 build which would overwrite its own firmware when you save a file. Very big oof. That should be fixed in these builds.

Custom Wireless Pins

Thanks to some effort by Peter the WiFi driver and MicroPython wrapper are getting an overhaul to better support custom pins. See: micropython/micropython#16057

Thus our temporary hack, (this is for SPICE on Pimoroni Pico Plus 2):

network.wlan_set_pins(32, 35, 34, 33) # Power, Data IO, Clock, CS
wlan = network.WLAN(network.STA_IF)

Should be replaced with:

wlan = network.WLAN(network.STA_IF, pin_on=32, pin_out=35, pin_in=35, pin_wake=35, pin_clock=34, pin_cs=33)

This is currently an unmerged PR subject to change and may not be the final API!

PSRAM Tweaks

This build includes some more fixes to PSRAM stability. You can find ongoing discussion about PSRAM support in MicroPython here: micropython/micropython#15620

Version 0.0.9

06 Nov 17:02
Compare
Choose a tag to compare

This release targets our wireless branch, bringing support for PPP and WiFi (either onboard or with the RM2 module) to our RP2350-based boards.

Since the last release, RP2350 support has been merged into MicroPython so we're a step closer to a stable release (read: not a teetering tower of unmerged PRs and develop branches).

However we're still missing:

As such these builds are still necessarily somewhat experimental where PSRAM and/or Wireless are concerned!

Combined Builds

We have dropped separate W and non-W builds since SP/CE and the RM2 module means there isn't really any meaningful distinction.

Slightly more controversially, we've dropped the non-PSRAM variant of PPP2's firmware. This was mostly a fallback while PSRAM support was highly experimental and potentially unstable. It might still be useful for users who want ALL THE PERFORMANCE, since PSRAM is slower than RAM, so let us know if you miss it.

Phil's Plasma Palaver

If you've been having trouble with your Plasma 2350 failing and requiring a reflash to work again, that's my fault- I got the flash size wrong (8MB when it's actually 4MB) in the Pico SDK board configuration, resulting in a Plasma 2350 build which would overwrite its own firmware when you save a file. Very big oof. That should be fixed in these builds.

Custom Wireless Pins

Thanks to some effort by Peter the WiFi driver and MicroPython wrapper are getting an overhaul to better support custom pins. See: micropython/micropython#16057

Thus our temporary hack, (this is for SPICE on Pimoroni Pico Plus 2):

network.wlan_set_pins(32, 35, 34, 33) # Power, Data IO, Clock, CS
wlan = network.WLAN(network.STA_IF)

Should be replaced with:

wlan = network.WLAN(network.STA_IF, pin_on=32, pin_out=35, pin_in=35, pin_wake=35, pin_clock=34, pin_cs=33)

This is currently an unmerged PR subject to change and may not be the final API!

PSRAM Tweaks

This build includes some more fixes to PSRAM stability. You can find ongoing discussion about PSRAM support in MicroPython here: micropython/micropython#15620

Version 0.0.8

05 Nov 17:11
Compare
Choose a tag to compare

This release targets our wireless branch, bringing support for PPP and WiFi (either onboard or with the RM2 module) to our RP2350-based boards.

Since the last release, RP2350 support has been merged into MicroPython so we're a step closer to a stable release (read: not a teetering tower of unmerged PRs and develop branches).

However we're still missing:

As such these builds are still necessarily somewhat experimental where PSRAM and/or Wireless are concerned!

Phil's Plasma Palaver

If you've been having trouble with your Plasma 2350 failing and requiring a reflash to work again, that's my fault- I got the flash size wrong (8MB when it's actually 4MB) in the Pico SDK board configuration, resulting in a Plasma 2350 build which would overwrite its own firmware when you save a file. Very big oof. That should be fixed in these builds.

Custom Wireless Pins

Thanks to some effort by Peter the WiFi driver and MicroPython wrapper are getting an overhaul to better support custom pins. See: micropython/micropython#16057

Thus our temporary hack, (this is for SPICE on Pimoroni Pico Plus 2):

network.wlan_set_pins(32, 35, 34, 33) # Power, Data IO, Clock, CS
wlan = network.WLAN(network.STA_IF)

Should be replaced with:

wlan = network.WLAN(network.STA_IF, pin_on=32, pin_out=35, pin_in=35, pin_wake=35, pin_clock=34, pin_cs=33)

This is currently an unmerged PR subject to change and may not be the final API!

PSRAM Tweaks

This build includes some more fixes to PSRAM stability. You can find ongoing discussion about PSRAM support in MicroPython here: micropython/micropython#15620

Full Changelog: v0.0.7...v0.0.8

Version 0.0.7 - PSRAM Fixed (Again)

11 Sep 10:24
Compare
Choose a tag to compare

⚠️ Updating to this firmware from any release prior to v0.0.5 will delete your Python files, please back them up before you continue! ⚠️

This release fixes the bug in PSRAM I had re-introduced by missing a commit somewhere in a pull request upstream...

spinning-plates

Note: This release (and all versions prior) is based on unmerged MicroPython RP2350 and PSRAM support, in addition to other fixes. There will probably be bugs!

Additional note: For your convenience we've also attached even more experimental (as if that were possible) builds of Plasma2350 and Pico Plus 2 which have networking support for LTE and WiFi built in. You'll find these below!

Version 0.0.6

09 Sep 16:35
Compare
Choose a tag to compare

⚠️ Known issue: Saving files to flash on the PSRAM build(s) does not seem to work! ⚠️

⚠️ Updating to this firmware from any release prior to v0.0.5 will delete your Python files, please back them up before you continue! ⚠️

Bump to include any bugfixes, improvements or changes to the MicroPython RP2350 pull-request which might have happened in the last few weeks.

I have lost track of what this includes, but PICO_EMBED_XIP_SETUP=1 has been enabled and should increase performance slightly.

Version 0.0.5 Will Trash Your Filesystem

22 Aug 09:38
Compare
Choose a tag to compare

⚠️ Updating to this firmware will delete your Python files, please back them up before you continue! ⚠️

This release sets less optimistic firmware sizes for all Pimoroni boards, and changes the firmware allocation for the Pico 2 and Pico 2B builds to match the upstream MicroPython config.

Since this moves the start of the user filesystem, your board will create a new filesystem on first boot and any .py files (or otherwise) will be lost. These are somewhat recoverable with picotool and a hex editor, but you don't want to have to do that!

Full Changelog: v0.0.3...v0.0.5

Version 0.0.4 - Like 0.0.3, but deinit's PWM properly!

15 Aug 16:04
dd62958
Compare
Choose a tag to compare

Release notes copied from 0.0.3:

This release includes some changes to our PSRAM feature branch of MicroPython. Namely:

  • PSRAM timings should be adjusted when machine.freq() is used.
  • Garbage collection when using combined heap (PSRAM + RAM) no longer explodes
  • RP2350s extra PWM slices should now be supported (these slices are available on GP40, 41 and 42 which are paired with pins GP26, 27 and 28 on Pico Plus 2. In addition to GP32, 33, 34, 35, and 36 on the SPICE connector.)

What's Changed

  • CI: Enable split heap for PPP2 PSRAM build. by @Gadgetoid in #3

New Contributors

Full Changelog: 0.0.2...v0.0.3

Version 0.0.3 - PSRAM Fixes, PWM fixes

15 Aug 15:42
dd62958
Compare
Choose a tag to compare

This release includes some changes to our PSRAM feature branch of MicroPython. Namely:

  • PSRAM timings should be adjusted when machine.freq() is used.
  • Garbage collection when using combined heap (PSRAM + RAM) no longer explodes
  • RP2350s extra PWM slices should now be supported (these slices are available on GP40, 41 and 42 which are paired with pins GP26, 27 and 28 on Pico Plus 2. In addition to GP32, 33, 34, 35, and 36 on the SPICE connector.)

What's Changed

  • CI: Enable split heap for PPP2 PSRAM build. by @Gadgetoid in #3

New Contributors

Full Changelog: 0.0.2...v0.0.3

Version 0.0.2 - Actually Works Edition

10 Aug 18:27
Compare
Choose a tag to compare

No changes have been made to the build tooling here, but rather I added an else branch into the PSRAM init idef which ensures that the gc_heap is initialised when PSRAM is not enabled 🤦