Q-10/MAX7329 Keyboard for the Raspberry Pi


Background

The Raspberry Pi is great, but one downside when you are writing bare-metal programs is that typically to get a keyboard you need to implement USB. Not an easy task!

For my baretal OS, vmwOS, I originally made a PS/2 keyboard adapter but for various reasons this was not very convenient. So I was looking for a more portable option.

The Q-10 Keyboard

This is a nice keypad from Blackberry phones. The only downside is trying to connect to that tiny connector. For now I am using a breakout board I bought off of e-bay.

They keypad is a nice size, and also has a backlight.

The MAX7349

The MAX7349 is a nice keypad scanning IC from Maxim (sadly, it, and its related chips are being discontinued). It can scan the keyboard, provide the results over I2c, and provide an interrupt. This is much more efficient (and uses a lot fewer GPIO lines) than polling.

The chip also has some other interesting features. It can play musical notes to a piezo speaker, and also can treat extra scanning lines you aren't using as LED gpios.

Source Code

Some sample code for accessing this is available in my vmw-meter source repository under the max7349 directory.

Also included are the GEDA design files and gerbers.


Related Work

A few other people are using the Q-10 in embedded projects. TODO

Build Log

19 June 2018

Got all keypresses working. Had some issues which turned out to be off-by-one on the pin numbers

15 June 2018

Got some initial keypresses working.

14 June 2018

Got some initial music playing.

13 June 2018

Next attempt at soldering, with more flux, went a bit better. Though two of the pins are still bridged. Should probably be useing solder paste and an oven.

11 June 2018

Initial attempt at doing surface-mount soldering of a QSOP-24 device. Did not go well.
Back to VMW hardware productions