5-way navigation button module with ESP32
Supply 3.3 V
Bus GPIO
Pins and ESP32 wiring
| Pin | Role | ESP32 pin | Notes |
|---|---|---|---|
| COM | Ground | GND | Common: to GND. Keys read LOW with INPUT_PULLUP |
| UP | Output (the part drives it) | D25 | Up |
| DWN | Output (the part drives it) | D26 | Down |
| LFT | Output (the part drives it) | D27 | Left |
| RHT | Output (the part drives it) | D32 | Right |
| MID | Output (the part drives it) | D33 | Centre press |
| SET | Output (the part drives it) | D23 | Extra SET button |
| RST | Output (the part drives it) | D19 | Extra RST button (not the ESP32 reset) |
Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.
Starter code (Arduino)
void setup() {
Serial.begin(115200);
pinMode(25, INPUT); // UP
}
void loop() {
Serial.println(digitalRead(25));
delay(100);
}
Sources
- ALPS Alpine SKRH multi-directional switch datasheet, Common terminal and five direction contacts
- Common 5-way navigation module, Header COM, UP, DWN, LFT, RHT, MID, SET, RST. Check the silkscreen
Try it in 3D in BoardPilot
Learn the basics
Lesson: GPIO: pins in and out GPIO
Related parts
1x4 membrane keypad (4 keys)433 MHz receiver (XY-MK-5V)4x3 membrane keypad (12 keys)4x4 membrane keypad74HC165 input shift registerArcade button 30 mm with LED
Part data: CC BY 4.0, free to reuse with credit to BoardPilot.