Skip to content

Version 0.0.10 - Why so blue, RM2?

Latest
Compare
Choose a tag to compare
@Gadgetoid Gadgetoid released this 18 Nov 10:11
· 37 commits to feature/wireless since this release

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