16 bit accelerometer with Bi2C interface

The Bi2C – ACC (16 bit accelerometer) is our first product in our Bi2C series I2C expansion modules. You can read more about the Bi2C concept here.

This modules is based around the Industry standard Memsic MC3419 accelerometer.

We’ve also used this accelerometer on our Challenger RP2040 WiFi/BLE board.

The MC3419 is a small form factor, integrated digital output 3-axis accelerometer with a feature set optimized for cell phones and consumer product motion sensing. Applications include user interface control, gaming motion input, electronic compass tilt compensation for cell phones, game controllers, remote controls and portable media products. The MC3419 features a dedicated motion block which implements algorithms to support “any motion” and shake detection, tilt/flip and tilt 35 position detection. Low power consumption and small size are inherent in the monolithic fabrication approach, where the MEMS accelerometer is integrated in a single-chip with the electronics integrated circuit. In the MC3419 the internal sample rate can be set from 0.5 to 2000 samples / second. The MC3419 supports the reading of sample and event status via polling or interrupts.

Some of its features broken down are:

  • ±2, ±4, ±8, ±12, ±16g range
  • 16-bit single sample resolution
  • 16-bit resolution with FIFO
  • 0.5 to 2000 Hz Output Data Rate
  • 4μA typical Standby current – making it an ideal companion to our Challenger 840 BLE boards
  • Low typical active current
  • I²C interface, up to 1 MHz

This Bi2C module is only 10mm * 12mm and is meant to be mounted with a strong double sided tape or glued into place.

It is shipped with one 5cm long flexible flat cable so that you can plug it straight in to your Challenger board.

The module has true I2C daisy chaining capabilities which means you can connect as many Bi2C modules in one chain as you like. Or at least as many as can reliably work on the same I2C bus.

You also have the possibility to fully disable the pull up resistors on the module by cutting the wire links on JP2. There should only be one device in the Bi2C chain that have the pull up resistors enabled. All the other devices must have them disabled.

If you need to connect another Bi2C – ACC device on the same Bi2C bus you also have the possibility to configure the accelerometer to its second I2C address (0x6C). This is done by cutting the wire link on JP1 and creating a solder blobb on the other two pads on the board.

Below is a picture showing a Bi2C – ACC sensor with pull up resistors disabled and its I2C address reconfigured for 0x6C.

16 bit accelerometer module
Module configured for I2C address 0x6C and no pull up resistors.
Weight 0.09 kg
Dimensions 5 × 6.5 × 0.5 cm

We have forked a mCube library and adapted it to work in the standard Arduino environment making it accessible not only to all our boards but also to any Arduino compatible board. This library is available at https://github.com/PontusO/mc34x9_driver. At the moment you need to clone or copy the library into the “libraries” folder of your Arduino directory but we’re working on getting it in to the Arduino library manager. Below is short snippet of code that shows how to create an instance of the driver and how to initialize it.

#include <MC34X9.h>

MC34X9 MC34X9_acc = MC34X9();
#define USE_I2C       1
#define I2C_ADDRESS   0x4C
#define USE_SPI       0

void setup()
  // Init MC34X9 Object
  if (!MC34X9_acc.begin(USE_I2C, I2C_ADDRESS)) {
  // Invalid chip ID
  // Block here
  while (true);

The library has en excellent example on how to use the driver API and I recommend that you study it carefully if you want to use the sensor fully.


There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

You may also like…