Keypad matrix for buttons


I’m wondering if there would be a way to use these keypad matrix things?

Through MCP23017 would be fine for me.

Is anyone using something like this?

Thank you

Hey @Scabattoir welcome.

This kind of keypad doesn’t works like the Zynthian buttons.
Zynthian use one mcp23017 GPIO per switch, this one use a matrix principle, with only 8 GPIOs for 16 buttons (4×4).
Not impossible but some software driver has To be developped for this.

But you could use a USB numeric keypad like this:

Key binding is included in Oram but can be remapped very easily in webconf.

1 Like

Hi Riban, welcome here!

Yes, I’m aware of the option to use an USB keypad but that’s way bigger than the keypad I’ve shown and I’m aiming for minimal size.

Any idea how could the version I’ve shared work?

Thanks for the info though to my knowledge Zynthian use one MCP23017 per 16 buttons, and not per switch…
Also I’m aware how a matrix keypad works.

The question is: how to make the matrix keypad work in Zynthian?

I suppose it should be something like this:

Sorry, I’m not an english native speaker.
Are buttons and switches différent things?

Somebody would need to write a zyncontrol driver inside zyncoder directory and enhance webconfig to include a new wiring config that points to that driver.

It would be useful to support matrix type of wiring because we could also use it to connect foot keyboards such as fatar pd/2 which is also matrix.

1 Like

A zyn ctrldev possibly might be a solution?

1 Like

No, buttons are a kind of switches. If you say momentary switches then it is the same.

But the key is that it’s not one MCP23017 per switch but one MCP23017 per 16 switches.

I’m not native speaker either.


Yeah !

Unfortunately I don’t even understand what “ctrldev” means… :confused:
I suppose it needs someone more experienced.

see here:

note that using this needs some coding skills


yeah I was afraid of that…

The search mechanism on this forum is a good place to answer most questions…

You could probably take a shortcut, and wire this to a microcontroller like Arduino pro-micro, or Pico(with an appropriate keyboard firmware), basically turning this into a USB keypad.


That is exactly what I have been considering.
Seems like the easiest route, also it is not too big in size.

1 Like

True, as soon as you are aware what it is you are looking for. Not all of us are experienced in the details of Zynthian or coding.
I got the link already from le51, but thanks anyway.

Is there any reason not to do it exactly like in the article here?

Surprisingly I got no feedback on that, though I feel like that’s a full solution.
Or maybe there’s something why it wouldn’t work?

1 Like

That looks like a super elegant solution!

1 Like