19 KiB
Schematic Component List and Connection Guide
Schematic Structure (Recommended)
Page 1: Power Supply Section
- Power input via JST connector (J1 Pin 1)
- Voltage regulator (AMS1117-3.3)
- Input/output capacitors
- Power distribution
Page 2: Main Controller (ESP32)
- ESP32-WROOM-32E module
- Decoupling capacitors
- Reset and boot buttons
- Status LEDs
Page 3: Level Shifter and AC Interface
- TXB0104 level shifter
- AC connector (JST-XH)
- Signal connections
Page 4: Programming Header (Optional)
- Header pins for external USB-to-Serial adapter
- Auto-reset connections
Component List
Page 1: Power Supply
| Ref | Component | Library | Symbol | Value | Notes |
|---|---|---|---|---|---|
| U1 | Voltage Regulator | Midea_ESP |
AMS1117-3.3 |
AMS1117-3.3 | 3.3V regulator |
| C1 | Capacitor | Device |
C |
10µF | Input capacitor |
| C2 | Capacitor | Device |
C |
10µF | Output capacitor |
| C3 | Capacitor | Device |
C |
100nF | Input decoupling |
| C4 | Capacitor | Device |
C |
100nF | Output decoupling |
Note: Power is supplied via J1 Pin 1 (+5V) from the AC unit connection. See Page 3 for J1 connector details.
Connections:
- J1 Pin 1 (+5V) → U1 Pin 3 (IN) (connect from Page 3 using net label
+5V_POWER) - J1 Pin 1 (+5V) → C1 (one terminal) (parallel connection - connect directly to +5V net)
- J1 Pin 1 (+5V) → C3 (one terminal) (parallel connection - connect directly to +5V net)
- C1 (other terminal) → GND
- C3 (other terminal) → GND
- U1 Pin 2 (OUT) → +3V3 Power Rail (connect to +3V3 power symbol)
- U1 Pin 2 (OUT) → C2 (one terminal) (parallel connection - connect directly to +3V3 net)
- U1 Pin 2 (OUT) → C4 (one terminal) (parallel connection - connect directly to +3V3 net)
- C2 (other terminal) → GND
- C4 (other terminal) → GND
- U1 Pin 1 (GND) → GND
- U1 Pin TAB (GND) → GND
- J1 Pin 4 (GND) → GND (connect from Page 3)
Note:
- All capacitors are unpolarized (ceramic), so either terminal can connect to either net.
- C1 and C3 are in PARALLEL between +5V and GND (input filtering/decoupling)
- C2 and C4 are in PARALLEL between +3V3 and GND (output filtering/decoupling)
Power Symbols:
- Add
+3V3power symbol (pressP, select+3V3) - Add
GNDpower symbol (pressP, selectGND) - Add
+5Vpower symbol (pressP, select+5V) - connects to J1 Pin 1 and level shifter
Page 2: ESP32 Main Controller
| Ref | Component | Library | Symbol | Value | Notes |
|---|---|---|---|---|---|
| U2 | ESP32 Module | Midea_ESP |
ESP32-WROOM-32E |
ESP32-WROOM-32E | Main MCU (onboard antenna) |
| C5 | Capacitor | Device |
C |
100nF | VDD decoupling (Pin 2) |
| C6 | Capacitor | Device |
C |
10µF | Bulk capacitor near module |
| SW1 | Reset Button | Button_Switch_SMD |
SW_PUSH |
- | Reset switch |
| SW2 | Boot Button | Button_Switch_SMD |
SW_PUSH |
- | Boot/Flash switch |
| R3 | Resistor | Device |
R |
10kΩ | Reset pull-up |
| R4 | Resistor | Device |
R |
10kΩ | Boot pull-up |
| LED1 | LED | Device |
LED |
- | WiFi status |
| LED2 | LED | Device |
LED |
- | BLE status |
| R1 | Resistor | Device |
R |
220Ω | LED1 current limit |
| R2 | Resistor | Device |
R |
220Ω | LED2 current limit |
Power Connections (For ESP32-WROOM-32E with Only Pin 2 VDD Exposed):
- ESP32 Pin 2 (VDD) → +3V3 Power Rail
- Note: Only Pin 2 (VDD) is exposed on your module (onboard antenna variant)
- C5 (100nF): U2 Pin 2 (VDD) → C5 (one terminal) → +3V3, C5 (other terminal) → GND (decoupling capacitor - required)
- C6 (10µF): U2 Pin 2 (VDD) → C6 (one terminal) → +3V3, C6 (other terminal) → GND (bulk capacitor - recommended near module)
- Placement: C5 and C6 must be placed as close as possible to Pin 2 (<5mm recommended)
- ESP32 GND pins (all exposed GND pins) → GND
- Note: Connect all exposed GND pins to ground plane
- Typical GND pins: Pin 1, and any other exposed GND pins on your module
- Note: Internal VDD pins are handled by the module internally - only external Pin 2 needs decoupling
Critical Control Pins (Per Datasheet):
- U2 EN (Enable Pin) - Pin 3 in RF_Module library:
- Function: Active HIGH - enables ESP32 operation (must be HIGH for normal operation)
- Pull-up resistor: R3 (10kΩ) → +3V3 (required by datasheet)
- Reset button: SW1 connected to EN pin (active LOW reset - pulls EN LOW to reset)
- Connections:
- U2.EN → R3 (10kΩ) → +3V3 (pull-up resistor)
- U2.EN → SW1 Pin 1 (reset button)
- SW1 Pin 2 → GND (when button pressed, EN goes LOW = reset)
- Note: EN must be HIGH (3.3V) for ESP32 to operate. Pulling it LOW resets the chip.
- U2 GPIO0 (Boot Mode Pin):
- Function: Boot mode selection
- HIGH (3.3V): Normal boot from flash
- LOW (GND): Download mode for flashing
- Pull-up resistor: R4 (10kΩ) → +3V3 (required by datasheet)
- Boot button: SW2 connected to GPIO0 (pull LOW for download mode)
- Connection: U2.GPIO0 → R4 → +3V3, U2.GPIO0 → SW2 Pin 1, SW2 Pin 2 → GND
GPIO Connections:
- U2 GPIO17 (UART1 TX): → Label:
ESP32_TX→ Connect to Page 3 (U3.A1) - AC communication - U2 GPIO16 (UART1 RX): → Label:
ESP32_RX→ Connect to Page 3 (U3.A2) - AC communication - U2 GPIO2: → R1 (220Ω) → LED1 Anode → LED1 Cathode → GND (WiFi status indicator)
- U2 GPIO4: → R2 (220Ω) → LED2 Anode → LED2 Cathode → GND (BLE status indicator)
- U2 GPIO1 (UART0 TX): → Label:
UART_TX→ Connect to Page 4 (J2 Pin 3) [if programming header] - U2 GPIO3 (UART0 RX): → Label:
UART_RX→ Connect to Page 4 (J2 Pin 4) [if programming header]
Programming Header Connections (Optional):
- U2 GPIO0: → Label:
DTR→ Connect to Page 4 (J2 Pin 5) - Auto-reset for flashing - U2 EN: → Label:
RTS→ Connect to Page 4 (J2 Pin 6) - Auto-reset for flashing
Note: According to ESP32-WROOM-32E datasheet:
- Power supply: Must be stable 3.0V to 3.6V (we use 3.3V)
- Peak current: Up to 500mA during WiFi transmission
- Decoupling: 100nF ceramic capacitor required at exposed VDD pin (Pin 2)
- Bulk capacitor: 10µF recommended near module (C6)
- PCB layout: Decoupling capacitors must be placed as close as possible to Pin 2
- Module variant: Your module (onboard antenna) only exposes Pin 2 as VDD - internal VDD pins are handled by the module
Button Connections:
- SW1 (Reset Button) - Connected to EN Pin (Pin 3 in RF_Module library):
- SW1 Pin 1 → U2.EN (Enable pin - Pin 3 in RF_Module library)
- SW1 Pin 1 → R3 (10kΩ) → +3V3 (pull-up resistor)
- SW1 Pin 2 → GND
- Function: Pressing SW1 pulls EN LOW, which resets the ESP32
- Normal state: EN is HIGH (3.3V) via R3 pull-up, ESP32 operates normally
- Reset state: When button pressed, EN goes LOW (GND), ESP32 resets
- SW2 (Boot Button) - Connected to GPIO0:
- SW2 Pin 1 → U2.GPIO0 (Boot mode pin)
- SW2 Pin 1 → R4 (10kΩ) → +3V3 (pull-up resistor)
- SW2 Pin 2 → GND
- Function: Pressing SW2 pulls GPIO0 LOW, which puts ESP32 in download mode
- Normal state: GPIO0 is HIGH (3.3V) via R4 pull-up, ESP32 boots from flash
- Download mode: When button pressed, GPIO0 goes LOW (GND), ESP32 enters download mode
LED Connections:
- LED1 Anode → R1 → U2.GPIO2
- LED1 Cathode → GND
- LED2 Anode → R2 → U2.GPIO4
- LED2 Cathode → GND
Decoupling Capacitors (For Module with Only Pin 2 VDD Exposed):
- C5: U2 Pin 2 (VDD) → GND (100nF ceramic, 0805 package)
- Purpose: High-frequency decoupling for VDD pin
- Placement: As close as possible to Pin 2 (<5mm)
- C6: U2 Pin 2 (VDD) → GND (10µF ceramic, 0805 package)
- Purpose: Bulk capacitor for power supply stability
- Placement: Near ESP32 module, close to Pin 2
Note:
- Your ESP32-WROOM-32E module (onboard antenna) only exposes Pin 2 as VDD
- Internal VDD pins are handled internally by the module
- Only the exposed Pin 2 requires external decoupling capacitors
- C5 (100nF) for high-frequency decoupling
- C6 (10µF) for bulk power supply filtering
PCB Layout Requirements:
- C5 (100nF): Place as close as possible to Pin 2 (<5mm recommended)
- C6 (10µF): Place near ESP32 module, close to Pin 2
- Trace width: Use short, wide traces from Pin 2 to capacitors
- Ground connection: Connect capacitors to ground plane with short, wide traces
- Power trace: Use adequate trace width for 500mA peak current (minimum 0.5mm)
Page 3: Level Shifter and AC Interface
| Ref | Component | Library | Symbol | Value | Notes |
|---|---|---|---|---|---|
| U3 | Level Shifter | Midea_ESP |
TXB0104PWR |
TXB0104PWR | 4-channel level shifter (TSSOP-14) |
| J1 | AC Connector | Connector_JST |
JST_XH_B4B-XH-A |
- | 4-pin JST-XH |
| C14 | Capacitor | Device |
C |
100nF | VCCA decoupling (U3 Pin 12) |
| C15 | Capacitor | Device |
C |
100nF | VCCB decoupling (U3 Pin 11) |
TXB0104PWR Pin Connections:
Low Voltage Side (3.3V - ESP32):
- U3 Pin 1 (A1) → Net Label:
ESP32_TX→ Connect to Page 2 (U2.GPIO17) - U3 Pin 2 (A2) → Net Label:
ESP32_RX→ Connect to Page 2 (U2.GPIO16) - U3 Pin 3 (A3) → NC (Not Connected)
- U3 Pin 4 (A4) → NC (Not Connected)
High Voltage Side (5V - AC):
- U3 Pin 9 (B1) → Net Label:
AC_RX→ J1 Pin 2 - U3 Pin 8 (B2) → Net Label:
AC_TX→ J1 Pin 3 - U3 Pin 7 (B3) → NC (Not Connected)
- U3 Pin 6 (B4) → NC (Not Connected)
Power (Per TXB0104 Datasheet):
- U3 Pin 12 (VCCA) → +3V3 Power Rail (Low voltage side: 1.2V to 3.6V, we use 3.3V)
- C14 (100nF) → U3 Pin 12 (VCCA) → +3V3, C14 (other terminal) → GND (decoupling capacitor - required by datasheet)
- U3 Pin 11 (VCCB) → +5V Power Rail (High voltage side: 1.65V to 5.5V, we use 5V)
- C15 (100nF) → U3 Pin 11 (VCCB) → +5V, C15 (other terminal) → GND (decoupling capacitor - required by datasheet)
- U3 Pin 10 (OE) → +3V3 Power Rail (Output Enable - referenced to VCCA per datasheet)
- Note: OE input circuit is referenced to VCCA (not VCCB) per datasheet
- Function: HIGH (3.3V) = enabled, LOW (GND) = high-impedance state
- U3 Pin 5 (GND) → GND
- U3 Pin 13 (GND) → GND
- U3 Pin 14 (GND) → GND
Critical Requirement (Per Datasheet):
- VCCA must NOT exceed VCCB: 3.3V ≤ 5V ✓ (correct)
- Decoupling capacitors: 100nF ceramic capacitors required on both VCCA and VCCB (C14, C15)
AC Connector (J1) - JST-XH Connector on PCB:
- J1 Pin 1 → +5V Power Rail → Connect to Page 1 (U1 Pin 3 via capacitors) - Power input for PCB
- J1 Pin 2 → Net Label:
AC_RX→ U3 Pin 9 (B1) - J1 Pin 3 → Net Label:
AC_TX→ U3 Pin 8 (B2) - J1 Pin 4 → GND → Connect to all GND nets
Note: J1 is a JST-XH connector mounted on the PCB. This connector provides:
- Power input (Pin 1: +5V) - Powers the entire PCB
- AC communication (Pins 2-3: UART signals)
- Ground (Pin 4: GND)
You will connect a cable with a matching JST-XH connector on one end to connect to your AC unit. The other end of the cable connects to J1 on the PCB.
Net Labels to Use:
ESP32_TX- ESP32 transmit to level shifterESP32_RX- ESP32 receive from level shifterAC_TX- AC transmit lineAC_RX- AC receive line
Page 4: Programming Header (Required for Flashing)
| Ref | Component | Library | Symbol | Value | Notes |
|---|---|---|---|---|---|
| J2 | Header | Connector_PinHeader_2.54mm |
PinHeader_2x04_P2.54mm_Vertical |
- | 2x4 programming header (8 pins total, 6 used) |
| R5 | Resistor | Device |
R |
10kΩ | DTR pull-up (optional but recommended) |
| R6 | Resistor | Device |
R |
10kΩ | RTS pull-up (optional but recommended) |
Programming Header (J2) Pinout - 2x4 Header (2.54mm pitch):
Pin Layout (Top View):
┌─────────────┐
│ 1 2 3 4 │ ← Top row
│ 5 6 7 8 │ ← Bottom row
└─────────────┘
| J2 Pin | Signal | ESP32 Connection | Description |
|---|---|---|---|
| 1 | +3V3 | +3V3 Power Rail | Optional - Power ESP32 from programmer |
| 2 | GND | GND | Ground reference (required) |
| 3 | UART_TX | U2.GPIO1 (UART0 TX) | ESP32 transmits to programmer |
| 4 | UART_RX | U2.GPIO3 (UART0 RX) | ESP32 receives from programmer |
| 5 | DTR | U2.GPIO0 | Data Terminal Ready (auto-reset for flashing) |
| 6 | RTS | U2.EN | Request To Send (auto-reset for flashing) |
| 7 | NC | - | Not connected (spare) |
| 8 | NC | - | Not connected (spare) |
Connections:
- J2 Pin 1 → +3V3 Power Rail (optional - for powering from programmer)
- J2 Pin 2 → GND (required)
- J2 Pin 3 → Net Label:
UART_TX→ Connect to Page 2 (U2.GPIO1) - ESP32 TX - J2 Pin 4 → Net Label:
UART_RX→ Connect to Page 2 (U2.GPIO3) - ESP32 RX - J2 Pin 5 → Net Label:
DTR→ Connect to Page 2 (U2.GPIO0) - Auto-reset - J2 Pin 6 → Net Label:
RTS→ Connect to Page 2 (U2.EN) - Auto-reset - J2 Pin 7 → NC (Not Connected - spare for future use)
- J2 Pin 8 → NC (Not Connected - spare for future use)
Flashing with 2x4 Header:
- Automatic - no buttons needed:
- DTR/RTS signals automatically put ESP32 in boot mode
- Just run
esptoolor ESPHome - it handles everything - Much easier and faster
Note: Pins 7 and 8 are spare and can be used for future expansion if needed.
Auto-Reset Circuit (Optional but Recommended):
- J2 Pin 5 (DTR) → R5 → +3V3
- J2 Pin 5 (DTR) → U2.GPIO0 (Boot mode control)
- J2 Pin 6 (RTS) → R6 → +3V3
- J2 Pin 6 (RTS) → U2.EN (Reset control)
Note: The pull-up resistors (R5, R6) are optional. Most USB-to-Serial adapters have built-in pull-ups, but adding them ensures reliable operation.
Net Labels:
UART_TX- ESP32 UART TX to programmerUART_RX- ESP32 UART RX from programmerDTR- Data Terminal Ready (auto-reset)RTS- Request To Send (auto-reset)
External USB-to-Serial Adapter Connections: When connecting an external USB-to-Serial adapter (e.g., CP2102, CH340, FT232):
- Adapter VCC → J2 Pin 1 (optional - only if you want to power ESP32 from adapter)
- Adapter GND → J2 Pin 2
- Adapter RX → J2 Pin 3 (UART_TX from ESP32)
- Adapter TX → J2 Pin 4 (UART_RX to ESP32)
- Adapter DTR → J2 Pin 5 (auto-reset)
- Adapter RTS → J2 Pin 6 (auto-reset)
How to Add Components in KiCad
Step 1: Add Components
- Press
A(or click "Place Symbol" tool) - In the symbol chooser, search for the component
- Click to place on schematic
- Press
Eto edit properties (set Reference, Value)
Step 2: Add Power Symbols
- Press
P(or click "Place Power Port" tool) - Select power symbol:
+3V3,+5V, orGND - Click to place
- All symbols with the same name are automatically connected
Step 3: Add Wires
- Press
W(or click "Place Wire" tool) - Click on a pin, then click on destination pin
- KiCad will route the wire automatically
Step 4: Add Net Labels (for cross-page connections)
- Press
L(or click "Place Net Label" tool) - Type the net name (e.g.,
ESP32_TX) - Click on the wire to attach the label
- Use the same label name on other pages to connect them
Step 5: Add Hierarchical Sheets (for multiple pages)
- Press
S(or click "Place Hierarchical Sheet" tool) - Draw a rectangle for the sheet
- Double-click to edit sheet properties
- Set sheet name and file name
Connection Summary by Net
+3V3 Net (3.3V Power Rail)
- U1 Pin 2 (OUT)
- U2 All VDD pins (1, 3, 14, 21, 22, 27, 28, 33, 42)
- U3 Pin 12 (VCCA)
- U3 Pin 10 (OE)
- J2 Pin 1 (optional - if powering from programmer)
- R1, R2, R3, R4, R5, R6 (one end of pull-up resistors)
- LED1, LED2 anodes (via resistors)
+5V Net (5V Power Rail)
- J1 Pin 1 (Power input from AC connection)
- U1 Pin 3 (IN)
- U3 Pin 11 (VCCB)
GND Net (Ground)
- J1 Pin 4 (Ground from AC connection)
- U1 Pin 1 and TAB
- U2 All GND pins (2, 4, 13, 15, 20, 23, 26, 29, 34, 38, 40)
- U3 Pins 5, 13, 14 (GND)
- J2 Pin 2 (GND)
- All capacitor negative terminals
- SW1 Pin 2, SW2 Pin 2
- LED1, LED2 cathodes
ESP32_TX Net
- U2 GPIO17 → U3 Pin 1 (A1)
ESP32_RX Net
- U2 GPIO16 → U3 Pin 2 (A2)
AC_TX Net
- U3 Pin 8 (B2) → J1 Pin 3
AC_RX Net
- U3 Pin 9 (B1) → J1 Pin 2
UART_TX Net (if programming header included)
- U2 GPIO1 → J2 Pin 3
UART_RX Net (if programming header included)
- U2 GPIO3 → J2 Pin 4
DTR Net (if programming header included)
- J2 Pin 5 → U2 GPIO0
RTS Net (if programming header included)
- J2 Pin 6 → U2 EN
Recommended Schematic Layout
Option 1: Single Page (Simple)
- Left: Power supply (powered from J1)
- Center: ESP32 with peripherals
- Right: Level shifter and AC connector (J1 provides power)
- Bottom: Programming Header (if included)
Option 2: Multiple Pages (Organized)
- Page 1: Power Supply (USB input, regulator, capacitors)
- Page 2: ESP32 Main (MCU, buttons, LEDs, decoupling caps)
- Page 3: Level Shifter & AC Interface
- Page 4: Programming Header (optional)
Use hierarchical sheets or net labels to connect between pages.
Tips
- Use Net Labels for cross-page connections instead of wires
- Group related components together
- Place power symbols near components that need them
- Use buses if you have multiple similar signals (not needed here)
- Add text notes to document special connections
- Run ERC (Electrical Rules Check) after completing: Tools → Electrical Rules Checker
Component Values Summary
| Component | Value | Purpose |
|---|---|---|
| U1 | AMS1117-3.3 | 5V to 3.3V regulator |
| U2 | ESP32-WROOM-32E | Main microcontroller |
| U3 | TXB0104PWR | 3.3V ↔ 5V level shifter |
| J2 | 6-pin Header | Programming header (optional) |
| R1, R2 | 220Ω | LED current limiting |
| R3, R4 | 10kΩ | Button pull-up resistors |
| R5, R6 | 10kΩ | DTR/RTS pull-up resistors (optional) |
| C1, C2 | 10µF | Power supply capacitors |
| C3, C4 | 100nF | Decoupling capacitors |
| C5-C13 | 100nF | ESP32 decoupling |
| C14, C15 | 100nF, 10µF | CP2102N decoupling |
Next Steps After Schematic
- Annotate Components: Tools → Annotate Schematic
- Electrical Rules Check: Tools → Electrical Rules Checker
- Assign Footprints: Tools → Assign Footprints
- Generate Netlist: Tools → Generate Netlist
- Open PCB Editor: Click "Open PCB in Board Editor"