Last year I installed a keypad door entry unit in the back door of our house so we don’t always have to stumble for keys to get inside. This was really handy since my brothers tend to misplace their keys often or leave them at home.
It worked great but now some of the buttons have stopped working, and some of the buttons don’t always work, which means getting inside the house is not always guaranteed. Great to keep potential thieves away but not great when you have to wait outside until someone with the keys shows up.
So I took it apart the other day to see if I could easily fix this problem. The keypad has a rubbery membrane type surface on the top with six buttons. Underneath this membrane there are a series of conductive traces which are laminated. Underneath each button of the membrane, two of these traces interlace, but without making contact as in the image below. On top of the region, where the two tracks interlace, there is a round conductive pad. When the button is pressed, the round conductive pad makes contact with the two traces acting like a momentary push button switch.
Altogether there are six traces, which connect to a PCB header through a laminated ribbon. On the PCB there is a MSP430F2111 microcontroller that does all the processing of the keypad input. The specialty of MSP430F2111 is that it is optimized to achieve an extended battery life. This makes sense why they decided to use it on this device.
Inside the housing there is a DC motor, which moves the deadbolt to lock or unlock the door when the correct password is entered on the keypad.
Being optimistic, I assumed that the PCB is still functioning properly and that the problem is in the keypad. To test this I briefly shorted two pins of the header where the keypad connects to the PCB, simulating a button press on the keypad. a “beep” from the piezo buzzer indicated that the button press event was successfully registered by the MCU. This could mean a few possible scenarios:
- The keypad button doesn’t make full contact with the two traces when pressed
- The conductive pad underneath the button gets stuck on the two traces when pressed and doesn’t get released when the button is released
- The traces are damaged or worn out
Either way, this is a very bad design and one that cannot be easily fixed, since all the traces are laminated. However, I don’t want to throw this away nor buy a new one and have to deal with the same problem a few months later. So I am going to make my own keypad interface for this unit with REAL push buttons.
So the first thing I did is to figure out which traces belong to which buttons on the original pad.
You may have noticed in the table above that trace 6 doesn’t connect to any of the buttons. In fact, trace 6 surrounds all other traces in the laminate and acts as a shield. This prevents accidental button presses due to electrostatic discharge (ESD).
Now I have all the information needed to make a functioning key pad interface to this device. All I need is six momentary push buttons wired to the six traces according to the table above. Sounds like a very simple fix. However, I also need to make sure that it fits inside the housing and looks as close as possible to the original. This means I have to place the push buttons exactly where the keypad buttons are located – sounds like another PCB!
So the next step is to get measurements and figure out the exact locations of the buttons with respect to the housing. Once the measurements are taken I can design the PCB in KiCAD. To get the measurements, I removed the housing from the unit and drew the outline of it on a sheet of paper, and then measured the distances with a ruler.
The laminate and the keypad membrane together have a height of about 2 mm, which is slightly larger than the thickness of the pre-sensitized boards I am using to make PCBs (1.58 mm). However, with the push buttons, the height of the PCB will be much larger than the original keypad. Also I am planing to use the existing keypad membrane on top of the PCB. This will make it difficult to get everything inside the housing.
So I will have to take measures to reduce the overall height of the PCB. This means I have no choice but to use surface mount push buttons. This is going to be very interesting as I have never used SMT components in my PCBs before. Also I will trim the vertical spacers off of the keypad membrane. I am hoping that this will bring the height down closer to the height of the original keypad.
Hopefully by my next post I will have figured out which push buttons I am going to use and the layout of the PCB. Stay tuned and Thanks for reading!