9.4 KiB
9.4 KiB
KiCad Schematic and PCB Design Guide
Step-by-Step Schematic Creation
1. Component Libraries Setup
First, ensure you have the necessary libraries:
- ESP32-WROOM-32: ESP32 module footprint
- TXB0104: Logic level shifter
- AMS1117: Voltage regulator
- CP2102N: USB-to-Serial (optional)
- Standard libraries: Resistors, Capacitors, LEDs, Connectors
2. Schematic Components List
Add these components to your schematic:
Power Section
- U1: AMS1117-3.3 (Voltage Regulator)
- C1: 10µF Capacitor (Input)
- C2: 10µF Capacitor (Output)
- C3: 100nF Capacitor (Input decoupling)
- C4: 100nF Capacitor (Output decoupling)
- USB1: USB Micro-B Connector (Power input)
ESP32 Module
- U2: ESP32-WROOM-32E Module
Logic Level Shifter
- U3: TXB0104PWR (4-channel level shifter)
Midea AC Connector
- J1: JST-XH 4-pin Connector (or USB Type-A female)
USB-to-Serial (Optional)
- U4: CP2102N (USB-to-Serial converter)
- USB2: USB Micro-B Connector (Programming)
Status LEDs
- LED1: LED (WiFi Status) - GPIO2
- LED2: LED (BLE Status) - GPIO4
- R1: 220Ω Resistor (LED1 current limiting)
- R2: 220Ω Resistor (LED2 current limiting)
Buttons
- SW1: Tactile Switch (Reset)
- SW2: Tactile Switch (Boot/Flash)
- R3: 10kΩ Resistor (Reset pull-up)
- R4: 10kΩ Resistor (Boot pull-up)
Decoupling Capacitors
- C5-C10: 100nF Capacitors (ESP32 power pins)
Detailed Schematic Connections
Power Supply Section
USB1 (Micro-B):
Pin 1 (VCC) → C1+ → U1.IN
Pin 1 (VCC) → C3+ → U1.IN
Pin 4 (GND) → GND
U1 (AMS1117-3.3):
IN → USB1.VCC (via C1, C3)
GND → GND
OUT → C2+ → 3V3 (Power Rail)
OUT → C4+ → 3V3 (Power Rail)
Power Rails:
3V3 → ESP32 VDD pins
3V3 → Level Shifter VCCA
3V3 → LED anodes (via resistors)
3V3 → Button pull-ups
GND → Common ground plane
ESP32-WROOM-32E Connections
U2 (ESP32-WROOM-32E):
VDD (Pins: 1,3,14,21,22,27,28,33,42) → 3V3 (via decoupling caps)
GND (Pins: 2,4,13,15,20,23,26,29,34,38,40) → GND
GPIO17 (TX) → U3.A1 (Level Shifter LV side)
GPIO16 (RX) → U3.A2 (Level Shifter LV side)
GPIO2 → R1 → LED1 (WiFi Status)
GPIO4 → R2 → LED2 (BLE Status)
GPIO0 → SW2 (Boot Button) → GND
GPIO0 → R4 → 3V3 (Pull-up)
EN → SW1 (Reset Button) → GND
EN → R3 → 3V3 (Pull-up)
GPIO1 (TX) → U4.RXD (if USB-to-Serial included)
GPIO3 (RX) → U4.TXD (if USB-to-Serial included)
Logic Level Shifter (TXB0104)
U3 (TXB0104PWR):
VCCA → 3V3 (Low voltage side)
VCCB → 5V (High voltage side - from USB or external)
GND → GND
OE → 3V3 (Always enabled)
A1 (LV1) → U2.GPIO17 (ESP32 TX)
B1 (HV1) → J1.RX (AC Dongle RX)
A2 (LV2) → U2.GPIO16 (ESP32 RX)
B2 (HV2) → J1.TX (AC Dongle TX)
A3, A4, B3, B4 → NC (Not connected)
Midea AC Connector
J1 (JST-XH 4-pin or USB Type-A):
Pin 1 (VCC) → 5V (if AC dongle needs power)
Pin 2 (RX) → U3.B1 (Level Shifter HV1)
Pin 3 (TX) → U3.B2 (Level Shifter HV2)
Pin 4 (GND) → GND
USB-to-Serial (Optional)
U4 (CP2102N):
VDD → 3V3
GND → GND
DTR → U2.GPIO0 (Auto-reset for flashing)
RXD → U2.GPIO1 (ESP32 TX)
TXD → U2.GPIO3 (ESP32 RX)
VBUS → USB2.VCC (5V detection)
USB2 (Micro-B):
VCC → U4.VBUS
D+ → U4.D+
D- → U4.D-
GND → GND
Status LEDs
LED1 (WiFi Status):
Anode → R1 → U2.GPIO2
Cathode → GND
LED2 (BLE Status):
Anode → R2 → U2.GPIO4
Cathode → GND
Buttons
SW1 (Reset):
Pin 1 → U2.EN
Pin 2 → GND
(R3 pull-up: U2.EN → 3V3)
SW2 (Boot):
Pin 1 → U2.GPIO0
Pin 2 → GND
(R4 pull-up: U2.GPIO0 → 3V3)
PCB Layout Guidelines
Component Placement Order
-
ESP32 Module (Center)
- Place ESP32-WROOM-32E in center of board
- Leave 15mm clearance around antenna area (top-right corner)
- No ground plane under antenna
-
Power Section (Top Left)
- USB connector near edge
- AMS1117 regulator close to USB
- Decoupling capacitors within 5mm of regulator
-
Level Shifter (Between ESP32 and AC Connector)
- TXB0104 close to ESP32 GPIO17/GPIO16
- Positioned to minimize trace length to AC connector
-
AC Connector (Right Edge)
- JST-XH connector on right edge
- Easy access for cable connection
-
USB-to-Serial (Bottom Left, Optional)
- CP2102N and USB connector
- Separate from power USB
-
Status LEDs (Top Edge)
- Visible when board is mounted
- Near board edge
-
Buttons (Accessible Location)
- Reset and Boot buttons
- Easy to press during development
Routing Priorities
-
Power Traces (Highest Priority)
- 3V3: Minimum 0.5mm (20mil) width
- 5V: Minimum 0.5mm (20mil) width
- Use power planes if 4-layer board
-
Ground (Critical)
- Ground plane on bottom layer
- Connect all GND pins to plane
- Keep ground continuous
-
UART Signals (High Priority)
- Keep traces short (<50mm)
- Avoid crossing power traces
- Route together (differential pair style)
- 0.2mm (8mil) minimum width
-
GPIO Signals (Standard)
- 0.15mm (6mil) minimum width
- Keep away from antenna area
Design Rules
-
Trace Width:
- Power: 0.5mm (20mil)
- Signal: 0.15-0.2mm (6-8mil)
-
Via Size:
- Diameter: 0.5mm (20mil)
- Drill: 0.2mm (8mil)
-
Clearance:
- Trace to trace: 0.15mm (6mil)
- Trace to pad: 0.15mm (6mil)
-
Antenna Keepout:
- 15mm radius around ESP32 antenna
- No ground plane
- No components
- No traces (except necessary)
Layer Stackup (2-Layer)
Top Layer:
- Components
- Signal traces
- Power traces (3V3, 5V)
Bottom Layer:
- Ground plane (primary)
- Power traces (if needed)
- Signal traces (minimal)
Layer Stackup (4-Layer Recommended)
Layer 1 (Top):
- Components
- Signal traces
Layer 2 (Inner 1):
- Ground plane
Layer 3 (Inner 2):
- Power plane (3V3)
Layer 4 (Bottom):
- Ground plane
- Signal traces
KiCad Specific Instructions
1. Adding Components
- Open KiCad Schematic Editor
- Click "Place Symbol" (A key)
- Search for components:
ESP32-WROOM-32E(may need to download footprint)TXB0104(may need custom symbol)AMS1117(search in library)- Standard:
R,C,LED,SW_Push,Conn_01x04_Male
2. Creating Custom Symbols (if needed)
ESP32-WROOM-32E:
- Create new symbol in Symbol Editor
- Add pins according to ESP32-WROOM-32E datasheet
- Save to custom library
TXB0104:
- Create symbol with 14 pins (TSSOP-14)
- Pins: VCCA, A1-A4, GND, OE, B1-B4, VCCB, GND
3. Assigning Footprints
- Open "Assign Footprints" tool
- Assign footprints:
- ESP32-WROOM-32E →
ESP32-WROOM-32footprint - TXB0104 →
TSSOP-14footprint - AMS1117 →
SOT-223orSOT-89footprint - Resistors →
R_0603orR_0805 - Capacitors →
C_0603orC_0805 - LEDs →
LED_0603 - Buttons →
SW_PUSH_6mm - Connectors → Appropriate JST or USB footprint
- ESP32-WROOM-32E →
4. Netlist and PCB
- Generate Netlist (F8)
- Open PCB Editor
- Read Netlist (F8 in PCB Editor)
- Place components according to guidelines
- Route traces following priorities
5. Design Rule Check (DRC)
- Run DRC before finalizing
- Check for:
- Unconnected nets
- Clearance violations
- Trace width violations
- Via size issues
Component Footprint Reference
| Component | Footprint | Package |
|---|---|---|
| ESP32-WROOM-32E | Custom/ESP32-WROOM-32 | Module |
| TXB0104PWR | TSSOP-14 | TSSOP |
| AMS1117-3.3 | SOT-223 | SOT-223 |
| CP2102N | QFN-24 | QFN |
| Resistors | R_0603 or R_0805 | 0603/0805 |
| Capacitors | C_0603 or C_0805 | 0603/0805 |
| LEDs | LED_0603 | 0603 |
| Buttons | SW_PUSH_6mm | 6×6mm |
| USB Micro-B | USB_Micro-B | Through-hole |
| JST-XH | JST_XH_B4B-XH-A | Through-hole |
Testing Checklist
After PCB assembly:
- Power supply: 3.3V stable at ESP32 VDD
- ESP32 boots (check serial output)
- WiFi connects
- BLE beacon transmits
- UART communication works
- Level shifter: 3.3V → 5V conversion verified
- Midea AC responds to commands
- Status LEDs function
- Buttons work (Reset, Boot)
- OTA updates work
Common Issues and Solutions
Issue: ESP32 doesn't boot
- Check: Power supply voltage (should be 3.3V)
- Check: Decoupling capacitors
- Check: EN pin connection
Issue: UART communication fails
- Check: Level shifter connections
- Check: 5V power to level shifter VCCB
- Check: TX/RX not swapped
Issue: WiFi/BLE interference
- Check: Antenna clearance (15mm)
- Check: No ground plane under antenna
- Check: Component placement
Issue: Power regulator overheating
- Check: Adequate copper for heat dissipation
- Check: Thermal vias under regulator
- Check: Input voltage (should be 5V)
Next Steps
- Create Schematic following the connections above
- Assign Footprints to all components
- Generate Netlist and import to PCB
- Place Components according to guidelines
- Route Traces following priorities
- Run DRC and fix any issues
- Generate Gerbers for manufacturing
- Order Prototype (start with 5-10 boards)
Ready to start? Open KiCad and begin with the power supply section, then add ESP32, level shifter, and connectors.