Project Kickoff


Worked for 3 mins 37 sec
3/4 Run connectivity and ERC review; remediate issues

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

Thought for 7 sec
Reading schematic details.
Thought for 10 sec — Assessing connectivity issues
Completed 13 design checks — found 86 issues.
Thought for 13 sec — Considering executor review
Thought for 9 sec — Creating documentation while reviewing
Referenced guidance.
Thought for 47 sec — Creating firmware documentation
Updating 3 project docs.
Thought for 8 sec
Awaiting 1 background task
Created 3 project docs

Firmware Getting Started

View Document

Firmware Getting Started Platform
  • MCU: ESP32-C3-WROOM-02-N4 (U2)
  • Framework: ESPHome
  • Home Assistant integration: native ESPHome API
  • Relay output: GPIO4, active high
  • Hardware default: OFF via R3 100 kΩ pull-down and Q1 low-side driver
Pin Mapping ESPHome Configuration
Save as esp32-pump-controller.yaml. Substitute secrets and encryption/API keys using the ESPHome dashboard.
Control Behavior
  • After power-up or reset, the automatic relay output is OFF.
  • Wi-Fi or Home Assistant loss does not energize the relay and does not reboot the controller.
  • The external BTicino switch at J3 is not read by firmware. It directly bypasses K1's NO contact and can force the external contactor coil ON.
  • Home Assistant cannot force the pump OFF while the manual switch is ON.

Board Bring-Up Plan

View Document

Board Bring-Up Plan Prerequisites and Safety
  • Equipment: multimeter, current-limited isolated 5 V bench supply, 3.3 V USB-UART adapter, oscilloscope if available.
  • First tests must be performed with all mains wiring disconnected.
  • Do not apply 230 VAC until the PCB enclosure, clearances, terminals, contactor, fuse/breaker, PE bonding, and wiring have been inspected by a qualified person.
  • Never connect the pump directly to the PCB relay.
1. Visual Inspection
  • Verify PS1, U1, U2, Q1 and D1 orientation.
  • Verify K1 is the 5 V coil variant.
  • Check separation between CTRL_MAINS_L/CTRL_MAINS_N/contact nets and 5V_SELV/3V3_SELV/GND_SELV.
  • Confirm J5-J9 external representations are not populated on the PCB.
2. Unpowered Continuity 3. SELV Power Test

FCC CE Technical Construction File

View Document

FCC CE Technical Construction File Status
Draft — schematic stage.
Product
Home Assistant/ESPHome water-pump controller using an ESP32-C3-WROOM-02-N4 Wi-Fi module. The controller energizes an external motor-rated contactor; it does not switch pump current directly.
Applicable Regulatory Areas
  • FCC Part 15 intentional radiator requirements for US marketing.
  • CE Radio Equipment Directive (RED) for EU marketing.
  • EMC and electrical safety requirements for a mains-powered controller.
  • Local installation codes for fixed 230 VAC pump equipment.
Wireless Module RF Integration Requirements
  • Preserve the module antenna keepout specified by Espressif on every copper and mechanical layer.
  • Place the antenna at a board edge with no enclosure metal, mains wiring, contacto...
Received notification from "ESP32 Pump Controller Verification" that it finished — picking the work back up.
The schematic is fully wired with 20 nets and independently verified: power, ESP32 support, relay driver, manual override, isolation, and external pump path all pass ERC with no warnings or errors.
Start PCB constraints
Choose enclosure size
Review contactor options
Prepare manufacturing BOM

U2
Firmware Getting Started
Platform
  • MCU: ESP32-C3-WROOM-02-N4 (U2)
  • Framework: ESPHome
  • Home Assistant integration: native ESPHome API
  • Relay output: GPIO4, active high
  • Hardware default: OFF via R3 100 kΩ pull-down and Q1 low-side driver
Pin Mapping

Table


FunctionESP32 pinSchematic netConnected hardware
Relay commandGPIO4RELAY_CTRL_GPIO4R3 pull-down and R4/Q1 relay driver
Boot/downloadGPIO9ESP_BOOT_GPIO9SW2 and J4 pin 5
UART TXTXDUART0_TXJ4 pin 3
UART RXRXDUART0_RXJ4 pin 4
Reset/enableENESP_EN_RESETR1, C5, SW1, J4 pin 6
Boot strapGPIO2ESP_GPIO2_STRAP_HIGHR2 10 kΩ pull-up
Supply3V33V3_SELVU1 output
GroundGND/EP padsGND_SELVIsolated secondary ground
ESPHome Configuration
Save as 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"
Control Behavior
  • After power-up or reset, the automatic relay output is OFF.
  • Wi-Fi or Home Assistant loss does not energize the relay and does not reboot the controller.
  • The external BTicino switch at J3 is not read by firmware. It directly bypasses K1's NO contact and can force the external contactor coil ON.
  • Home Assistant cannot force the pump OFF while the manual switch is ON.
Build and Flash
  1. Install ESPHome or use the Home Assistant ESPHome add-on.
  2. Add the YAML file and required secrets.
  3. Connect a 3.3 V USB-UART adapter to J4: 3V3, GND, adapter RX to UART0_TX, adapter TX to UART0_RX.
  4. Hold BOOT (SW2), pulse RESET (SW1), then release BOOT to enter download mode.
  5. Run esphome run esp32-pump-controller.yaml.
Safety Constraint
Firmware controls only the low-voltage coil of K1. K1 then switches the external 230 VAC contactor coil. Never connect the pump load directly to K1 or the PCB.
  • Platform

  • Pin Mapping

  • ESPHome Configuration

  • Control Behavior

  • Build and Flash

  • Safety Constraint