Skip to the content
2 layers70 × 111 mmPCB Keypad, the printed circuit board in 3D

This project is for a general-purpose, capacitive-touch keypad powered by a ESP32 and a matching receiver.

Size
70 × 111 mm
Copper layers
2
Thickness
1.6 mm
Parts
61
Nets
41
Pads
108
Tracks, vias
231, 15
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
30 Sep 2024
Updated
21 Oct 2024

Overview

PCB Keypad is an open-source printed circuit board by michaelruppe, from the michaelruppe/touch-keypad repository on GitHub. It is a 2-layer board of 70 × 111 mm with 61 parts on 41 nets, routed with 231 tracks and 15 vias.

It is built around the BS8116A-3 and BSS138. Its parts include 6 resistors, 5 capacitors, 3 ICs, 3 diodes and 1 transistor. It belongs with the keyboards and input boards and the ESP32 and RISC-V boards of this library.

Main components

2

README

README.md

Touch Keypad

This project is for a general-purpose, capacitive-touch keypad powered by a ESP32 and a matching receiver.

This project was originally designed as a keypad entry system for my garage door, but could easily be modified to other purposes. It is essentially a touch-keypad and receiver pair, where all authorisation is handled by the receier. The keypad only transmits information about what key sequence has been pressed.

Instructions for Use

Opening the Door

  1. Enter your authorised code on the keypad.
  2. Press the UP key.
  3. If the code is correct, you'll hear an ascending tone, and the door will begin to open.
  4. If the code is incorrect, you'll hear a descending tone. The door will not open.

Closing the Door

  1. Simply press the DOWN button on the keypad.
  2. The door will begin to close immediately. No code is required.

Stopping the Door

  1. Press the STOP button on the keypad at any time during door movement.
  2. The door will stop immediately. No code is required.

Setting a New Code

  1. Press the CODE button on the receiver. The status light will flash continuously.
  2. On the keypad, enter your new code (must be 4-12 digits long).
  3. Press the UP key to confirm.
  4. If accepted, you'll hear 3 ascending tones.

Understanding Keypad Sounds

The keypad provides audible feedback to guide you:

  • Ascending tone: Your code was authorised.
  • Descending tone: Your code was not authorised.
  • 3 low beeps: The system is locked out due to too many unauthorised attempts.
  • 3 ascending tones: A new code has been successfully set.

Important Notes

  • The UP command always requires an authorised code for security reasons.
  • DOWN and STOP commands can be used at any time without entering a code.
  • If you enter too many incorrect codes, the system will lock out. Wait for the lockout period to end before trying again.
  • Keep your code confidential to ensure the security of your property.

How it works

When the user enters a code on the keypad, the numerical code and the control key (Up, Down, or Stop) are sent as an encrypted message to the receiver. The receiver decrypts the message and determines if the code is correct. It responds with the authorisation status and the number of attempts remaining. If too many unauthorised attempts are made the Receiver locks-out the system.

mermaid
sequenceDiagram
    participant User
    participant Keypad
    participant Receiver
    
    User->>Keypad: Enter code + control key
    Keypad->>Keypad: Encrypt message
    Keypad->>Receiver: Send encrypted message
    Receiver->>Receiver: Decrypt message
    
    alt UP command
        Receiver->>Receiver: Check authorization
        alt authorised
            Receiver->>Keypad: Send authorization status
            Receiver->>Receiver: Execute UP command
        else Unauthorised
            Receiver->>Keypad: Send status + remaining attempts
            alt Too many attempts
                Receiver->>Receiver: Lock out system
            end
        end
    else DOWN or STOP command
        Receiver->>Receiver: Execute command without authorization
        Receiver->>Keypad: Send execution status
    end

Keypad PCB Features

  • Capacitive touch sensors - simplify assembly
  • All components are on the back side
  • Prototyping connections Vin, GND, Tx, Rx
  • Gerbers pre-generated and LCSC components specified in BOM file

Receiver PCB Features

  • 3ch open-drain outputs
  • Wide input voltage
  • Pass-through terminals for daisy-chaining other controllers

Parts

61
QtyValueFootprintReferences
410kResistor_SMD:R_0805_2012MetricR2, R3, R4, R5
3D_SchottkyDiode_SMD:D_SMAD1, D2, D3
24.7uFCapacitor_SMD:C_0805_2012MetricC3, C4
2FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2
2TestPointTestPoint:TestPoint_Pad_D3.0mmTP14, TP15
10 KeyTouch Pad:Touch_PadTP11
10.47uCapacitor_SMD:C_0805_2012MetricC2
11 KeyTouch Pad:Touch_PadTP1
1100nCapacitor_SMD:C_0805_2012MetricC5
11kResistor_SMD:R_0805_2012MetricR6
12 KeyTouch Pad:Touch_PadTP2
13 KeyTouch Pad:Touch_PadTP3
14 KeyTouch Pad:Touch_PadTP4
15 KeyTouch Pad:Touch_PadTP5
156kResistor_SMD:R_0805_2012MetricR1
16 KeyTouch Pad:Touch_PadTP6
16.8uHInductor_SMD:L_KOHERelec_MDA7030L1
168pCapacitor_SMD:C_0805_2012MetricC1
17 KeyTouch Pad:Touch_PadTP7
18 KeyTouch Pad:Touch_PadTP8
19 KeyTouch Pad:Touch_PadTP9
1BS8116A-3Package_SO:SSOP-20_3.9x8.7mm_P0.635mmU3
1BSS138Package_TO_SOT_SMD:SOT-23Q1
1BuzzerBuzzer_Beeper:MagneticBuzzer_CUI_CMT-8504-100-SMTBZ1
1Conn_01x04_PinConnector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_HorizontalJ1
1Down KeyTouch Pad:Touch_PadTP10
1G***kibuzzard-66F9EB0Ekibuzzard-66F9EB0E
1G***kibuzzard-66FA5178kibuzzard-66FA5178
1G***kibuzzard-66FA5120kibuzzard-66FA5120
1G***kibuzzard-66F9EAD5kibuzzard-66F9EAD5
1G***kibuzzard-66F9EB01kibuzzard-66F9EB01
1G***kibuzzard-66F9EAFCkibuzzard-66F9EAFC
1G***kibuzzard-66F9EAE0kibuzzard-66F9EAE0
1G***kibuzzard-66F9EB24kibuzzard-66F9EB24
1G***kibuzzard-66FAA17Ckibuzzard-66FAA17C
1G***kibuzzard-66FAA159kibuzzard-66FAA159
1G***kibuzzard-66FAA150kibuzzard-66FAA150
1G***kibuzzard-66F9EAE9kibuzzard-66F9EAE9
1G***kibuzzard-66F9EB2Bkibuzzard-66F9EB2B
1G***kibuzzard-66FA510Ckibuzzard-66FA510C
1G***kibuzzard-66F9EAF8kibuzzard-66F9EAF8
1G***kibuzzard-66FAA16Bkibuzzard-66FAA16B
1G***kibuzzard-66F9EB33kibuzzard-66F9EB33
1G***kibuzzard-66F9EAF1kibuzzard-66F9EAF1
1G***kibuzzard-66F9EAE4kibuzzard-66F9EAE4
1G***kibuzzard-66F9EB39kibuzzard-66F9EB39
1LOGOLOGOG#
1ME3116Package_TO_SOT_SMD:SOT-23-6U2
1RXTestPoint:TestPoint_Pad_D3.0mmTP17
1STOPTouch Pad:Touch_Pad_LongTP13
1TXTestPoint:TestPoint_Pad_D3.0mmTP16
1Up KeyTouch Pad:Touch_PadTP12
1XIAO ESP32C6xiao:XIAO-ESP32-14P-2.54-21X17.8MM-SMTU1

More from michaelruppe/touch-keypad

1
  • 2 layers28.4 × 50.8 mmPCB Receiver, the printed circuit board in 3D

    PCB Receiver

    michaelruppe/touch-keypad

    This project is for a general-purpose, capacitive-touch keypad powered by a ESP32 and a matching receiver.

    34 parts1

Similar boards

  • 4 layers36 × 50.2 mmRacer, the printed circuit board in 3D

    Racer

    StuckAtPrototype/Racer

    These are structured into their own files. I could have used submodules, but decided against it.

    83 parts3.8kApache-2.0
  • 4 layers95 × 95 mmCube motherboard, the printed circuit board in 3D

    Cube motherboard

    willem-pennings/balancing-cube

    A cube that balances itself in a corner or edge using reaction wheels

    52 parts1.1kGPL-3.0
  • 2 layers54.6 × 70.9 mmBeagleLogic Cape, the printed circuit board in 3D

    BeagleLogic Cape

    abhishek-kakkar/BeagleLogic

    A Software Suite that implements a logic analyzer with the PRU on the BeagleBone / BeagleBone Black.

    22 parts479GPL-3.0
  • 2 layers44.2 × 29.3 mmI2c tiny usb, the printed circuit board in 3D

    I2c tiny usb

    harbaum/I2C-Tiny-USB

    Cheap and simple I²C to USB interface

    27 parts454
  • 2 layers21.6 × 52.3 mmPs2 pico hat, the printed circuit board in 3D

    Ps2 pico hat

    No0ne/ps2x2pico

    USB keyboard/mouse to PS/2 interface converter using a Raspberry Pi Pico

    17 parts399MIT
  • 2 layers45 × 45 mmAirCube, the printed circuit board in 3D

    AirCube

    StuckAtPrototype/AirCube

    Works standalone out of the box. Pairs with Home Assistant in minutes. Other platforms are supported through community-contributed extensions.

    61 parts379Apache-2.0
  • 4 layers74 × 104 mmBeepy, the printed circuit board in 3D

    Beepy

    sqfmi/beepy-hardware

    Beepy Hardware

    160 parts348MIT

Questions

How big is the PCB Keypad PCB?

It measures 70 × 111 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PCB Keypad use?

61 parts, built around the BS8116A-3 and BSS138. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the PCB Keypad KiCad files?

From the michaelruppe/touch-keypad repository on GitHub, at the commit this page was made from: the board is PCB-Keypad/PCB-Keypad.kicad_pcb and its schematic PCB-Keypad/PCB-Keypad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PCB Keypad design in my own project?

Its repository states no licence, so its author keeps all rights: ask michaelruppe before reusing the design.