MCP4725 Output
==============

.. seo::
    :description: Instructions for setting up MCP4725 outputs on the ESP.
    :image: mcp4725.jpg

The MCP4725 output component allows to use `12bit external DAC
<https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog-converter-hookup-guide/all>`__
in order to have analog output(s) on any board by using I2C. Devices default address is ``0x60``
and configurable alternative is ``0x61``.

.. code-block:: yaml

    # Example configuration entry

    # Set a global i2c connection
    i2c:
      sda: 21
      scl: 22
      scan: true

    # Set the output with default (address: 0x60 / global i2c)
    output:
      - platform: mcp4725
        id: dac_output

    on_...:
      then:
        - output.set_level:
            id: dac_output
            level: 100%


Configuration variables:
------------------------

- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
- **address** (*Optional*, int): Manually specify the I2C address of
  the DAC. Defaults to ``0x60``.
- All other options from :ref:`Output <config-output>`.

Usage with voltages higher than 3.3v
------------------------------------

In order to drive analog modules with voltages higher than 3.3v, use a `TTL bi-directionnal level
converter <https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide/all>`__

Be careful about what converter you use, some of of them have channels labeled with `RX` and `TX`,
in this case only `TX` channels are bi-directional (so you must use 2 `TX` channels for I2C to work).

See Also
--------

- :doc:`/components/output/esp32_dac`
- :doc:`/components/output/esp8266_pwm`
- :ghedit:`Edit`
