BlueDot BMA400 Ultra-Low Power Acceleration Sensor


The BMA400 is an ultra-low power acceleration sensor from Bosch Sensortec, with a maximum current consumption of 14 µA. The output data rate ranges from 12.5 Hz to 800 Hz and the measurement range varies from ±2 g up to ±16 g. The BMA400 senses tilt, orientation, tab/double tab and enables step counting. 


Here are the board's main features:

  • High Output Data Rate. Even with its ultra-low power consumption the BMA400 enables a very high output data rate of up to 800 Hz.
  • 3.3 V and 5 V Power Supply. The on-board voltage regulator accepts anything from 2.6 V to 5.5 V to supply the BMA400 sensor with a constant voltage of 1.8V. 
  • I2C Communication. The sensor communicates through the I2C protocol using the addresses 0x14 and 0x15 (default). 
  • Data Transfer with both 5 V and 3.3 V devices. While devices like the Arduino Uno interpret a 5 V signal as a logic HIGH, the BMA400 uses 1.8 V as a logic HIGH. The on-board logic level converter translates the 5 V signals into 1.8 V signals and vice-versa.
Get your BlueDot BME280 Board at Amazon!

Technical Data

Technical Data from BME280 Sensor


The first step with the BMA400 Accelerometer Sensor is to solder the 8 pin header that comes along with the board. The easiest way to solder the board is to insert the header into a breadboard (long pins down) and solder the short pins to the board.

Assembly: Breakout Board with header pin
Assembly: Insert header pin into breadboard
Assembly: Solder BlueDot Board to header pin

Connecting via I2C

Connecting the BMA400 on the I2C bus is very easy. The first step is to connect the board to the power supply.

  • VCC Pin. Connect the VCC pin from the board to either 5V or 3.3V output from your Arduino. 
  • GND Pin. Connect the GND pin from the board to the GND from the Arduino.

Great! Now we need to connect the sensor to the I2C bus. The I2C communication uses basically two wires. The clock signal is generated by the Arduino and transferred to the sensor through the SCL line. The Arduino can send commands to the sensor using the SDA line. Just as well, all data from the sensor goes back to the Arduino through the SDA line. Because of that, the SDA line is bidirectional.

  • SDA Pin. Connect the SDA pin from the board to the SDA line on the Arduino. This corresponds to the pin A4 on the Arduino Uno.
  • SCL Pin. Connect the SCL pin from the board to the SCL line on your Arduino. This corresponds to the pin A5 on the Arduino Uno.
  • SDO Pin.  Here we have two options. Leave the SDO pin unconnected to use the default I2C address (0x15). Instead we can connect the SDO pin to GND in order to use the alternative I2C address (0x14).
  • INT1 Pin. You can leave it unconnected.
  • INT2 Pin. You can leave it unconnected.
  • 1V8 Pin. This is the output from the voltage regulator. You can pull up to 100 mA from this output. Otherwise just leave it unconnected.
I2C Wiring for BlueDot BME280 Board

Installing Arduino Library

The easiest way to start using your BME400 sensor is to download and install the BlueDot BMA400 Library for Arduino. Just open the Arduino IDE and go to Sketch > Include Library > Manage Libraries... and search for the BlueDot BMA400 Library on the Library Manager.

Arduino IDE: Opening Library Manager
Arduino IDE: Installing BlueDot BME280 library

Alternatively, you can download the latest version of the library from their Github repository.

xkcd: commented

Upload Example-Sketch

After installing the library we can open an example sketch. Just go to File > Examples > BMA400 and open the sketch BlueDot_BMA400_Test.

Arduino IDE: Uploading sketch example for BME280


No changes are needed to run the sketch. Please note that the baud rate is set to 115200 per default.

Get your BlueDot BME280 Board at Amazon!

xkcd: degrees


Schematics for BlueDot BME280 Board


Get your BlueDot BME280 Board at Amazon!

xkcd: lightsaber