5-way navigation button module with ESP32

Supply 3.3 V Bus GPIO
COMUPDWNLFTRHTMIDSETRST

Pins and ESP32 wiring

PinRoleESP32 pinNotes
COMGroundGNDCommon: to GND. Keys read LOW with INPUT_PULLUP
UPOutput (the part drives it)D25Up
DWNOutput (the part drives it)D26Down
LFTOutput (the part drives it)D27Left
RHTOutput (the part drives it)D32Right
MIDOutput (the part drives it)D33Centre press
SETOutput (the part drives it)D23Extra SET button
RSTOutput (the part drives it)D19Extra 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

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.