Files
presence-sensor/PIN_MAPPING.md
root 0240020cd2 Initial design: ESP32-S3 presence sensor with camera, mmWave, PIR, temp/humidity, light
- 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
2026-03-29 12:53:54 -05:00

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+).