Overview

Driver for a Honeywell HMC5883L magnetometer.

Resources

All correct at time of writing, but as always, manufacturers love to move things around on their website.

Web page

http://www.magneticsensors.com/magnetic-sensor-products.php
http://www.magneticsensors.com/three-axis-digital-compass.php

Datasheet

http://www51.honeywell.com/aero/common/documents/myaerospacecatalog-documents/Defense_Brochures-documents/HMC5883L_3-Axis_Digital_Compass_IC.pdf

Test hardware

This code has been tested using a SolderCore CoreMag module:

http://soldercore.com/products/sensecore/coremag/

This was plugged into a SenseCore:

http://soldercore.com/products/sensecore/

And finally installed on a SolderCore:

http://soldercore.com/products/soldercore/

Specification
Parameter Supported settings
Bandwidth (Hz) 75 (continuous), 160 (single)
Range (µT) ±800
Communication up to 400 kHz (I2C)

API Summary

Macros
HMC5883L_I2C_ADDR HMC5883L 8-bit I2C address
Functions
hmc5883l_initialize_i2c Initialize HMC5883L on I2C bus
hmc5883l_initialize_transport Initialize sensor on an existing transport