HMC5883L Magnetometer
=====================

.. seo::
    :description: Instructions for setting up HMC5883L IMU compass sensors.
    :image: hmc5883l.jpg
    :keywords: HMC5883L

The ``hmc5883l`` allows you to use your HMC5883L triple-axis magnetometers
(`datasheet <https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf>`__,
`Adafruit`_) with
ESPHome. The :ref:`I²C Bus <i2c>` is
required to be set up in your configuration for this sensor to work.

.. _Adafruit: https://www.adafruit.com/product/1746

.. code-block:: yaml

    # Example configuration entry
    sensor:
      - platform: hmc5883l
        address: 0x68
        field_strength_x:
          name: "HMC5883L Field Strength X"
        field_strength_y:
          name: "HMC5883L Field Strength Y"
        field_strength_z:
          name: "HMC5883L Field Strength Z"
        heading:
          name: "HMC5883L Heading"
        range: 130uT
        update_interval: 60s

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

- **address** (*Optional*, int): Manually specify the i^2c address of the sensor. Defaults to ``0x1E``.
- **field_strength_x** (*Optional*): The field strength in microtesla along the X-Axis. All options from
  :ref:`Sensor <config-sensor>`.
- **field_strength_y** (*Optional*): The field strength in microtesla along the Y-Axis. All options from
  :ref:`Sensor <config-sensor>`.
- **field_strength_z** (*Optional*): The field strength in microtesla along the Z-Axis. All options from
  :ref:`Sensor <config-sensor>`.
- **heading** (*Optional*): The heading of the sensor in degrees. All options from
  :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.

- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.

See Also
--------

- :ref:`sensor-filters`
- :doc:`template`
- :apiref:`hmc5883l/hmc5883l.h`
- `HMC5883L Library <https://github.com/jarzebski/Arduino-HMC5883L>`__ by `Korneliusz Jarzębski <https://github.com/jarzebski>`__
- :ghedit:`Edit`
