BMA400 Evaluation Guide
About this guide
This guide is intended for users who want to evaluate the performance of Bosch Sensortec’s BMA400. It describes how to install the Development Desktop 2.0 and use it to perform current and noise measurements for the BMA400, as well as introduce the BMA400’s anti-aliasing function, interrupt functions and FIFO usage, etc.
The BMA400 is Bosch Sensortec’s first ultra-low-power acceleration sensor without compromising performance. It features 12-bit digital resolution, continuous measurement, selectable bandwidth, and ultra-low power consumption, allowing low-noise measurement of accelerations on three perpendicular axes. The BMA400 can sense tilt, orientation, tap/double-tap, and enable “plug and play” step counting with activity recognition, which makes it ideal for wearable devices that require extended battery life. In addition, equipped with two generic interrupts, the BMA400 can detect multiple defined movements and motions, reducing the workload of the MCU/AP.
The Bosch Sensortec Application Board 2.0 provides a versatile and universal demonstration and development environment for Bosch Sensortec’s sensor products. It can be used in conjunction with the Bosch Sensortec Development Desktop software 2.0 to configure all sensor parameters and read/display/capture data on the connected PC.
The Bosch Sensortec BMA400 shuttle board is a PCB with a BMA400 sensor mounted on it. It allows easy access to the sensor's pins via a simple socket. Since all Bosch Sensortec sensor shuttle boards have an identical footprint, they can be plugged into Bosch Sensortec’s advanced development tools (e.g. the development board). The BMA400 shuttle board can also be used for the user's own implementations as well.
To evaluate the BMA400, the following items are required:
- Bosch Sensortec Application Board 2.0
- BMA400 shuttle board
- Development desktop software 2.0
In addition, the following system requirements must be met:
- 32 or 64-bit Windows 7, Windows 8, or Windows 10
- Microsoft .NET Framework 4.0 or higher
- 1 GB memory
- 1 GHz processor or greater
- USB 2.0 host controllers
Prior to evaluation, the BMA400 shuttle board must be attached on to the Bosch Sensortec Application Board 2.0.
Figure 1 shows the connected Bosch Sensortec Application Board 2.0 and BMA400 shuttle board and their key components.
Figure 1: Connection of BMA400 shuttle board and Bosch Sensortec Application Board 2.0
Figure 2 shows signals on the BMA400 shuttle board. The power, SPI, I2C, and INT signals are routed out from the BMA400 to the BMA400 shuttle board’s connectors. Pin 10 ~ 14 and pin 23 ~ 28 are internal signals, which can be ignored.
Figure 2: BMA400 Shuttle Board Signals
Figure 3 show the schematic diagram of the BMA400 sensor on the BMA400 shuttle board.
Figure 3: Schematic Diagram of the BMA400 Sensor on the BMA400 Shuttle Board
Development Desktop 2.0
This chapter describes how to download and install the Development Desktop 2.0.
The Development Desktop 2.0 can be downloaded from Bosch Sensortec website at https://www.bosch-sensortec.com/bst/support_tools/downloads/overview_downloads
On the Downloads page, click the tab Software. Under Software, click the “+” sign besides Development Desktop Software to expand it, then click the installer and Development Desktop 2.0 user manual to download. See Figure 4.
Figure 4: Development Desktop 2.0 Download Page
For instructions on how to install the Development Desktop 2.0, see the downloaded Development Desktop 2.0 user manual.
This chapter introduces the Development Desktop 2.0 UI and describes how to start it, use it to capture a data log.
Starting the Development Desktop 2.0
To start the Development Desktop 2.0, do the following:
- Attach the BMA400 shuttle board onto the Bosch Sensortec Application Board 2.0.
- Connect the Bosch Sensortec Application Board 2.0 to the PC with a USB cable.
- Turn on the Power switch on the Bosch Sensortec Application Board 2.0.
- Double-click the Development Desktop 2.0 icon on the PC to start it. The screen shows below. Click Connect.
Figure 5: Development Desktop 2.0 Start Window
Figure 6 shows the Development Desktop 2.0 UI. By default, the sensor is in sleep mode and should be set to normal mode. Once clicking Start Streaming at the lower bottom corner, the sensor data is plotted and displayed in the upper left part. Interrupt(s) will be plotted in the lower left part if enabled.
Figure 6: Development Desktop 2.0 UI
Capturing and analysing data log
With the Development Desktop 2.0, data logs can be captured for analysis.
To capture a data log, do the following(example 😞
- Place the Bosch Sensortec Application Board 2.0 connected with the BMA400 shuttle board on a steady table, keeping them away from vibration.
- Connect the Bosch Sensortec Application Board 2.0 to the PC, then start the Development Desktop 2.0.
- In the Accelerometer settings section, set the sensor parameters as below:
Power Mode = Normal
OSR = 0
ODR = 50Hz
Range = 2
4 Click Start Streaming to start data plotting.
Figure 7: Settings for Capturing Data Log
5. Click Panels on the menu bar, then click Data Export.
Figure 8: Open the Data Export Panel
6. On the popup window, click Select Destination to specify a folder where you want to save the log file, set a file name and choose the file type (.csv is recommended)
7. Check Enable Data Log to start data logging.
Figure 9: Enable Data Log
8 . Uncheck Enable Data Log to stop logging.
9 . Open the destination folder specified in Step 6, the log file can be found. The captured data log can then be used to evaluate the performance of the BMA400.
The BMA400 features ultra-low power consumption.
To measure the BMA400’s current consumption, do the following:
- Remove the jumper of J504 on the Bosch Sensortec Application Board 2.0.
Figure 10: J504 Jumper
2. Connect the multi-meter to the Bosch Sensortec Application Board 2.0. See Figure 11.
3. Turn the switch on the multi-meter to point it to “μA".
4. Start the Development Desktop 2.0 software on the PC.
By default, the sensor is in Sleep mode, and the current ~0.15 μA.
5. Set the Power mode = Normal, OSR=0.
In this case, the current is ~3.5 μA. Trying different ODRs (12.5 ~ 800 Hz), the measured current remains the same.
6. Set the Power mode = Low power, OSR = 0. In this case, the current is ~0.8 μA.
In low power mode, the BMA400 ODR is fixed to 25 Hz.
Figure 11: Current Measurement with Multi-meter
Table 1 shows the current consumption table extracted from BMA400 Datasheet. When configuring Accelerometer settings, users can refer to this current consumption table to get appropriate values.
Figure 12: Settings for Low Power Mode
Figure 13: Settings for Normal Mode
With Development Desktop 2.0, the noise generated can also be measured. The measured noise level varies depending on different accelerometer settings.
Table 2 shows part of the noise table from BMA400 Datasheet. For example, in normal mode, when OSR = 2, ODR = 100, the RMS noise measured is approximately 1.93mg as highlighted in the table.
Figure 14: Set OSR to 2 in Normal Mode
Figure 15: Set ODR to 100Hz
After capturing a data log of the BMA400, users can get the noise by calculating the standard deviations for F, G, and H columns (i.e. data of X, Y, and Z axis), as shown in Figure 16.
Figure 16: Calculate the Noise with Data Log
In order to reduce current consumption, most sensors work in duty cycling sampling mode and the equivalent sampling rate can only be ~ 1/ODR due to the long sleep period. In this case, the output of the accelerometer is inevitably interfered by high frequency noise.
However, the BMA400 uses continuous sampling and filtering, and the actual sampling rate of the BMA400 is much greater than the ODR (output data rate). Therefore, it can easily filter out the high-frequency interference signals and recover real motion signals.
Figure 17 illustrates the anti-aliasing principle of the BMA400.
Figure 17: BMA400 Anti-aliasing Principle
The BMA400 is integrated with multi-functional interrupts, including auto-wakeup/low power, generic interrupts 1 and 2, step counter, and orientation, which can be used in different scenarios.
To configure auto-wakeup/low power, generic interrupt 1 and step counter, do the following:
- Click Panels > Memory Map > Interrupt View to open the Interrupt view.
Figure 19: Interrupt View
2 Configure interrupt mapping parameters as shown in Figure 20, and enable Gen1, step counter interrupt, and wake up interrupt, then click Write.
Figure 20: Interrupt Configuration
3 Configure wakeup interrupt as shown in Figure 21, and check Enable Gen 1 trigger low power.
Figure 21: Wakeup/Auto Low Power Configuration
In this example, the condition of auto wakeup is:
For x, y, or z axis, if >= 2 continuous acceleration differences of contiguous samples are bigger than 94mg, the wakeup interrupt will be triggered, and the BMA400 will enter normal mode.
In low power mode, the sampling rate of the BMA400 is 25Hz, so 2 samples time means 80ms wakeup delay
4 Configure Gen1 (generic interrupt 1) for triggering auto-low-power.
Figure 22: Generic Interrupt Configuration
In this example, the trigger condition of Gen1 is:
For x, y, and z axes, if >= 100 continuous acceleration differences of contiguous samples are lower than 24 mg, the Gen1 will interrupt and trigger the BMA400 to switch to low power mode.
5 Move the board and simulate the step movement, it can be seen that the BMA400 is switched to normal mode automatically, and the step counter is increasing (the first seven steps will not be displayed until the 8th step comes.)If the sensor stays still for more than 1s, the Gen1 is triggered and the BMA400 automatically goes to low power mode.
Figure 23: Interrupt Plotting
The BMA400 is integrated with 1 Kbyte FIFO, which support watermark and full interrupts to host.
To configure FIFO usage, do the following:
1 Click Panels > Memory Map and choose FIFO View, as shown in Figure 24.
Figure 24: Enable FIFO View
2 In the FIFO View, configure interrupt settings and FIFO watermark, click Write, and then click Start streaming.
Figure 25: FIFO View
Additional Development Desktop 2.0 UI menus
This chapter describes some useful configuration panels on the Development Desktop 2.0 UI menu.
As shown in Figure 26, under Panels > Memory Map, users can switch between four views according to their own needs.
Figure 26: Configuration Panels
Binary View: for reading/writing all the sensor registers
Interrupt View: for configure the BMA400 features and interrupts
FIFO view: for configuring FIFO
SelfTest View: for performing self-test and showing the test result
By clicking Panels > Register Access, users can read and write a single register. Figure 27 shows the popup register read and write configuration menu.
Figure 27: Register Access Configuration Menu