LSM303D 6DoF Motion Sensor Breakout

by Pimoroni

This 6 Degrees of Freedom Motion Sensor Breakout can detect acceleration in three axes - X, Y, and Z - as well as three axes of magnetic heading. It's ideal for building into robots, rockets, and rovers, or anywhere else where you want to measure motion accurately. It's compatible with Raspberry Pi or Arduino.

The LSM303D 6DoF Breakout has an I2C interface and is 3.3V or 5V compatible. Like our other Pimoroni breakouts, we've designed it so that you can solder a piece of right-angle header onto it and then pop it straight onto the bottom left 5 pins on your Raspberry Pi's GPIO header (pins 1, 3, 5, 7, 9).

It's also compatible with our fancy new Breakout Garden, where using breakouts is as easy as just popping it into one of the six slots and starting to grow your project, create, and code.

Features

  • LSM303D 6DoF Motion Sensor
  • ±2/±4/±8/±12 gauss magnetic scale
  • ±2/±4/±6/±8/±16 g linear acceleration
  • 16 bit data output
  • 3.3V or 5V compatible
  • I2C interface, with address select via ADDR cuttable trace (0x1D or 0x1E)
  • Reverse polarity protection
  • Raspberry Pi-compatible pinout (pins 1, 3, 5, 7, 9)
  • Compatible with Raspberry Pi 3B+, 3, 2, B+, A+, Zero, and Zero W
  • Python library
  • Datasheet

Kit includes

  • LSM303D 6DoF Motion Sensor Breakout
  • 1x5 male header
  • 1x5 female right angle header

Software

We've put together a Python library that you can use to read data from your LSM303D 6DoF Breakout, and an easy one-line installer to install everything.

Notes

  • The trace between the solder pads (marked ADDR) can be cut (carefully with a craft knife) to change the I2C address from the default of 0x1D to 0x1E, meaning that you can use up to two sensors on the same Raspberry Pi or Arduino. If cut, the pads can be bridged again by soldering to reset the address to 0x1D.
  • Dimensions: 19x19x3mm

15 customer reviews

4 years ago
the extra temp sensor doesn't appear to give valid readings, but the magnetic sensor seems ok. I have two connected to my robot, one on the base and one on the head, but the angles don't match. I saw a comment about floating pin when the address pad is cut. is that still the case?. This sensor is fast and once I wrote a lib for the mag part gives a compass of moderate accuracy. probably needs more work on my lib, but the python lib provided gives the gauss values and is easy enough to use.
by Tim about LSM303D 6DoF Motion Sensor Breakout via REVIEWS.io
5 years ago
Accelerometer works well and fairly consistently for detecting orientation; I’ve not used it for actual movement sensing just the “which direction is gravity pulling me?” Compass is not great; it’s moderately accurate around North but then is wildly off for most of the rest of it. East claims to be about 60° not 90, South is about 110° not 180, and then on the West trip back to North it gallops to make up for lost time. Depends what you want to use it for; I’m wanting to align a telescope to North so actually it’s not so bad, but if you wanted to use it for other directions you’d probably have to do some calibration and write out some lookup tables for your code to correct the output with.
by Anonymous about LSM303D 6DoF Motion Sensor Breakout via REVIEWS.io
5 years ago
Accelerometer works well and fairly consistently for detecting orientation; I’ve not used it for actual movement sensing just the “which direction is gravity pulling me?” Compass is not great; it’s moderately accurate around North but then is wildly off for most of the rest of it. East claims to be about 60° not 90, South is about 110° not 180, and then on the West trip back to North it gallops to make up for lost time. Depends what you want to use it for; I’m wanting to align a telescope to North so actually it’s not so bad, but if you wanted to use it for other directions you’d probably have to do some calibration and write out some lookup tables for your code to correct the output with.
by Anonymous about LSM303D 6DoF Motion Sensor Breakout via REVIEWS.io
6 years ago
Great sensor - but the address pin when cut appears to be floating and not tied to ground as it should be according to the datasheet. This means that it can't be run reliably on the 0x1E address without adding a pull-down resistor to ground from the address pad, or pin 7 on the chip.
by Sam about LSM303D 6DoF Motion Sensor Breakout via REVIEWS.io
6 years ago
Great little board but beware!! I was trying to hook up two of these breakouts on the same i2c bus using the two different addresses and they would not operate together. It turns out that the address pin SA0 (pin 7) on the LSM303D chip is left floating on this board when the track is cut to change the address to 0x1E. So if you connect the two devices the same i2c bus, the address pin can float up to a high value and reverts to 0x1D. I have had to solder a 4k7 pull-down resistor to ground on the right-hand side of the two address pads. This solved the issue.
by Sam about LSM303D 6DoF Motion Sensor Breakout via REVIEWS.io