# HMC5883L Module
| Since  | Origin / Contributor  | Maintainer  | Source  |
| :----- | :-------------------- | :---------- | :------ |
| 2016-04-09 | [Jason Schmidlapp](https://github.com/jschmidlapp) | [Jason Schmidlapp](https://github.com/jschmidlapp) | [hmc5883l.c](../../../app/modules/hmc5883l.c)|


This module provides access to the [HMC5883L](https://www.sparkfun.com/products/10530) three axis digital compass.

## hmc5883l.read()
Samples the sensor and returns X,Y and Z data.

#### Syntax
`hmc5883l.read()`

#### Returns
x,y,z measurements (integers)
temperature multiplied with 10 (integer)

#### Example
```lua
local sda, scl = 1, 2
i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
hmc58831.setup()
local x,y,z = hmc5883l.read()
print(string.format("x = %d, y = %d, z = %d", x, y, z))
```

## hmc5883l.init()
Initializes the module and sets the pin configuration.

!!! attention

    This function is deprecated and will be removed in upcoming releases. Use `hmc5883l.setup()` instead.

#### Syntax
`hmc5883l.init(sda, scl)`

#### Parameters
- `sda` data pin
- `scl` clock pin

#### Returns
`nil`

## hmc5883l.setup()
Initializes the module.

#### Syntax
`hmc5883l.setup()`

#### Parameters
None

#### Returns
`nil`
