4x3 membrane keypad (12 keys) with ESP32

Supply 3.3 V Bus GPIO
R1R2R3R4C1C2C3

Pins and ESP32 wiring

PinRoleESP32 pinNotes
R1Output (the part drives it)D25Row 1. Rows are read with INPUT_PULLUP. Adafruit 3x4 keypads use another pin order
R2Output (the part drives it)D26Row 2
R3Output (the part drives it)D27Row 3
R4Output (the part drives it)D32Row 4
C1Input (the ESP32 drives it)D33Column 1. Columns are driven LOW one at a time
C2Input (the ESP32 drives it)D23Column 2
C3Input (the ESP32 drives it)D19Column 3

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.