Hi, I’ve had some success.
TL;DR: I added my own pullups and it all works, but it’s messy.
I’m getting the same error about the pullup, and searching around on Github for the error message, I found the PR where the wording was changed.
The code that checks the pullups looks like it compares the value of the SDA and SCL pullups and fails if they aren’t the same, so I guess that means with the keypad they aren’t the same.
Now, I’m only just about good enough at electronics to be dangerous, but I could only find one obvious resistor on the board, so my uneducated guess is that the board might only be pulling up the SDA line and there must be some sort of weak pullup in the Pico already for SCL but for some reason it’s not enough for CircuitPython to register that both lines are pulled up.
I stuck the Pico on a breadboard and jumpered across to the keypad on GP4/GP5 (I2C for the buttons) and GP17/GP18/GP19 (SPI for the pixels), plus a few power (VBUS along to VREF) and a couple of ground pins. I then put a pair of 3k (no maths involved - that’s all I had laying around) pullup resistors of my own on the breadboard, attached to GP4/GP5 and +3V3.
The wildestpixel demo code works just fine now for me.
So I guess the next question is what we do about it because breaking the Pico out on to a breadboard to put extra pullups in kinda defeats the neatness of the RGB Keypad. If I’m right, is this a hardware problem, or do we need the Pico’s internal pullups handled in circuitpython?