Home | Product Categories | Magneto | SEN-10619

Triple Axis Magnetometer Breakout - MAG3110

sku: SEN-10619 RoHS Compliant

Description: Freescale’s MAG3110 is a small, low-power, digital 3-axis magnetometer. The device can be used in conjunction with a 3-axis accelerometer to produce orientation independent accurate compass heading information. It features a standard I2C serial interface output and smart embedded functions. It's also a tiny QFN package which isn't very easy to play with so here is our easy to use breakout board. This board breaks out all of the pins for the MAG3110FCR1 to a standard 0.1" header and also supplies the necessary filtering capacitors so that you can easily use it in your next navigation project.

Features:

  • 1.95V to 3.6V Supply Voltage
  • 7-bit I2C address = 0x0E
  • Full Scale Range ±1000 μT
  • Sensitivity of 0.10 μT

Dimensions: 13.3 x 14.5 mm

Documents:

Pricing

In stock

14.95
13.46
11.96

247 in stock

price
10-99
100+



Add to Wish List


Comments 15 comments

  • Does anyone have any experience to compare this with the Honeywell mags?

    • I don’t have any experience, but: 1.This one can go to a lower voltage: 1.95V versus 2.16V. If you are doing any battery powered application, you can save some power by running this as low as possible.

      1. This one is more sensitive. 0.1µT = 1mG; the other one is 5mG.

      2. There are a lot more in the datasheets, varying from maximum magnetic field to idle current… take a look.

  • So.. can this be used like a compass? ie a xy plane point of reference for orientation.

    • Yes, it’s used exactly like a compass.
      Be warned though, these are sensitive to radio transmissions from stuff like the Xbee, WiFi, and your cellphone.

  • Hi, i bought this mag sensor as i want to use it as a compass, i loaded your code but when i rotate it (parallel to the ground) the values change very little, about 6 degrees.
    I calculated the heading with:
    float heading = atan2(readx(), ready());
    float headingDegrees = heading * 180/PI;
    and i get these values:
    x=3398,y=-5064,z=-769
    heading=146.10.
    what do you think it could be the problem?

    • I tried to use this to calculate heading and i have for a full rotation 5 degrees of difference, between 55 and 60 degree:

      int getHeading(float x, float y, float z){  
        float heading=0;  
        if ((x == 0)&&(y < 0))  
          heading= PI/2.0;  
        if ((x == 0)&&(y > 0))  
          heading=3.0*PI/2.0;  
        if (x < 0)  
          heading = PI - atan(y/x);  
        if ((x > 0)&&(y < 0))  
          heading = -atan(y/x);  
        if ((x > 0)&&(y > 0))  
          heading = 2.0*PI - atan(y/x);  
        return  int(degrees(heading));  
      

      }

      • Hi,

        Your problem is due to calibration. You need to correct the offset values, either by writing to the offset registers of the device (OFF_X_MSB ,etc) or by subtracting the offset from the measurements you get. This is caused by hard iron effects. Freescale has an application note (AN4246, i think) which explains this effect and how to correct it.

        • You can correct the measurements by subtracting an offset from the measurements ( the offset for each axis is (max_measurement + min_measurement)/2 ). This should give you good enough readings. But if you want to be more accurate then you can collect readings while rotating the magnetometer in every direction and fit the measurements to a ellipse. An ellipse is described by the equation x'Ax = 1, where x are your measurements. You need to find, using least squares, the values for the matrix A. After that, you can find the transformation that rotates and scales the ellipse into a circle by taking the Cholesky decomposition of A = L'L. With that, for every measurement x you get, you can get x_corrected = L*(x-offset_vector), and your measurements of the heading will be much more accurate. The only thing that is missing is to add an accelerometer to compensate for tilt

  • Any chance you will start selling this without the breakout board, just the IC?

  • How does this magnetometer compare with http://www.sparkfun.com/products/10530 ? They are both the same price, both use I2C, so why sell both?

  • Also, how sensitive are these? If I had it next to a hard drive would there be a significant distortion?

    • With either this or the HMC5883L there would be distortion is you put it near a magnet or a ferromagnetic material. That is why you need to calibrate the measurements you get from these. Freescale has provided an application note which explains how to correct this effects.

  • Why 3 dimensions? I understand x,y for N/S and E/W, but how would you use the z axis, especially if it’s not tilt compensated?

    • A magnetometer is not necessarily a compass. There are applications where it is useful to know the direction of a magnetic field.