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.
Based on 2 ratings:
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.
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!