GFX_Pack buttons elastomer buttons to use in project box

Hi all,

I’m using a GFX_Pack with a Raspberry Pi Pico and a Pimorini Pico Omni bus. I want to mount this into an electronics project box so I can add a battery pack to that, as well as connect the Pico to another I2C device inside the box.

To do this, I’m thinking of cutting a window into the project box for the GFX_Pack display to show, kind of surface mounted. I’d also like to make the GFX_Pack buttons available. What I’m thinking of is to drill holes below the display window and insert some Elastomer buttons into those holes that would actuate the GFX_Pack buttons. Does anyone know of a source for such a thing in a size that would work for the buttons?


If you plug one of these between the Pico and GFX_Pack, you can wire up your own buttons.
Pico Proto (
The Pins used on the Pico are shown in the schematic.
GFX_pack.sch (
What buttons / switches you use depends on how much room you have.
I’ve used the Mini Arcade Buttons here and there. “Mini” is a relative term though, there just smaller than the non mini buttons.
Colourful Arcade Buttons – White (

Hi alphanumeric,

I was hoping to use the buttons that are part of the GFX_Pack and not have to wire up my own buttons and code for them as well. However, I will keep this as an idea if I don’t come up with something else.


I think I’ve only seen those custom-made for whatever housing they’re in. If you were good with crafts you might be able to use Sugru to do that? It’ll also depend on the thickness of your housing, as the buttons will have to be behind that, which will pull the screen back from the surface as well. It might be easier to have the cut-out the size of the whole pack aside form the mounting holes, and just use the pack buttons as they are.

@writes_on Just giving you a backup option. If you wire your added buttons to the same pins used by the GFX_Pack buttons, no code changes are needed.


You know, I realized that a day or two later when my subconscious was percolating on this. That’s a great suggestion as I can use the GFX_Pack software to manage the buttons. And as it happens, I bought some buttons before I found the GFX_Pack and was going to wire them up myself.

Again, thanks for this!

1 Like

The GFX Pack buttons ground the specified pin when pressed. Wire yours up so they do the same and the software won’t know the difference. You want normally open momentary contact switches. For the best results anyway. Thats what the buttons / switches on the GFX Pack are.

1 Like

Hi @alphanumeric,

Do you know if there is any documentation about the features/functions of the gfx_pack module, in particular the pimorini.i2c portion?


It’s the same as Pimoroni i2c on any other Pico or Pack.
You could even use machine i2c if you wanted.
The following should set it up for use with Pimoroni breakouts etc.

from pimoroni_i2c import PimoroniI2C
i2c = PimoroniI2C(sda=(4), scl=(5))

Edit the i2c= line in the example files for the breakout, as above, and it should run.

Hi again. I finally figured out what I was doing wrong and now I can talk to the I2C sensor using the same I2C inputs that the GFX_Pack is using, which is great!

I hope you don’t mind, but I’m going to bug you with another question.

Do you know of a Pico compatible ribbon cable/breakout something or other? What I’d like to do is mount the GFX_Pack on the top of a project box so the display is showing, but have the Pico on a breadboard/PCB panel on the bottom of the project box and be able to connect (and disconnect) the two.


I haven’t seen anything made for that purpose.
This may get you started as a good place to plug the Pico in.
Pico Omnibus (Dual Expander) (
Then connect to the GFX pack with male to female jumpers.
Jumper Jerky – Pin to Socket (
Or two of these maybe? If it will plug into the GFX Pack header?
GPIO Ribbon Extension Cable for HATs and Mini HATs (

You would only be using one row of pins on each cable. But if it works it will be a lot easier, and look better than a bunch of jumpers.