Plasma 2350 user button (boot sel) not working

Hi,
I have got a couple Plasma 2350 boards and haven’t been able to get the user button on the boot sel button to work using GP22 as per the Pinout diagram. Button A on GP12 working fine.

I’ve tried both boards using the available alpha PICO2 builds of both Micro Python and Circuit Python and also tried changing the quoted GP22 with otheres in case there was a typo.

Code used worked fine on RP2040 boards.

Do I need to wait for official Plasma 2350 builds for this to work or is there another issue?

Thanks

There is a Plasma 2350 uf2 here, if you want to give it a try?
pimoroni/pimoroni-pico-rp2350 (github.com)

Thanks, wasn’t available before.
Will download, try and report back

Just tried the Pimoroni Plasma 2350 build and same issue

From the sample code on Github:

import time
import machine

# Setup for the button pins
user_button = machine.Pin(22, machine.Pin.IN)
a_button = machine.Pin(12, machine.Pin.IN, machine.Pin.PULL_UP)

while True:

    if user_button.value() == 0:
        print("USER BUTTON PRESSED!")

    if a_button.value() == 0:
        print("A BUTTON PRESSED!")

    time.sleep(0.2)

This works using the micropython.org preview code:
MicroPython v1.24.0-preview.201.g269a0e0e1 on 2024-08-09.

That worked! Thanks.
Noticed I was using machine.Pin.PULL_UP on a_button & user_button but example doesn’t on user_button.

Removed it from user_button on my code and it now works.

Was sure it was needed on RP2040 boards, if it wasn’t then DOH! Put hours wasted down to learning expeince.

Thanks again

I find chasing down the examples on Github a bit hit-and-miss. Luckily, this was a hit! If you have a dual-purpose button then I suppose it is going to give rise to some compromises.

Perhaps the lovely people at Pimoroni could add a few more signposts? After all, you have done the hard bit of developing the code.

Next we need something to plug into the “intriguing” SP/CE socket - please?

For our applications this board is good step forward from the Plasma 2040 so I most definitely am not complaining.

With you on that one!

Reviewed my fully working Plasma 2040 CircuitPython code and am using

with keypad.Keys(
(reverse_pin, slower_pin, faster_pin), value_when_pressed=False, pull=True) as keys:

so was using pullup on the user as well as A & B buttons, but won’t be able to use it on Plasma 2350 unless there is a way to set the pull for each pin separately.

The extra circuity on the “dual purpose” Boot / User button factors into it.
This is from the Plasma 2040 schematic.

It’s already physically pulled High, and pressing it gives you a Low.
Regular user buttons just pull the pin low when pressed. And don’t have any external hard wired pull up resisters. This is from the Pico display schematic.
Capture

It looks as if the Plasma 2040 is wired differently, or the RP2040 responds differently, but on that board the User button works with or without the pull-up parameter. This means that the Plasma 2350 code will be backwards compatible in this respect.

Yeah, we’ll just have to wait for the schematic to show up.

I’ve just added links from the shop pages to our new RP2350 MicroPython repo, hopefully that should make it a bit more findable :)

2 Likes

Many thanks - that is all some of us need; a pointer in the right direction. Also the (new?) Pinout and Schematic diagrams are really helpful and much appreciated.

1 Like

This might help.
pimoroni-pico-rp2350/micropython/examples/plasma_2350/buttons.py at main · pimoroni/pimoroni-pico-rp2350 (github.com)