LSM303DLHC 3D Compass and Accelerometer Carrier with Voltage Regulator

SKU: POLOLU-2124 Brand: Pololu

Retired Product

Search for an alternative
This product has been retired. It is no longer available, but this page has been kept for reference.

Clearance: This board is being replaced by the newer LSM303D carrier, which offers several improvements over this product, including a wider magnetic sensing range and the option of using an SPI interface rather than I²C. The LSM303D carrier is not pin-compatible with earlier LSM303 carriers like the LSM303DLHC and LSM303DLM.

Overview

This board is a compact (0.5″ × 0.8″) breakout board for ST’s LSM303DLHC 3-axis accelerometer and 3-axis magnetometer; Pololu therefore recommend careful reading of the LSM303DLHC datasheet (629k pdf) before using this product. The LSM303DLHC is a great IC, but its small package makes it difficult for the typical student or hobbyist to use. It also operates at voltages below 3.6 V, which can make interfacing difficult for microcontrollers operating at 5 V. This carrier board addresses these issues by incorporating additional electronics, including a 3.3 V voltage regulator and level-shifting circuits, while keeping the overall size as compact as possible. The board ships fully populated with its SMD components, including the LSM303DLHC, as shown in the product picture.

Compared to the LSM303DLH and LSM303DLM used on Pololu's original compass and accelerometer carrier boards, the LSM303DLHC features improved magnetic sensing resolution and a wider acceleration measurement range (±2g to ±16g). This LSM303DLHC carrier is 0.1″ shorter than the earlier boards while remaining pin-compatible, although changes in I²C addresses and configuration registers mean that code written to interface with an LSM303DLH or LSM303DLM might need to be modified to work with an LSM303DLHC.

The LSM303DLHC has many configurable options, including dynamically selectable sensitivities for the accelerometer and magnetometer, a choice of output data rates, and two independently-programmable external inertial interrupt pins. The magnetometer and accelerometer can be individually turned on and off to save power. The six independent magnetic and acceleration readings (sometimes called 6DOF) are available through an I²C/TWI interface and can be used for many applications, including making a tilt-compensated compass that can be used to determine headings regardless of how the board is inclined (ST provides an application note (1MB pdf) that explains the details of making one).

The carrier board includes a low-dropout linear voltage regulator that provides the 3.3 V required by the LSM303, which allows the sensor to be powered from a 2.5–5.5 V supply. The regulator output is available on the VDD pin and can supply almost 150 mA to external devices. The breakout board also includes a circuit that shifts the I²C clock and data lines to the same logic voltage level as the supplied VIN, making it simple to interface the board with 5 V systems, and the board’s 0.1″ pin spacing makes it easy to use with standard solderless breadboards and 0.1″ perfboards.

For sensor fusion applications, Pololu's MinIMU-9 v2 and AltIMU-10 inertial measurement units combine the LSM303DLHC with an L3GD20 3-axis gyro on a single board, providing nine independent readings that can be used to calculate an absolute orientation. The AltIMU-10 also includes an LPS331AP pressure sensor that can be used to calculate altitude.

Specifications

  • Dimensions: 0.5″ × 0.8″ × 0.1″ (13 × 20 × 3 mm)
  • Weight without header pins: 0.6 g (0.02 oz)
  • Operating voltage: 2.5 to 5.5 V
  • Supply current: 10 mA
  • Output format (I²C):
    • Accelerometer: one 12-bit reading (left-justified) per axis
    • Magnetometer: one 12-bit reading (right-justified) per axis
  • Sensitivity range (configurable):
    • Accelerometer: ±2, ±4, ±8, or ±16 g
    • Magnetometer: ±1.3, ±1.9, ±2.5, ±4.0, ±4.7, ±5.6, or ±8.1 gauss

Included components

An 8×1 strip of 0.1″ header pins and an 8×1 strip of 0.1″ right-angle header pins are included, as shown in the picture below. You can solder the header strip of your choice to the board for use with custom cables or solderless breadboards, or you can solder wires directly to the board itself for more compact installations.

Using the LSM303DLHC

Connections

A minimum of four connections are necessary to use the LSM303DLHC: VIN, GND, SCL, and SDA. VIN should be connected to a 2.5 V to 5.5 V source, GND to 0 volts, and SCL and SDA should be connected to an I²C bus operating at the same logic level as VIN. (Alternatively, if you are using the board with a 3.3 V system, you can leave VIN disconnected and bypass the built-in regulator by connecting 3.3 V directly to VDD.)

SCL and SDA are connected to built-in level-shifters that make them safe to use at voltages over 3.3 V. The remaining pins are not connected to level-shifters on the board and are not 5V-tolerant, but Pololu's 4-channel bidirectional logic level shifter can be used externally with those pins to achieve the same effect.

LSM303DLHC 3D compass and accelerometer carrier with voltage regulators, labeled top view.
LSM303DLHC 3D compass and accelerometer carrier in a breadboard.

Pinout

PIN Description
VDD 3.3 V regulator output or low-voltage logic power supply, depending on VIN. When VIN is supplied and greater than 3.3 V, VDD is a regulated 3.3 V output that can supply up to approximately 150 mA to external components. Alternatively, when interfacing with a 2.5–3.3 V system, VIN can be left disconnected and power can be supplied directly to VDD. Never supply voltage to VDD when VIN is connected, and never supply more than 3.6 V to VDD.
VIN This is the main 2.5–5.5 V power supply connection. The SCL and SDA level shifters pull the I²C bus high bits up to this level.
GND The ground (0 V) connection for your power supply. Your I²C control source must also share a common ground with this board.
SCL Level-shifted I²C clock line: HIGH is VIN, LOW is 0 V
SDA Level-shifted I²C data line: HIGH is VIN, LOW is 0 V
DRDY Magnetometer data ready indicator, a 3.3V-logic-level output. HIGH (3.3 V) indicates magnetometer data can be read. LOW (0 V) indicates the magnetometer is writing new data to the data registers. This output is not level-shifted.
INT1 Inertial interrupt 1, a 3.3V-logic-level output. This output is not level-shifted.
INT2 Inertial interrupt 2, a 3.3V-logic-level output. This output is not level-shifted.

Schematic Diagram

The above schematic shows the additional components the carrier board incorporates to make the LSM303 easier to use, including the voltage regulator that allows the board to be powered from a single 2.5–5.5 V supply and the level-shifter circuit that allows for I²C communication at the same logic voltage level as VIN.

I²C Communication

The LSM303DLHC readings can be queried and the device can be configured through the I²C bus. The module acts as two chained I²C slave devices, with the accelerometer and magnetometer clock and data lines tied together to the same I²C bus to ease communication. Additionally, level shifters on the I²C clock (SCL) and data lines (SDA) enable I²C communication with microcontrollers operating at the same voltage as VIN (2.5–5.5V). A detailed explanation of the protocol can be found in the LSM303DLHC datasheet (629k pdf), and more detailed information about I²C in general can be found in NXP’s I²C-bus specification (371k pdf).

The accelerometer and the magnetometer have separate 7-bit slave addresses on the I²C bus. The magnetometer’s slave address is fixed to 0011110b and the accelerometer’s slave address is fixed to 0011001b.

In Pololu's tests of the board, Pololu were able to communicate with the chip at clock frequencies up to 400 kHz; higher frequencies might work but were not tested. The chip itself and carrier board do not meet of some requirements to make the device compliant with I²C fast-mode. It is missing 50 ns spike suppression on the clock and data lines, and additional pull-ups on the clock and data lines might also be necessary to achieve compliant signal timing characteristics.

Sample Code

  • Arduino/A-Star: Pololu have written a basic Arduino library for this LSM303 carrier board that makes it easy to interface this sensor with an Arduino or Arduino-compatible board like an A-Star. The library makes it simple to read the raw accelerometer and magnetometer data, and it has a function for computing the tilt-compensated heading for those looking to use this sensor as a tilt-compensated compass.
  • mbed: There is a library for using the similar LSM303DLH with the ARM mbed development board. This library was not written and is not maintained by Pololu, and it needs to be modified slightly to work with the LSM303DLHC.

Protocol Hints

The datasheet provides all the information you need to use this sensor, but picking out the important details can take some time. Here are some pointers for communicating with and configuring the LSM303DLHC that Pololu hope will get you up and running a little bit faster:

  • The magnetometer and accelerometer are off by default. You have to turn them on by setting the correct configuration registers.
  • The magnetometer will not update its data until all 6 data bytes have been read during a single I²C transfer. All the bytes can be read in the same transfer using the magnetometer’s automatic subaddress updating feature (this feature is enabled by default).
  • The accelerometer also has an automatic subaddress updating feature, if you assert the most significant bit of the subaddress. The accelerometer does not require you to read all of the output bytes before updating by default.
  • The accelerometer and magnetometer both output readings in a 16-bit format (obtained by combining the values in two 8-bit registers for each axis), but they contain a maximum of 12 bits of precision. For the accelerometer, at least the lowest 4 bits of the output values are always 0, and for the magnetometer, the highest 4 bits of the output values are always 0.
  • The accelerometer gives low-resolution 10-bit readings by default (the lowest 6 bits of the output are always 0). To get the full 12-bit resolution, you must set the HR (high resolution) bit in the CTRL_REG4_A register.
  • The accelerometer and magnetometer combined in this IC originate from different manufacturers, so there are fairly significant differences in their features, functionality, and interfaces.

This product is listed in:

Retired

Product Comments

Exact shipping can be calculated on the view cart page (no login required).

Products that weigh more than 0.5 KG may cost more than what's shown (for example, test equipment, machines, >500mL liquids, etc).

We deliver Australia-wide with these options (depends on the final destination - you can get a quote on the view cart page):

  • $3+ for Stamped Mail (typically 10+ business days, not tracked, only available on selected small items)
  • $6+ for Standard Post (typically 6+ business days, tracked)
  • $10+ for Express Post (typically 2+ business days, tracked)
  • Pickup - Free! Only available to customers who live in the Newcastle region (must order online and only pickup after we email to notify you the order is ready). Orders placed after 2PM may not be ready until the following business day.

Non-metro addresses in WA, NT, SA & TAS can take 2+ days in addition to the above information.

Some batteries (such as LiPo) can't be shipped by Air. During checkout, Express Post and International Methods will not be an option if you have that type of battery in your shopping cart.

International Orders - the following rates are for New Zealand and will vary for other countries:

  • $11+ for Pack and Track (3+ days, tracked)
  • $16+ for Express International (2-5 days, tracked)

If you order lots of gear, the postage amount will increase based on the weight of your order.

Our physical address (here's a PDF which includes other key business details):

Unit 18, 132 Garden Grove Parade
Adamstown
NSW, 2289
Australia

Take a look at our customer service page if you have other questions such as "do we do purchase orders" (yes!) or "are prices GST inclusive" (yes they are!). We're here to help - get in touch with us to talk shop.

Have a product question? We're here to help!

Write Your Own Review

Guides

The Maker Revolution

The Maker Revolution celebrates the creation of new devices and the modification of existing ones - ...
The Maker Revolution celebrates the creation of new devices and the modification of existing ones - ...

Projects

Accurate IoT Clock With ESP8266

Being punctual is important. Hence accurate time is required. Clocks tend to miss out when it comes...
Being punctual is important. Hence accurate time is required. Clocks tend to miss out when it comes...

Days2Bin: Pico Powered Bin Reminder

Our recycle bin is collected fortnightly, but I can never remember which week, and the printed cale...
Our recycle bin is collected fortnightly, but I can never remember which week, and the printed cale...

Raspberry Pi Video Looper Display Installation | Overshare Video Festival

IntroductionA suspended ceiling display of forty repurposed screens and displays, each screening cr...
IntroductionA suspended ceiling display of forty repurposed screens and displays, each screening cr...
Feedback

Please continue if you would like to leave feedback for any of these topics:

  • Website features/issues
  • Content errors/improvements
  • Missing products/categories
  • Product assignments to categories
  • Search results relevance

For all other inquiries (orders status, stock levels, etc), please contact our support team for quick assistance.

Note: click continue and a draft email will be opened to edit. If you don't have an email client on your device, then send a message via the chat icon on the bottom left of our website.

Makers love reviews as much as you do, please follow this link to review the products you have purchased.