How does it work?
Accel 31 Click is based on the BMA580, a triaxial low-g accelerometer from Bosch Sensortec designed to enable precise motion and orientation detection in compact devices. Recognized as the world’s smallest acceleration sensor, the BMA580 integrates advanced features to support various applications, particularly in space-constrained devices like hearables, wearables, and consumer electronics requiring optimized performance and power efficiency. The BMA580 is equipped with a 16-bit digital resolution, offering exceptional measurement accuracy across multiple selectable ranges of ±2, ±4, ±8, and ±16g. It provides flexible output data rates ranging from 1.56Hz to an impressive 6.4kHz, making it highly adaptable to various application needs. Additionally, the sensor incorporates sophisticated power modes, including a high-performance mode for demanding tasks and a low-power mode with self-wake-up functionality. This self-wake-up feature enables the device to switch seamlessly from low-power to high-performance mode as needed, helping conserve energy without compromising performance.
A unique feature of the BMA580 is its voice activity detection through bone conduction, which allows it to accurately detect voice activity directly through vibration signals. This functionality is particularly advantageous in devices where conserving battery life is essential, enabling a microphone to activate only when necessary. The sensor includes a 512-byte FIFO (First In, First Out) buffer that supports advanced data management features, including FIFO full and FIFO watermark interrupts, enhancing its ability to handle continuous data streams efficiently.
This Click board™ is designed in a unique format supporting the newly introduced MIKROE feature called “Click Snap.” Unlike the standardized version of Click boards, this feature allows the main sensor area to become movable by breaking the PCB, opening up many new possibilities for implementation. Thanks to the Snap feature, the BMA580 can operate autonomously by accessing its signals directly on the pins marked 1-8. Additionally, the Snap part includes a specified and fixed screw hole position, enabling users to secure the Snap board in their desired location.
This board supports communication with the host MCU through either SPI (maximum clock frequency of 10MHz) or I2C (maximum clock frequency of 1MHz) interfaces, with SPI being the default option. The communication interface is selected by adjusting the COMM SEL jumpers to the desired position. An additional upper COMM SEL jumpers are available to enhance flexibility, particularly with the detachable Snap section of the Click Snap format. These jumpers function similarly to the COMM SEL, allowing for independent communication interface selection when the Snap section is used independently. To ensure proper functionality, all COMM SEL jumpers must be set to the same interface.
In addition to interface pins, this board is equipped with two interrupt pins, IT1 and IT2, which act as an event-detection interrupt, essential for reliable motion-activated features. These include data-ready interrupts, some generic interrupts like any or no-motion detection, tap/double tap/triple tap detection, and voice activity detection.
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before using MCUs with different logic levels. Also, it comes equipped with a library containing functions and an example code that can be used as a reference for further development.
Click Snap
Click Snap is an innovative feature of our standardized Click add-on boards, introducing a new level of flexibility and ease of use. This feature allows for easy detachment of the main sensor area by simply snapping the PCB along designated lines, enabling various implementation possibilities. For detailed information about Click Snap, please visit the official page dedicated to this feature.
Specifications
Type
Acceleration,Motion
Applications
Ideal for wearables, hearables, and consumer electronics that require precise motion detection, power efficiency, and reliable event-driven features
On-board modules
BMA580 – triaxial high-performance low-g accelerometer from Bosch Sensortec
Key Features
High resolution, scalable measurement ranges, adjustable output data rate, various power modes, bone conduction-based voice activity detection, 512-byte FIFO with FIFO full and watermark interrupts, Click Snap feature, selectable interfaces, event detection interrupts, and more
Interface
I2C,SPI
Feature
Click Snap,ClickID
Compatibility
mikroBUS™
Click board size
M (42.9 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on Accel 31 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
JP1-JP2 | COMM SEL | Left | Snap Side Communication Interface Selection SPI/I2C: Left position SPI, Right position I2C |
JP3-JP4 | COMM SEL | Left | mikroBUS Side Communication Interface Selection SPI/I2C: Left position SPI, Right position I2C |
Accel 31 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | – | 3.3 | – | V |
Measurement Range | ±2 | – | ±16 | g |
Output Data Rate | 1.56 | – | 6400 | Hz |
Resolution | – | 16 | – | bit |
Software Support
We provide a library for the Accel 31 Click as well as a demo application (example), developed using MIKROE compilers. The demo can run on all the main MIKROE development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager (recommended), downloaded from our LibStock™ or found on MIKROE github account.
Library Description
This library contains API for Accel 31 Click driver.
Key functions
-
accel31_get_data
This function reads the accelerometer and temperature measurement data. -
accel31_set_accel_odr
This function sets the accel measurement output data rate. -
accel31_set_accel_fsr
This function sets the accel measurement full scale range.
Example Description
This example demonstrates the use of Accel 31 Click by reading and displaying the accelerometer data (X, Y, and Z axis) and a temperature measurement in degrees Celsius.
void application_task ( void )
{
accel31_data_t meas_data;
if ( ACCEL31_OK == accel31_get_data ( &accel31, &meas_data ) )
{
log_printf( &logger, " Accel X: %.3f grn", meas_data.accel.x );
log_printf( &logger, " Accel Y: %.3f grn", meas_data.accel.y );
log_printf( &logger, " Accel Z: %.3f grn", meas_data.accel.z );
log_printf( &logger, " Temperature: %d degCrnn", ( int16_t ) meas_data.temperature );
Delay_ms ( 80 );
}
}
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager (recommended), downloaded from our LibStock™ or found on MIKROE github account.
Other MIKROE Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.Accel31
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MIKROE compilers.
mikroSDK
This Click board™ is supported with mikroSDK – MIKROE Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.