prefixkit Ask an engineerAsk Support RU

ESPHome devices

NeatoFx Audio 50: ESPHome

NeatoFx Audio 50 (other devices, ESP32): GPIO pinout and a starter ESPHome config with relays, buttons, LED. Local Home Assistant control with no cloud.

Type
Other devices
Chip
ESP32
Region standard
GLOBAL

Pinout

PinFunction
GPIO17DFPlayer Mini UART TX (→ DFPlayer RX)
GPIO16DFPlayer Mini UART RX (← DFPlayer TX)
GPIO26Relay 1 output
GPIO27Relay 2 output
GPIO33FET 1 — SpotLight 1 (LEDC PWM)
GPIO25FET 2 — SpotLight 2 (LEDC PWM)
GPIO0Amplifier wake (active-high)
GPIO5Amplifier unmute (active-low)
GPIO22Heartbeat LED output
GPIO23Status LED (active-low)
GPIO4RF TX power enable
GPIO34Wired input 1 (active-low)
GPIO39Wired input 2 (active-low)
GPIO32Push button (INPUT_PULLUP)
GPIO36RF remote button A
GPIO2RF remote button B
GPIO15RF remote button C
GPIO35RF remote button D

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: neatofx-audio-50

esphome:
  name: ${name}
  friendly_name: "NeatoFx Audio 50"

esp32:
  board: esp32dev

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:

switch:
  - platform: gpio
    pin: GPIO26
    id: relay1
    name: "Relay 1"  # Relay 1 output
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    pin: GPIO27
    id: relay2
    name: "Relay 2"  # Relay 2 output
    restore_mode: RESTORE_DEFAULT_OFF

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO32
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 1"  # Push button (INPUT_PULLUP)
    on_press:
      - switch.toggle: relay1
  - platform: gpio
    pin:
      number: GPIO36
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 2"  # RF remote button A
    on_press:
      - switch.toggle: relay2
  - platform: gpio
    pin:
      number: GPIO2
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 3"  # RF remote button B
    on_press:
      - switch.toggle: relay1
  - platform: gpio
    pin:
      number: GPIO15
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 4"  # RF remote button C
    on_press:
      - switch.toggle: relay1
  - platform: gpio
    pin:
      number: GPIO35
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 5"  # RF remote button D
    on_press:
      - switch.toggle: relay1

status_led:
  pin:
    number: GPIO33
    inverted: false  # FET 1 — SpotLight 1 (LEDC PWM)

# Other pins from the pinout:
#   GPIO25: FET 2 — SpotLight 2 (LEDC PWM)
#   GPIO22: Heartbeat LED output
#   GPIO23: Status LED (active-low)
#   GPIO17: DFPlayer Mini UART TX (→ DFPlayer RX)
#   GPIO16: DFPlayer Mini UART RX (← DFPlayer TX)
#   GPIO0: Amplifier wake (active-high)
#   GPIO5: Amplifier unmute (active-low)
#   GPIO4: RF TX power enable
#   GPIO34: Wired input 1 (active-low)
#   GPIO39: Wired input 2 (active-low)

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?