- KiCad schematic and PCB layout (45x35mm board) - Full BOM with JLCPCB part numbers - ESPHome firmware configuration - 3D-printable wall-mount enclosure (OpenSCAD + STL) - Pin mapping and power budget documentation
68 lines
3.1 KiB
Markdown
68 lines
3.1 KiB
Markdown
# ESP32-S3 Pin Mapping - Presence Sensor
|
|
|
|
## GPIO Assignments
|
|
|
|
| GPIO | Function | Peripheral | Direction | Notes |
|
|
|------|----------|-----------|-----------|-------|
|
|
| GPIO0 | BOOT button | - | Input | Pull-up, hold low to enter bootloader |
|
|
| GPIO1 | Camera D0 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO2 | Camera D1 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO3 | I2C SDA | SHT41 + BH1750 | Bidir | 4.7K pull-up to 3.3V |
|
|
| GPIO4 | I2C SCL | SHT41 + BH1750 | Bidir | 4.7K pull-up to 3.3V |
|
|
| GPIO5 | Camera D2 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO6 | Camera D3 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO7 | Camera D4 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO8 | Camera D5 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO9 | Camera D6 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO10 | Camera D7 | OV5640 DVP | Input | Camera data bus |
|
|
| GPIO11 | Camera XCLK | OV5640 | Output | 20MHz clock via LEDC PWM |
|
|
| GPIO12 | Camera PCLK | OV5640 | Input | Pixel clock |
|
|
| GPIO13 | Camera VSYNC | OV5640 | Input | Vertical sync |
|
|
| GPIO14 | Camera HREF | OV5640 | Input | Horizontal reference |
|
|
| GPIO15 | Camera SIOD | OV5640 SCCB | Bidir | Camera I2C data (separate bus) |
|
|
| GPIO16 | Camera SIOC | OV5640 SCCB | Output | Camera I2C clock (separate bus) |
|
|
| GPIO17 | mmWave UART TX | LD2410C RX | Output | 256000 baud |
|
|
| GPIO18 | mmWave UART RX | LD2410C TX | Input | 256000 baud |
|
|
| GPIO19 | USB D- | USB-C | Bidir | Native USB (programming) |
|
|
| GPIO20 | USB D+ | USB-C | Bidir | Native USB (programming) |
|
|
| GPIO21 | Camera PWDN | OV5640 | Output | Camera power down (active high) |
|
|
| GPIO38 | PIR output | AM312 | Input | Digital HIGH on motion |
|
|
| GPIO39 | mmWave OUT | LD2410C | Input | Digital presence output |
|
|
| GPIO40 | Status LED | Blue LED | Output | Via 1K resistor |
|
|
| GPIO41 | Camera RESET | OV5640 | Output | Camera reset (active low) |
|
|
| GPIO47 | (Reserved) | - | - | PSRAM (if using octal) |
|
|
| GPIO48 | (Reserved) | - | - | PSRAM (if using octal) |
|
|
|
|
## I2C Bus (GPIO3/GPIO4)
|
|
| Device | Address | Function |
|
|
|--------|---------|----------|
|
|
| SHT41 | 0x44 | Temperature + Humidity |
|
|
| BH1750 | 0x23 | Ambient Light (ADDR pin LOW) |
|
|
|
|
## UART1 (GPIO17/GPIO18)
|
|
| Device | Baud | Function |
|
|
|--------|------|----------|
|
|
| LD2410C | 256000 | mmWave presence radar |
|
|
|
|
## Power Rails
|
|
| Rail | Source | Load |
|
|
|------|--------|------|
|
|
| 5V (VBUS) | USB-C | LD2410C, AMS1117 input |
|
|
| 3.3V | AMS1117 | ESP32-S3, SHT41, BH1750, AM312, Camera digital |
|
|
| 2.8V | AP2112K | OV5640 AVDD (analog) |
|
|
| 1.8V | AP2112K | OV5640 DOVDD (digital I/O) |
|
|
|
|
## Power Budget
|
|
| Component | Voltage | Current (typical) | Current (peak) |
|
|
|-----------|---------|-------------------|----------------|
|
|
| ESP32-S3 (WiFi active) | 3.3V | 240mA | 500mA |
|
|
| OV5640 (streaming) | 2.8V+1.8V | 140mA | 200mA |
|
|
| LD2410C | 5V | 60mA | 150mA |
|
|
| AM312 | 3.3V | 0.01mA | 0.01mA |
|
|
| SHT41 | 3.3V | 0.4mA | 2mA |
|
|
| BH1750 | 3.3V | 0.12mA | 0.2mA |
|
|
| Status LED | 3.3V | 2mA | 2mA |
|
|
| **Total** | - | **~445mA** | **~855mA** |
|
|
|
|
USB-C provides 500mA default, 900mA with USB 3.0. Board should work fine on any USB charger (1A+).
|