Picture of Using a keypad with Raspberry Pi
I got two keypads from that I wanted to use with my Raspberry Pi.  Turns out it's quite easy, as long as you know what the pinout structure is for the keypad.

This instructable will take you through the steps I had to go through to discover the pinout on my keypads, and how I hooked it up to my Raspberry Pi.  I'll include the code I'm currently using to "drive" my keypad, and then offer some "next step" type insights into what can be done better, and what could be done next.

Finally, this instructable will really be a sub-instructable that will be part of something I'm calling Voiceberry Pi.
Remove these adsRemove these ads by Signing Up

Step 1: Taking a look at what you've got

Picture of Taking a look at what you've got
Because my keypad didn't come with a datasheet of any kind, my first step was to make a visual inspection of the keypads.

So, I took a look at the back, saw that there were 10 wires, and three "jumpers" on the outside, but no other indication of how things were wired on the inside.  So, I took out the five screws, and looked at the actual circuit board to trace the leads.

Step 2: Tracing the leads

Picture of Tracing the leads
IMG_6457 - Copy (2)_small.jpg
IMG_6457 - Copy (3)_small.jpg
IMG_6457 - Copy (4)_small.jpg
IMG_6457 - Copy (5)_small.jpg
IMG_6457 - Copy (6)_small.jpg
IMG_6457 - Copy (7)_small.jpg
IMG_6457 - Copy (8)_small.jpg
IMG_6457 - Copy (9)_small.jpg
IMG_6457 - Copy (10)_small.jpg
I've got 10 leads, but no idea how they lead to the 12 different buttons.  So I have to trace the leads.  The images below trace my particular keypad using red lines.  Dashed lines follow the jumpers in the back.

Pins are either rows or columns.  Rows cover two or more buttons horizontally, and columns cover one or more buttons vertically (even though one key could be a row or a column).  Results of tracing are as follows:

Rows: 1,2,3, and 9
Columns: 4,5,6,7,8, and 10

Button- Row - Col
1  - 1 - 5
2 - 1 - 6
3 - 1 - 7
4 - 2 - 5
5 - 2- 6
6 - 2 - 7
7 - 4 - 5
8 - 4 - 6
9 - 3 - 7
0 - 4 - 7
* - 9 - 8
# - 9 - 10

Hi Everyone, i have a project at home where i can coltrol my lights and water features etc via relays which can be coltrolled over the internet but i have now ordered a 2 in 1 RFID Reader & Ketpad "Image Below" that id like to use as a gate entry that either you can enter a certain code or use the rfid to enter which will turn off a relay, when the relay is turned off the magnetic lock will release and then after a few seconds the relay powers on again and locks.


I have attached some pictures of the 2 in 1 RFID & Keypad, aswel as the sticker that shows what the wires are. But i cannot figure where to wire them to. (Which pins on the Rasp Pi) I understand the Red And black are to go to a 12v power supply.

Also i have seen so many people using different code, but does anyone have any that would help me at all?

The wire picture isnt that clear but it shows:

Colour:Details:BlackGNDRedVCC +12VWhiteD1 / TX / 4R -YellowBUZZERBlueLEDGreenD0 / RX / 4R +Grey26 /34

I have a Raspberry PI Model B running raspian, i have the following pins available:


Look forward to hearing from you Callum

km6cg1 year ago
I found a discussion of GPIO interrupts at

I haven't tried it yet, but it seems that this could allow one to suspend execution until a key was pressed.

My idea for the keyboard is, combine it with a two line display and a wifi adapter and hook up a set of speakers. I'd write a program to load and shuffle music from my DLNA server and put the whole thing in the kitchen. I could also get it to pull and play NPR for me.
jcksparr0w2 years ago
For idea #1, how about a lock of some type?
#2, Maybe some computer shortcuts.
#3, I bet you could control something like your house's lighting and electrical outlets somehow.
The possibilities are endless. The sky's the limit and all those metaphors.
Could you imagine using a RasPi to unlock your house!?
great ideas!
chefwear2 years ago
You have some really great instructables!
mrmath (author)  chefwear2 years ago
Thank you so much! I'm blushing!
mrmath (author)  dubstepmaker2 years ago
Thank you!
sail4sea2 years ago
I am thinking maybe using a keypad to set the ip address of the pi. Sounds useful for a headless system.
The thing to remember about keypads is that the vast majority share the same pinout, for simplicity; you appear to have one of the very few exceptions, since it has more than seven pins.