Designed my first custom ESP32 PCB to drive a LED matrix over WiFi
New to PCB, please be lenient.
Custom ESP32 LED Display Controller — PCB Design
New to PCB, I Designed a compact 2-layer PCB (66×88mm) that drives a 64×32 RGB LED matrix panel over WiFi. 44 components, single 5V input, internet-connected.
Why a custom PCB?
Off-the-shelf dev boards waste space, need messy external wiring, and can't handle 10-15A for LED panels. This board puts everything on one clean, purpose-built board—power protection, voltage regulation, USB programming, WiFi MCU, level shifting, and panel interface.
Board highlights
Power path uses copper pour instead of traces — a 0.25mm trace would melt at 15A. Bulk 2200µF caps and TVS diodes at both the input and panel connector absorb voltage spikes and current surges.
ESP32-WROVER-E (16MB flash + 8MB PSRAM) sits center-board with its antenna extending past the board edge into free air. 20×20mm keepout zone — no copper on either layer near the antenna, or WiFi range drops from 30m to 3m.
74HCT245 level shifter converts eight 3.3V data lines to 5V for the HUB75E panel. Clock and latch lines pass through 22Ω inline damping resistors to kill signal ringing on the ribbon cable.
USB-C with CP2102N for programming. ESD protection sits between connector and bridge chip (order matters). Cross-coupled transistor auto-reset circuit means no manual button pressing during code upload.
Every bypass cap within 3mm of its IC's power pin. Every ground pin via'd straight down to a solid bottom-layer GND pour. Thermal vias under the LDO for heat dissipation. 0805 passives for hand-soldering friendliness.
Bottom layer = unbroken GND copper pour. Low-impedance return path, EMI shielding, and heat spreading in one.
Specs
44 components (26 SMT + 18 through-hole)
2-layer, 1oz copper, 66×88mm
ESP32-WROVER-E with WiFi web server
HUB75E 64×32 RGB panel interface
USB-C programming with auto-reset
5V 15A capable power path
Full ESD + TVS protection