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, tap/double tap 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 high output data rate of up to 800 Hz.
- 3.3 V and 5 V Power Supply. The onboard voltage regulator accepts anything from 2.6 V to 5.5 V to supply the BMA400 sensor with a constant voltage of 1.8 V.
- I²C Communication. The sensor communicates through the I²C protocol using the addresses 0x14 and 0x15 (default).
- Data Transfer with 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 onboard logic level converter translates the 5 V signals into 1.8 V signals and vice-versa.
Connecting via I²C
Connecting the BMA400 to the I²C 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 I²C bus. The I²C communication uses 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 I²C address (0x15). Instead, we can connect the SDO pin to GND to use the alternative I²C 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.
Installing Arduino Library
The easiest way to start using your BMA400 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. Alternatively, you can download the latest version of the library from the BlueDot GitHub repository.
A 3D model of the BlueDot BMA400 board is available as a STEP file (click here to download). A STEP file is a CAD file format widely used for exchanging CAD files between companies and can be easily read by most (if not all) CAD software applications.
You can also view 3D models online without installing any software on your computer. The images below were taken using Autodesk Viewer, an online, free-to-use tool from Autodesk. It does require registration at Autodesk, but it is worth it!