I’m blocked from modifying the project right now because execution credits are unavailable, so I can’t add components or generate the schematic directly in Flux yet.
What remains to be done:
Rename the placeholder project and create a short project specification.
Add the ESP32 NodeMCU DevKit V1 CP2102 module, SSD1306 OLED connector/module, 50 tactile switches, I2C pull-up resistors, and any recommended support parts.
Verify the ESP32 DevKit and OLED pinouts against datasheets/module documentation before wiring.
Build the keyboard as an optimized matrix, likely 7 rows × 8 columns = 56 possible keys, using 15 GPIOs for 50 switches.
Connect all switch matrix return paths to common ground reference through the ESP32 system ground.
Run schematic review/ERC after wiring and fix any unresolved issues.
Stop before PCB routing, per your request.
Recommended ESP32 pin allocation for the 50-key matrix, avoiding the restricted boot pins:
Table
Matrix Line
ESP32 GPIO
ROW0
GPIO13
ROW1
GPIO14
ROW2
GPIO16
ROW3
GPIO17
ROW4
GPIO18
ROW5
GPIO19
ROW6
GPIO23
COL0
GPIO25
COL1
GPIO26
COL2
GPIO27
COL3
GPIO32
COL4
GPIO33
COL5
GPIO34
COL6
GPIO35
COL7
GPIO36
Important note: GPIO34, GPIO35, and GPIO36 are input-only pins on the ESP32, so they are suitable as column inputs but not row outputs. The firmware should scan rows as outputs and read columns as inputs with pull-ups/pull-downs handled appropriately. Since GPIO34–36 do not have internal pull-ups, external pull-up resistors may be needed on those column lines unless the chosen DevKit/module already provides suitable biasing.