ESP8266 Software PWM Output

The ESP8266 Software PWM platform allows you to use a software PWM on the pins GPIO0-GPIO16 on your ESP8266. Note that this is a software PWM, so there can be some flickering during periods of high wifi activity. Hardware PWMs like the one on the ESP32 (see ESP32 LEDC Output) are preferred.

# Example configuration entry
output:
  - platform: esp8266_pwm
    pin: D1
    frequency: 1000 Hz
    id: pwm_output

# Example usage in a light
light:
  - platform: monochromatic
    output: pwm_output
    name: "Kitchen Light"

Configuration variables:

  • pin (Required, Pin Schema): The pin to use PWM on.
  • id (Required, ID): The id to use for this output component.
  • frequency (Optional, frequency): The frequency to run the PWM with. Lower frequencies have more visual artifacts, but can represent much more colors. Defaults to 1000 Hz.
  • All other options from Output.

output.esp8266_pwm.set_frequency Action

This Action allows you to manually change the frequency of an ESP8266 PWM channel at runtime. Use cases include controlling a passive buzzer (for pitch control).

on_...:
  - output.esp8266_pwm.set_frequency:
      id: pwm_output
      frequency: 100Hz

Configuration variables:

  • id (Required, ID): The ID of the PWM output to change.
  • frequency (Required, templatable, float): The frequency to set in hertz.