SparkFun Triple Axis Accelerometer Breakout - H3LIS331DL

The SparkFun H3LIS331DL Triple Axis Accelerometer Breakout is a low-power, high-g accelerometer with I2C and SPI interface options. Though not necessarily good at detecting minute changes, the H3LIS331DL is great for grueling conditions that normal accelerometers aren't suited for. With a shock survivability of 10000g and a handy sleep-to-wake function, the H3LIS331DL breakout makes the perfect board for shock and collision detection as well as impact recognition and logging.

This breakout offers an adjustable output range of 100, 200 or 400g, and an adjustable data rate of 0.5kHz to 1kHz. While normally operating at 2.16V--3.6V, the SparkFun H3LIS331DL Triple Axis Accelerometer Breakout does feature a pretty impressive low-power mode with low-voltage compatible IOs at 1.8V with a power consumption rate of 10μA. Each pin has been broken out into breadboard-friendly 0.1" pins, and we've also added convenient mounting holes that allow you to attach the breakout to whatever ingenious project you can think up.

  • Wide supply voltage, 2.16V to 3.6V
  • Low-voltage compatible IOs, 1.8V
  • Ultra-low power consumption down to 10μA in low-power mode
  • ±100g/±200g/±400g dynamically selectable full scales
  • I2C & SPI digital output interface
  • 16-bit data output
  • Sleep-to-wake function
  • 10000g high-shock survivability

SparkFun Triple Axis Accelerometer Breakout - H3LIS331DL Product Help and Resources

H3LIS331DL Accelerometer Breakout Hookup Guide

December 21, 2017

Hookup guide and library usage details for the triple axis accelerometer H3LIS331DL high-g accelerometer.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


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.

  • Member #1573776 / about 3 years ago / 2

    I really appreciate the breakout/hookup guides you provide. They provide a huge help and enable incorporating your components quickly. Thank you!

    Just a heads up... the library (SparkFun_LIS331_Arduino_Library-master) has some (minor) issues. People using it should review what it is doing and modify as appropriate. Two examples: (1) the current library (as of 2021-01-27) truncates the result to 12 bits instead of giving you the full 16 bits of precision. To get the full 16 bits, you need to edit multiple functions. This code was likely leveraged from some other 12-bit accelerometer. (2) When using I2C, the current library does each (register) byte read as an individual operation; this means to read X, Y, Z six different read I2C wire.begin() sequences are performed (two bytes for each dimension; each byte retrieval is done separately). Extending the library to do multibyte transfers is easy and eliminates much overhead... read the datasheet and you'll see multibyte reads and writes are possible by setting the msb in the address register (which indicates a multibyte read/write operation for I2C); this technique results in one I2C wire.begin() sequence.

    There are likely other minor issues, but once again, starting with the library and code examples is HUGE. Thank you.

    • Member #1668516 / about 3 years ago / 1

      Hello! Thank you for the review. Would you be willing to upload a new github repository and share it here, with the changes you made? I would greatly appreciate it, and it really is a shame that such a capable sensor is being handicapped with 12 bit precision instead of 16 bit, and with extra overhead added.

  • Member #1573776 / about 3 years ago * / 1

    I wish you made this product with a smaller form factor... Looking at the brb file, I bet you could make this board half its current size. Based on the brb file, it looks like you could trim 4mm on one edge and maybe 2mm on the other edge.

Customer Reviews

No reviews yet.