Devlog #2: Schematic Finalization, Feature Upgrades & PCB Layout Setup
Following up on Devlog #1, I’ve made huge strides in expanding the macropad’s hardware capabilities, solving schematic design checks, and transitioning into physical PCB layout in KiCad!
🚀 Key Feature Additions & Hardware Expansion
Since Devlog #1, I updated the schematic from a basic key matrix to a feature-rich, high-performance design:
- I2C Port Expander Integration: Replaced the simple diode-isolated matrix with an MCP23017 I2C expander IC. This offloads all 9 mechanical switch inputs to a dedicated chip, freeing up critical GPIO pins on the XIAO ESP32-S3 for fast SPI graphics.
- EC11 Rotary Encoder Added: Integrated an EC11 encoder with push button for smooth scrolling, volume control, and mode toggling.
-
1.8” SPI TFT Display & SD Card Slot: Added headers for a 128x160 color TFT display running over hardware SPI (
SPI_SCK,SPI_MOSI,TFT_CS,TFT_DC,TFT_RES) along with an SD card reader interface (SD_CS) for loading images and macros. -
Per-Key RGB Lighting: Added 9x WS2812B addressable RGB LEDs (
C1–C9) daisy-chained on a single GPIO line for per-key lighting and animations.
📝 Activities Completed Today
-
Power Filter & Decoupling Circuitry:
- Added 100nF ceramic decoupling capacitors across
VDDandGNDfor all 9 WS2812B RGB LEDs (C1–C9) and the MCP23017 IC (C10) to eliminate power noise. - Selected and added a bulk 22µF 16V MLCC ceramic capacitor (0805 footprint) (
C11) directly across the main5Vline near the Seeed Studio XIAO ESP32-S3 module to handle current spikes when LEDs flash full brightness white.
- Added 100nF ceramic decoupling capacitors across
-
Board Stackup & Design Rules:
- Configured PCB properties to a cost-effective 2-layer stackup (1.6mm thickness, FR4).
- Resolved mechanical mounting pad (
MP) warnings on the EC11 rotary encoder footprint. - Set up custom Net Classes:
-
Power Class (
5V,3V3):0.60mmtrack width,0.25mmclearance,0.8mm/0.4mmvia sizing. -
Default Signal Class:
0.25mmtrack width,0.20mmclearance.
-
Power Class (
-
Layout Alignment & Ground Plane:
- Configured a custom 19.05mm (750 mil) grid in PCB Editor preferences for exact mechanical key switch alignment (
Alt+1shortcut). - Created and rendered a full GND Copper Zone (
B.Cu) across the bottom layer with thermal reliefs for clean ground grounding and easy hand-soldering.
- Configured a custom 19.05mm (750 mil) grid in PCB Editor preferences for exact mechanical key switch alignment (
📋 Checklist Status
- Add Rotary Encoder, TFT Display, and RGB LED components to schematic
- Finalize footprint assignments for all components
- Save footprint assignments and launch the PCB Layout Editor
- Define PCB edge outline and arrange all mechanical component footprints
- Complete trace routing for signal, SPI bus, and RGB power chains