Initial KiCad project

This commit is contained in:
2026-01-04 01:19:56 +02:00
commit cf6e6e3baf
45 changed files with 133173 additions and 0 deletions

410
KICAD_GUIDE.md Normal file
View File

@@ -0,0 +1,410 @@
# 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
1. **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
2. **Power Section (Top Left)**
- USB connector near edge
- AMS1117 regulator close to USB
- Decoupling capacitors within 5mm of regulator
3. **Level Shifter (Between ESP32 and AC Connector)**
- TXB0104 close to ESP32 GPIO17/GPIO16
- Positioned to minimize trace length to AC connector
4. **AC Connector (Right Edge)**
- JST-XH connector on right edge
- Easy access for cable connection
5. **USB-to-Serial (Bottom Left, Optional)**
- CP2102N and USB connector
- Separate from power USB
6. **Status LEDs (Top Edge)**
- Visible when board is mounted
- Near board edge
7. **Buttons (Accessible Location)**
- Reset and Boot buttons
- Easy to press during development
### Routing Priorities
1. **Power Traces (Highest Priority)**
- 3V3: Minimum 0.5mm (20mil) width
- 5V: Minimum 0.5mm (20mil) width
- Use power planes if 4-layer board
2. **Ground (Critical)**
- Ground plane on bottom layer
- Connect all GND pins to plane
- Keep ground continuous
3. **UART Signals (High Priority)**
- Keep traces short (<50mm)
- Avoid crossing power traces
- Route together (differential pair style)
- 0.2mm (8mil) minimum width
4. **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
1. Open KiCad Schematic Editor
2. Click "Place Symbol" (A key)
3. 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
1. Open "Assign Footprints" tool
2. Assign footprints:
- ESP32-WROOM-32E `ESP32-WROOM-32` footprint
- TXB0104 `TSSOP-14` footprint
- AMS1117 `SOT-223` or `SOT-89` footprint
- Resistors `R_0603` or `R_0805`
- Capacitors `C_0603` or `C_0805`
- LEDs `LED_0603`
- Buttons `SW_PUSH_6mm`
- Connectors Appropriate JST or USB footprint
### 4. Netlist and PCB
1. Generate Netlist (F8)
2. Open PCB Editor
3. Read Netlist (F8 in PCB Editor)
4. Place components according to guidelines
5. Route traces following priorities
### 5. Design Rule Check (DRC)
1. Run DRC before finalizing
2. 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
1. **Create Schematic** following the connections above
2. **Assign Footprints** to all components
3. **Generate Netlist** and import to PCB
4. **Place Components** according to guidelines
5. **Route Traces** following priorities
6. **Run DRC** and fix any issues
7. **Generate Gerbers** for manufacturing
8. **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.