This table is the top-level GPIO map used by the GAP Wi-Fi (ESP32-C6) configuration. Use this as your master reference when wiring or troubleshooting.
| GPIO | Signal / Device | Direction | Notes |
|---|---|---|---|
| GPIO1 | (Free / Future) | — | Reserved for future features |
| GPIO3 | (Free / Future) | — | Reserved for future features |
| GPIO4 | DHT11 Temperature / Humidity | INPUT (1-wire) | Single-wire DHT11 data pin |
| GPIO6 | I²C SDA – LCD2004 / Bus A | Bidirectional | SDA for LCD2004 I²C backpack |
| GPIO7 | I²C SCL – LCD2004 / Bus A | Output | SCL for LCD2004 I²C backpack |
| GPIO10 | Inside Garage Door Reed | INPUT (pullup) | Detects inside track/position |
| GPIO11 | Outside Garage Door Reed | INPUT (pullup) | Detects outside track/position |
| GPIO16 | Buzzer | OUTPUT | Active buzzer (3.3 V) |
| GPIO20 | Main Garage Door Reed | INPUT (pullup) | Primary door state (open/closed) |
| GPIO21 | PIR Outside | INPUT | Outside motion sensor |
| GPIO22 | PIR Inside | INPUT | Inside motion sensor |
| GPIO23 | Garage Door Relay | OUTPUT (momentary) | Simulates wall-button press |
All logic-level IO is 3.3 V. Relay boards typically use 5 V on their power side, with the input signal still driven from a 3.3 V GPIO.
The 20×4 LCD2004 uses an I²C backpack connected to Bus A on the ESP32-C6. Power and signals are all on the 3.3 V rail.
| ESP32-C6 | LCD2004 I²C Backpack | Typical Wire Color | Function |
|---|---|---|---|
| 3V3 | VCC | Red | Display power (3.3 V) |
| GND | GND | Black | Common ground |
| GPIO6 | SDA | Blue | I²C data line |
| GPIO7 | SCL | Green | I²C clock line |
If the LCD stays blank, verify 3.3 V, GND, and SDA/SCL are not swapped. Also double-check the I²C address in your ESPHome YAML.
The DHT11 uses a single data line on GPIO4 and is powered from the 3.3 V rail.
| ESP32-C6 | DHT11 | Typical Wire Color | Function |
|---|---|---|---|
| 3V3 | VCC | Red | Sensor power (3.3 V) |
| GND | GND | Black | Common ground |
| GPIO4 | DATA / OUT | Yellow | DHT11 data (1-wire) |
Three reed switches are used to monitor the door and track position: inside rail, outside rail, and the primary “door closed / open” state. All are configured as inputs with internal pull-ups.
| ESP32-C6 GPIO | Reed Location | Wiring | Notes |
|---|---|---|---|
| GPIO10 | Inside Garage Door Reed | One side to GPIO10, other side to GND | INPUT, pullup enabled |
| GPIO11 | Outside Garage Door Reed | One side to GPIO11, other side to GND | INPUT, pullup enabled |
| GPIO20 | Main Garage Door Reed | One side to GPIO20, other side to GND | Primary door state sensor |
With pull-ups enabled, the GPIO reads HIGH when the reed is open, and LOW when the reed closes and connects the pin to ground.
Two PIR sensors monitor inside and outside motion for auto-close logic and safety.
| ESP32-C6 GPIO | PIR | Wiring | Notes |
|---|---|---|---|
| GPIO21 | PIR Outside | VCC to 3V3, GND to GND, OUT to GPIO21 | Logic HIGH on motion |
| GPIO22 | PIR Inside | VCC to 3V3, GND to GND, OUT to GPIO22 | Logic HIGH on motion |
Garage Door Relay (GPIO23)
The relay module simulates the wall-button press to open/close the garage door. The coil side is powered from 5 V, with the input signal driven by GPIO23.
| ESP32-C6 / Rail | Relay Module | Function |
|---|---|---|
| 5V Supply | DC+ | Relay power (5 V from dedicated buck) |
| GND (common) | DC- | Common ground (shared with ESP32-C6) |
| GPIO23 | IN | Relay input (momentary pulse controls NO/COM) |
| Garage opener button contacts | NO / COM | In parallel with the wall button terminals |
Buzzer (GPIO16)
The active buzzer is powered from 3.3 V and driven by GPIO16 for pre-warn and continuous-beep behavior.
| ESP32-C6 | Buzzer | Function |
|---|---|---|
| 3V3 | VCC / + | Power (3.3 V only) |
| GND | GND / − | Common ground |
| GPIO16 | IN (if 3-pin) | Drives active buzzer for warning tones |
Make sure the buzzer is an active type rated for 3.3 V. A passive buzzer will sound weak or not at all unless driven with PWM audio.