Fixing Keypad door entry – The solution

In my last post I talked about a problem I am having with an electronic keypad door entry unit. I have narrowed down the problem to the keypad interface, which is either worn out or in some other way not doing its job. The conductive traces in the keypad interface is laminated, making it very difficult to fix any broken traces.

So I decided to create my own keypad for this unit with a solid PCB and real push buttons. In making this PCB, the biggest challenge I am facing is reducing the overall height of the keypad so that it will neatly fit inside the original housing. To achieve a thickness close to the thickness of the original keypad I have made two design choices,

  1. Use surface mount push buttons instead of through hole push buttons.
  2. Remove the spacers from the original keypad membrane, which will go on top of the new PCB.

Instead of buying surface mount push buttons I decided to modify a bunch of through hole push buttons I already had. Converting the push buttons from through hole to surface mount was easy with a needle nose plier and a wire cutter. Afterwards, I took measurements of a transformed push button and made a footprint for it in KiCad.

Push buttons transformed from through hole to surface mount

Push buttons transformed from through hole to surface mount

The surface mount push buttons have a thickness of 3 mm, which is 1 mm shorter than the thickness of the buttons on the original keypad membrane. This means the push buttons should be able to fit inside the membrane buttons. However, I will have to carve out the insides of the membrane buttons to get the push buttons inside.

Spacers of the original keypad membrane, which will be removed in the new keypad to make room for the PCB

The membrane has spacers around it to fit the original keypad tightly inside the housing. With the spacers, the thickness of the original keypad (without the buttons) is 4 mm. With the spacers removed, the thickness of the PCB (without the buttons) with the membrane placed on top is 3 mm. This means that the new keypad should fit easily inside the housing.

Having figured out all the details I set out to make the PCB. First I made a simple schematic for the button connections in KiCad, followed by the layout. Since I will be using surface mount push buttons, I kept the components and traces all on the top layer.

Layout of the new keypad

Layout of the new keypad

The layout is very similar to the layout of the laminated traces of the original keypad, except I avoided a via since I didn’t want to go into a second layer. Three hours of work developing, etching, drilling and trimming later I had the PCB ready for soldering.

The new keypad PCB is ready to solder

The new keypad PCB is ready for soldering

Although I have had a bit of practice soldering  surface mount components before, this is my first time trying it on one of my own PCBs. I have stayed away from surface mount components before mostly because I didn’t have a soldering iron designed for surface mount devices. Also I didn’t have flux, which is the secret sauce to soldering SMT components properly.

I still don’t have these equipment, but decided to give it a go anyway since I didn’t really have a choice but to use surface mount push buttons. One of the biggest difficulties with soldering SMT components is holding it in place while trying to solder since you only have two hands to hold the soldering iron, solder and the component! Yes, I did consider melting the solder on the iron first and then bringing it to the component pad, but in the time it takes to do that, the flux inside the solder smokes away making it very difficult to make a good connection.

Thankfully, I had bought this PCB holder with alligator clips and it did a really good job of holding the push buttons in place while I soldered.

The alligator clip holding the push button in place while soldering

The alligator clip holding the push button in place while soldering

As it turned out soldering the surface mount push buttons wasn’t too bad. I found this more satisfying than soldering through hole. The solder did spread a little bit along the track since I don’t have a solder mask on my home made PCB.

The push buttons neatly fit inside the housing where the holes for the buttons are located

The push buttons fit inside the housing where the holes for the buttons are located

The next step is to solder a connector from the keypad PCB to the control PCB, where the processor is located. For the connecting wire I chose an old ribbon wire I found in my  collection of scrap wire, which had six wires – exactly what I needed! I soldered a female header to one end and soldered the other end to the keypad PCB.

Ribbon wire that connects the keypad PCB to the header of the main control PCB

Ribbon wire that connects the keypad PCB to the header of the main control PCB

After soldering all the components it was time to test the device. As expected it worked without any issues and with that satisfying feel of a real button press.

The final step is to put everything back inside the housing. In order to fit the membrane of the original keypad on top of the new keypad push buttons the insides of the membrane buttons need to be carved out. However, this task turned out to be rather difficult since the membrane buttons are strechy and didn’t flake off very easily.

After a few unsuccessful attempts, I managed to poke through one of the buttons with an X-Acto knife, partly removing it from the membrane. And then I had the idea to remove the membrane buttons from the membrane and then glue it on top of the push buttons. Removing the membrane buttons from the membrane was easy since the buttons were connected to the rest of the membrane with a very thin layer.

So I placed the new keypad PCB inside the housing using the rest of the membrane (without the buttons) and white electrical tape to insulate the traces from the metal housing.

The new keypad for the door entry unit installed

The new keypad for the door entry unit installed

My attempts to attach the membrane buttons on top of the push buttons were fruitless. I tried several different types of super glue and even double tape, but nothing would make the membrane stick to anything! May be it needs some special type of glue to make it stick, but at this point it is not worth it to try and find it.

After all the new keypad works better than the original, which is the main problem I set out to fix. Sure the buttons aren’t labeled, but that will make it that much harder for burglars to try to figure out the correct password.

How reliable is this new keypad? Only time will tell. But for now, it is fixed!

 

Fixing Keypad door entry – The problem

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.

The keypad door entry unit

The keypad door entry unit

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.

Underneath the key pad membrane is a set of laminated conductive traces

Underneath the key pad membrane is a set of laminated conductive traces

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.

The dead bolt is turned by a DC motor

The dead bolt is turned by a DC motor

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:

  1. The keypad button doesn’t make full contact with the two traces when pressed
  2. The conductive pad underneath the button gets stuck on the two traces when pressed and doesn’t get released when the button is released
  3. 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.

KeypadTraces

 

 

 

 

 

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!

Taking measurements of the keypad housing to figure out the exact locations, where the push buttons need to go

Taking measurements of the keypad housing to figure out the exact locations, where the push buttons need to go

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!