Project Kickoff
Inspect current schematic, project documents, and executor report
Wire the power, ESP32, relay driver, and external contactor/manual override interfaces
Run connectivity and ERC review; remediate issues
Create ESPHome configuration and record remaining safety assumptions
Firmware Getting Started
esp32-pump-controller.yaml. Substitute secrets and encryption/API keys using the ESPHome dashboard.Board Bring-Up Plan
FCC CE Technical Construction File
Table
| Function | ESP32 pin | Schematic net | Connected hardware |
|---|---|---|---|
| Relay command | GPIO4 | RELAY_CTRL_GPIO4 | R3 pull-down and R4/Q1 relay driver |
| Boot/download | GPIO9 | ESP_BOOT_GPIO9 | SW2 and J4 pin 5 |
| UART TX | TXD | UART0_TX | J4 pin 3 |
| UART RX | RXD | UART0_RX | J4 pin 4 |
| Reset/enable | EN | ESP_EN_RESET | R1, C5, SW1, J4 pin 6 |
| Boot strap | GPIO2 | ESP_GPIO2_STRAP_HIGH | R2 10 kΩ pull-up |
| Supply | 3V3 | 3V3_SELV | U1 output |
| Ground | GND/EP pads | GND_SELV | Isolated secondary ground |
esp32-pump-controller.yaml. Substitute secrets and encryption/API keys using the ESPHome dashboard.Yaml
esphome: name: esp32-pump-controller friendly_name: Water Pump Controller on_boot: priority: 800 then: - switch.turn_off: pump_auto esp32: board: esp32-c3-devkitm-1 variant: esp32c3 framework: type: arduino logger: baud_rate: 115200 api: reboot_timeout: 0s encryption: key: !secret pump_api_encryption_key ota: - platform: esphome password: !secret pump_ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password reboot_timeout: 0s ap: ssid: "Pump Controller Fallback" password: !secret pump_fallback_password captive_portal: switch: - platform: gpio id: pump_auto name: "Pump Automatic Control" pin: number: GPIO4 mode: output: true pulldown: true inverted: false restore_mode: ALWAYS_OFF on_turn_on: - logger.log: "Automatic contactor command ON" on_turn_off: - logger.log: "Automatic contactor command OFF" binary_sensor: - platform: status name: "Pump Controller Online" sensor: - platform: wifi_signal name: "Pump Controller WiFi Signal" update_interval: 60s button: - platform: restart name: "Restart Pump Controller"
esphome run esp32-pump-controller.yaml.Platform
Pin Mapping
ESPHome Configuration
Control Behavior
Build and Flash
Safety Constraint