Triple Axis Magnetometer - MMC5983MA (Qwiic)

Added to your shopping cart

The MMC5983MA is a highly sensitive triple axis magnetometer by MEMSIC. It is capable of sensing down to 0.4mG enabling a heading accuracy of ±0.5°. Output rates of 1000Hz, ±8G FSR, and 18-bit resolution make the MMC5983MA a phenomenal magnetic sensor for electronic compass applications.

Saturation is a problem for all mag sensors. The MMC5983MA has special built-in degaussing circuitry to clear any residual magnetization.

We've got a feature complete Arduino library supporting I2C and SPI. Just search SparkFun MMA5983MA in the library manager and get measuring within minutes.

We do not plan to regularly produce SparkX products so get them while they’re hot!

The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.

Experimental Product: SparkX products are rapidly produced to bring you the most cutting edge technology as it becomes available. These products are tested but come with no guarantees. Live technical support is not available for SparkX products. Head on over to our forum for support or to ask a question.
  • ±8G FSR
  • 0.25mG/0.0625mG per LSB resolution at 16bit/18bit operation mode
  • 0.4mG total RMS noise
  • Enables heading accuracy of ±0.5º
  • Max data rate of 1000Hz
  • On-chip sensitivity compensation
  • On-chip temperature sensor
  • Data_Ready Interrupt
  • I2C and SPI interfaces
  • Automotive AEC-Q100 qualified


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Is there any documentation for the hardware interface to this MMC5983MA magnetometer? I notice there are some jumper pads for the interface protocol. Any thing on that?

Customer Reviews

2 out of 5

Based on 2 ratings:

Currently viewing all customer reviews.

No support

Asked a question on the product page with no response. Keep trying to join forum but get no confirmation email. My question is whether or not there's a hardware/software tutorial somewhere for this for basic interfacing/reading.

can't get SPI to work

I purchased this MMC5983MA to be used as a compass so that I could use the SPI interface instead of the very unreliable Qwiic bus on an Arduino DUE, especially unreliable when there is more than one device on the Qwiic bus. I first got the DUE SPI interface working with a Sparkfun ZED-F9P GPS or with a NEO-M9N and they both work great on the SPI bus. When I disconnected the GPS and then connect the MMC, I cannot get it to work. I cut the SPI_CS trace to enable SPI comms as well as the I2C pull up resistors and setup a CS line on the DUE pin 6. I used the Sparkfun_MMC5983MA_Arduino_Library to get basic functionality working and it never gets past the myMag.begin(csPin) statement which just tries to see if the device is responding. I can tell that the device is being chip selected with a multimeter, but I don't have a scope to debug the comm bus further. I have tried everything I can think of and cannot get it to respond. Sparkfun provides very little guidance on the SPI bus setup for this device. The basic information provided is all about the Qwiic bus which as I stated previously, is very unreliable as it randomly hangs the bus which hangs the sketch. This is a long standing IIC problem that no one seems to be addressing. There was a recent "Wire" library update to provide a IIC bus timeout to circumvent this known problem but there is no implementation of this for the DUE. My project is for a GPS guided vehicle on the water, so reliability is a must!