The MLX90393 3-Axis magnetometer breakout has the following pins:

Power Pins

This breakout board can be run on 3.3V and 5V systems, although only the SCL and SDA lines are 5V safe (other pins like INT will need to be manually level-shifted by you).

  • VIN - This is the input to the 3.3V voltage regulator, which makes it possible to use the 3.3V sensor on 5V systems. It also determines the logic level of the SCL and SDA pins. Connect this to 3.3V on the MCU for 3.3V boards (Adafruit Feathers), or 5.0V for 5V Arduinos (Arduino Uno, etc.).
  • 3VO - This is the OUTPUT of the 3.3V regulator, and can be used to provide 3.3V power to other parts of your project if required (<100mA).
  • GND - Connect this to the GND pin on your development board to make sure they are sharing a common GND connection, or the electrons won't have anywhere to flow!
NOTE: Only SCL and SDA are 5V safe on this board. Using any other pins on a 5V system will require manual level shifting of the pins used (INT, etc.)

Digital Pins

  • SCL - The clock line on the I2C bus. This pin has an internal pullup resistor on the PCB, which is required as part of the I2C spec, meaning you don't need to add one externally yourself.
  • SDA - The data line on the I2C bus. This pin has an internal pullup resistor on the PCB, which is required as part of the I2C spec, meaning you don't need to add one externally yourself.
  • INT - This INT pin can be configured to 'fire' whenever a new data sample is read in single measurement mode, which is what the device boots up to by default in our driver.
  • A0 and A1: These two pins are LOW (0) by default, but if you need to connect multiple MLX90393s to your MCU or resolve an address conflict, you can adjust the logic on these two pins which will change the last two bits of the I2C address that this breakout responds to. Most of the time, you will simply leave these disconnected.

On the top row, you have a few more rarely used specialty pins, though normally you will simply leave these unsoldered and unconnected:

  • CS (AKA SENB) - This is used to set the sensor in I2C or SPI mode, but this breakout only supports I2C so the pin is provided purely for testing purposes unless you want to dig into writing your own SPI driver and making the required changes to the PCB.
  • TR (AKA INT/TRG) - This pin can optionally be setup to fire an interrupt in addition to the INT pin, and is basically a mirror on INT when configured as such.
  • MIS (AKA TRIG) - This is used as MISO on the SPI bus, but SPI isn't supported on this breakout, so it is only provided to testing purposes.
  • G - This is simply an additional GND pin, and can be left unconnected if not required.
This guide was first published on Feb 13, 2019. It was last updated on Feb 13, 2019. This page (Pinout) was last updated on May 27, 2019.