BP5758D LED driver
==================

.. seo::
    :description: Instructions for setting up BP5758D LED drivers in ESPHome.
    :keywords: BP5758D, DoHome G25 Globe bulb

.. _bp5758d-component:

Component/Hub
-------------

The BP5758D component represents a BP5758D LED driver chain in
ESPHome. Communication is done with two GPIO pins (DATA and CLK).

To use the channels of this components, you first need to setup the
global ``bp5758d`` hub and give it an id, and then define the
:ref:`individual output channels <bp5758d-output>`.
It is used in some smart light bulbs:

- DoHome G25 Globe bulb

.. code-block:: yaml

    # Example configuration entry
    bp5758d:
      data_pin: GPIO3
      clock_pin: GPIO5


Configuration variables:
************************

-  **data_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin used for DATA.
-  **clock_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The pin which CLK is
   connected to.
-  **id** (*Optional*, :ref:`config-id`): The id to use for
   this ``bp5758d`` component. Use this if you have multiple BP5758D chains
   connected at the same time.

.. note::

    The LED driver may be able to tolerate more power than
    the bulb is designed to handle, start with lower values
    and increase slowly, comparing to a stock bulb to verify
    what is safe for your model.

.. _bp5758d-output:

Output
------

The BP5758D output component exposes a BP5758D channel of a global
:ref:`bp5758d-component` as a float output.

.. code-block:: yaml

    # Example configuration entry
    output:
      - platform: bp5758d
        id: output_red
        channel: 2 # Valid values 1-5 to match OUT1-OUT5
        current: 10 # In mA, valid values 0-90, default 10

Configuration variables:
************************

- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
- **channel** (**Required**, int): Chose the channel of the BP5758D chain of
  this output component. Valid values are 1-5
  **current** (*Optional*, int): Current in mA, valid values are 0-90, default 10.
- **bp5758d_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the
  :ref:`bp5758d-component`.
  Use this if you have multiple BP5758D chains you want to use at the same time.
- All other options from :ref:`Output <config-output>`.

.. note::

    This driver does support enabling of both the color and the white channels
    at the same time, but it is not encourage. Therefore, the :ref:`rgbw_color_interlock`
    should be set to true when using this driver for safest operation.

See Also
--------

- :doc:`/components/output/index`
- :doc:`/components/output/esp8266_pwm`
- :doc:`/components/output/sm2135`
- :doc:`/components/light/rgb`
- :doc:`/components/light/rgbw`
- :doc:`/components/light/rgbww`
- :doc:`/components/power_supply`
- :ghedit:`Edit`
