prefixkit Ask an engineerAsk Support RU

ESPHome devices

UltraPro WFD3001 3-Way Dimmer Switch: ESPHome

UltraPro WFD3001 3-Way Dimmer Switch (dimmers, BK72XX): GPIO pinout and a starter ESPHome config with relays, buttons, LED. Local Home Assistant control with no cloud.

Type
Dimmers
Chip
BK72XX
Region standard
US

Pinout

PinFunction
P6Reset button (behind wall plate, active LOW; hold 5 s = factory reset)
P7Upper paddle button (active LOW)
P8Lower paddle button (active LOW)
P10UART RX (from secondary dimmer MCU)
P11UART TX (to secondary dimmer MCU)
P24Blue status LED (active HIGH)
ADC33-way companion switch sense (analog voltage divider)

Find it in shops: AliExpress

Links open a search in the shop; some are affiliate links: buying through them costs you nothing extra and supports this site. We do not sell devices or get them from manufacturers.

Starter ESPHome config

Built from the pinout above. Keys and the Wi-Fi password come from secrets.yaml in ESPHome. Check the pins against your hardware revision before flashing: one model can ship with different boards.

substitutions:
  name: ultrapro-wfd3001-3-way-d

esphome:
  name: ${name}
  friendly_name: "UltraPro WFD3001 3-Way Dimmer Switch"

bk72xx:
  board: generic-bk7231n-qfn32-tuya  # BK7231T or BK7231N: check the chip marking

logger:
api:
  encryption:
    key: !secret api_key
ota:
  - platform: esphome
    password: !secret ota_password
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap: {}
captive_portal:

binary_sensor:
  - platform: gpio
    pin:
      number: P6
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 1"  # Reset button (behind wall plate, active LOW; hold 5 s = factory reset)
  - platform: gpio
    pin:
      number: P7
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 2"  # Upper paddle button (active LOW)
  - platform: gpio
    pin:
      number: P8
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 3"  # Lower paddle button (active LOW)

status_led:
  pin:
    number: P24
    inverted: true  # Blue status LED (active HIGH)

# Other pins from the pinout:
#   P10: UART RX (from secondary dimmer MCU)
#   P11: UART TX (to secondary dimmer MCU)
#   ADC3: 3-way companion switch sense (analog voltage divider)

How to flash

  • Most devices are flashed over UART: a 3.3 V USB-TTL adapter to RX, TX, GND and 3V3, holding GPIO0 to ground at power-on (ESP8266/ESP32). Mains power disconnected.
  • Beken (BK72xx) and Realtek chips are flashed with ltchiptool, or with cloudcutter without opening the case if the firmware allows it.
  • Details and board photos: the device page in the ESPHome database.

A config from scratch: ESPHome generator. Which pins are safe: pinout.

Similar devices

Idea?