Custom PCB Design for Calculator


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.
  • Avoid ESP32 boot strapping pins GPIO0, GPIO2, GPIO12, GPIO15 for keyboard scan lines.
  • Connect OLED I2C:
    • SDA → GPIO21
    • SCL → GPIO22
    • SDA pull-up → 4.7 kΩ to 3.3 V
    • SCL pull-up → 4.7 kΩ to 3.3 V
    • OLED VCC → ESP32 3.3 V
    • OLED GND → common GND
  • 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 LineESP32 GPIO
ROW0GPIO13
ROW1GPIO14
ROW2GPIO16
ROW3GPIO17
ROW4GPIO18
ROW5GPIO19
ROW6GPIO23
COL0GPIO25
COL1GPIO26
COL2GPIO27
COL3GPIO32
COL4GPIO33
COL5GPIO34
COL6GPIO35
COL7GPIO36
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.
Generate 7x8 schematic
Add column pull-ups
Create key map
Check GPIO conflicts
Run ERC review
No schematic yet

Talk to Flux to get started.