Releases: pimoroni/pimoroni-pico-rp2350
v0.0.11 - Pico 2 W Is Officially A Thing Now
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
- Add Jumbo examples by @helgibbons in #9
- add lte examples by @helgibbons in #13
- add wireless examples by @helgibbons in #12
- add RM2 Breakout example by @helgibbons in #16
- Backports from wireless branch by @Gadgetoid in #24
- tweak RM2 breakout examples by @helgibbons in #19
New Contributors
- @helgibbons made their first contribution in #9
Full Changelog: v0.0.7...v0.0.11
Version 0.0.10 - Why so blue, RM2?
New Since v0.0.9
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:
- Custom Wireless Pins Support: micropython/micropython#16057
- PSRAM Support: micropython/micropython#15620
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
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:
- Custom Wireless Pins Support: micropython/micropython#16057
- PSRAM Support: micropython/micropython#15620
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
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:
- Custom Wireless Pins Support: micropython/micropython#16057
- PSRAM Support: micropython/micropython#15620
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)
This release fixes the bug in PSRAM I had re-introduced by missing a commit somewhere in a pull request upstream...
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!
- PR for RP2350 support in MicroPython - micropython/micropython#15619
- PR for PSRAM support in MicroPython - micropython/micropython#15620
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
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
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!
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
- @Gadgetoid made their first contribution in #3
Full Changelog: 0.0.2...v0.0.3
Version 0.0.3 - PSRAM Fixes, PWM fixes
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
- @Gadgetoid made their first contribution in #3
Full Changelog: 0.0.2...v0.0.3
Version 0.0.2 - Actually Works Edition
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 🤦