I hacked a normal keylock and added an RC servo to pull the “tongue” of the lock. A PIC16F1937 is used to control the servo. The keypad has a second PIC 16F1937 which acts as a 10-buttons capacitance touch sensor. The controller PIC stays into sleep all the time to save power. In sleep mode, the device draws 16 micro-amperes. When the operator pulls the door gently, a mechanical switch wakes up the controller PIC (with a pulse to RB0/INT port) which in turn provides power to the touchpad.
To open the door, you pull the handle, enter the code, pull the handle again to activate the servo.
To change code, you pull the handle, enter the code, pull the handle again but you keep it pulled for 3 seconds until you hear the distinctive long beep. Then you enter the new code two times for confirmation.
It can hold codes from 1 to 125 digits for those who have good memory. The keypad has a built-in LDR to check ambient light, and if it is below a certain level, it activates the backlit LEDs (4 SMD blue LEDs).