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
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.