13DOF 2 Click Board
13DOF 2 Click Board
Key Features
- Very low power consumption, built-in timing unit to synchronize the sensor data, dynamic reallocation of FIFO space
- Based on the BMX160 – Small, low power 9-axis sensor from bosch BME680 – Low power gas, pressure, temperature and humidity sensor from bosch
- It is a perfect solution for development of different types of motion detection and MotionTracking™ applications: motion-based game controllers, 3D and gesture controllers, IoT applications, wearable motion sensing applications, and similar applications.
Overview
Looking for an advanced motion tracking solution? Dive into the exceptional features of the 13DOF 2 Click Board that make it stand out in the market!
Equipped with cutting-edge sensors, the 13DOF 2 Click Board offers an impressive 13-axis motion tracking capability. Featuring the BME680 sensor for VOCs, humidity, pressure, and temperature measurements, paired with the BMX160 sensor comprising a 9-axis accelerometer, gyroscope, and geomagnetic sensor, this board is designed to meet the demands of immersive gaming and navigation applications.
- Accurately tracks up to 13 different axes, providing precise data for various applications.
- Supported by a mikroSDK compliant library, simplifying software development and integration.
Not just limited to gaming and navigation, the 13DOF 2 Click Board is versatile enough to be integrated into mobile phones, tablet PCs, GPS systems, smartwatches, sport and fitness devices, and more. Its functionality extends across multiple domains, making it a valuable addition to diverse projects.
Whether you are a tech enthusiast, a developer, or a hobbyist, the 13DOF 2 Click Board offers a seamless user experience, ensuring that you can leverage its advanced features without any hassle. Dive into the world of enhanced motion tracking with this exceptional Click Board.
Get your hands on the 13DOF 2 Click Board today and unlock a world of possibilities in motion tracking technology. Upgrade your projects and devices with the precision and reliability offered by this innovative Click Board.
The BME680 is a digital 4-in-1 sensor with VOC, humidity, pressure and temperature measurement based on proven sensing principles, housed in an extremely compact metal-lid LGA package. Its small dimensions and its low power consumption enable the integration in battery-powered or frequency-coupled devices, such as handsets or wearables. The BMX160 is a highly integrated, low power 9-axis sensor that provides precise acceleration and angular rate (gyroscopic) and geomagnetic measurement in each spatial direction. It integrates the 16-bit digital, triaxial accelerometer, 16-bit digital, triaxial gyroscope, and a geomagnetic sensor. The 13DOF 2 Click Board™ has these two ICs integrated onboard, which makes it a very powerful motion and sensing applications design tool.
How Does The 13DOF 2 Click Board™ Work?
The 13DOF 2 Click Board™ is based on the BME680 and the BMX160sensor from Bosch Sensortec. Altogether, this Click board™ integrates a triaxial accelerometer, triaxial gyroscope, geomagnetic, VOC, humidity, pressure and temperature sensors on the single board. This allows very high integration and very small dimensions, at an affordable cost. The output of each MEMS is processed, digitized and available through the I2C or SPI communication interface. The data can be oversampled by the sensor ICs by themselves, in order to achieve as reliable data readings as possible.
As already mentioned, the BMX160 - a small, high performance, low power 9-axis sensor is in charge of the accelerometer gyroscope and geomagnetic measurements. It features very low power consumption: typ. 1585 µA in high-performance mode or down to only 4 µA suspend mode. It has a built-in timing unit to synchronize the sensor data, as well as the integrated 1024 byte FIFO buffer, in order to support low power applications and prevent data loss in non-real-time systems. The intelligent FIFO architecture allows dynamic reallocation of FIFO space for accelerometer, gyroscope and magnetometer, respectively. For typical 9-DoF applications, this is sufficient for approximately 0.5 s of data capture.
Besides the mentioned above, BMX160 also features an on-chip powerful programmable interrupt engine with two dedicated interrupt pins, enabling low-power motion-based context-awareness. The interrupt engine can detect many different events, including any or no-motion detection, tap or double-tap sensing, orientation detection, activity and inactivity recognition, Data Ready, FIFO full / FIFO watermark events, and more. Any of these events can be independently mapped to the above mentioned 2 interrupt output pins, via user-programmable parameters. The INT 1 pin is routed to the mikroBUS™ INT pin, while the INT 2 pin is routed to the mikroBUS™ PWM pin. These pins are labelled as IT1 and IT2 on the Click board™, respectively. The datasheet of the BMX160 offers a full list of outputs and features, each with a detailed explanation.
On the other side, the BME680 - a small, high performance, low power, the 4-in-1 sensor is in charge for the gas, humidity, pressure and temperature measurements. It also features very low power consumption, for example, 3.7 µA is typical at 1 Hz humidity, pressure and temperature measurement mode. It also features a very high accuracy humidity sensor (tolerance ±3% r.H. and hysteresis ±1.5% r.H.), a pressure sensor with only 0.12 Pa RMS Noise (equivalent to 1.7 cm of altitude) and a very low temperature offset drift, and a gas sensor with direct indoor air quality (IAQ) index output system. In principle, the IAQ index output is in an index that can have values between 0 and 500 with a resolution of 1 to indicate or quantify the quality of the air available in the surrounding. It greatly simplifies the categorization of the air quality measurements.
The 13DOF 2 Click Board™ supports both SPI and I2C communication interfaces, allowing it to be used with a wide range of different MCUs. The communication interface can be selected by moving SMD jumpers grouped under the COMM SEL to an appropriate position (SPI or I2C). The slave I2C address can also be configured by an SMD jumper when the Click board™ is operated in the I2C mode an SMD jumper labeled as ADDR SEL is used to set the least significant bit (LSB) of the I2C address. Given that this is a dual IC Click Board™, it has two chip select pins, marked as CS1 and CS2, which are routed to the CS and RST pins on the mikroBUS™, respectively.
This Click Board™ uses both I2C and SPI communication interfaces. It is designed to be operated only with up to 3.3V logic levels. Proper conversion of logic voltage levels should be applied, before the Click board™ is used with MCUs operated at 5V.
SPECIFICATIONS
Type | Acceleration,Environmental,Gyroscope,Motion |
Applications | The 13DOF 2 Click Board™ is a perfect solution for the development of different types of motion detection and MotionTracking™ applications: motion-based game controllers, 3D and gesture controllers, IoT applications, wearable motion-sensing applications, and similar applications. |
On-board modules | BMX160 – Small, low power 9-axis sensor from bosch BME680 – Low power gas, pressure, temperature and humidity sensor from bosch |
Key Features | very low power consumption, built-in timing unit to synchronize the sensor data, dynamic reallocation of FIFO space |
Interface | I2C,SPI |
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 13DOF 2 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | IT2 | Interrupt 2 out | |
BMX160 Chip Select | CS2 | 2 | RST | INT | 15 | IT1 | Interrupt1 out |
BME680 Chip Select | CS1 | 3 | CS | RX | 14 | NC | |
SPI Clock | SCK | 4 | SCK | TX | 13 | NC | |
SPI Data OUT | SDO | 5 | MISO | SCL | 12 | SCL | I2C Clock |
SPI Data IN | SPI | 6 | MOSI | SDA | 11 | SDA | I2C Data |
Power Supply | 3.3V | 7 | 3.3V | 5V | 10 | NC | |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | - | Power LED Indicator |
JP1-JP5 | COMM SEL | Right | Communication interface selection: left position SPI, right position I2C |
JP6 | ADDR SEL | Right | Slave I2C address LSB selection: left position 1, right position 0 |
Software Support
We provide a library for the 13DOF 2 Click Board™ on our Ibstock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library contains basic functions for starting both sensors and reading data that the sensors measure.
Key Functions
void c13dof2_bmx160_getAxis(uint8_t sensor, T_C13DOF2_BMX160_AXIS *sAxis)
- Reads Axis data from the BMX160 sensor (Accel, Gyro, Magnetic).uint16_t c13dof2_bmx160_getStepCounter()
- Read Step counter.float c13dof2_bme680_getAmbientData(uint8_t dataIn)
- Reads Environmental data from BME680 sensor (VOC, Temperature, Pressure and Humidity).
Example Description
The application is composed of three sections :
- System Initialization - Initialization I2C or SPI module and sets all the necessary GPIO pins.
- Application Initialization - Initializes the driver init, checks the communication and starts configuration for chips BMX160 and BME680.
- Application Task - This example reads all parameters from those sensors (Acceleration, Gyro, Magnetic, Temperature, etc.) and shows them on a USB UART log.
void applicationTask() { /* BMX160 */ c13dof2_bmx160_getAxis(_C13DOF2_BMX160_DATA_ACCEL, &Accel); c13dof2_bmx160_getAxis(_C13DOF2_BMX160_DATA_GYRO, &Gyro); c13dof2_bmx160_getAxis(_C13DOF2_BMX160_DATA_MAGNET, &Magnet); temperature_bmx160 = c13dof2_bmx160_internalTemperature(); step_counter = c13dof2_bmx160_getStepCounter(); c13dof2_bmx160_getInterruptStatus(&status); /* BME680 */ temperature = c13dof2_bme680_getAmbientData(_C13DOF2_BME680_DATA_TEMPERATURE); pressure = c13dof2_bme680_getAmbientData(_C13DOF2_BME680_DATA_PRESSURE); humidity = c13dof2_bme680_getAmbientData(_C13DOF2_BME680_DATA_HUMIDITY); gas = c13dof2_bme680_getGasResistance(); mikrobus_logWrite( "-------------------------------------------------------" , _LOG_LINE ); mikrobus_logWrite( "------ BMX160 DATA ------", _LOG_LINE ); _displayData_BMX160(); mikrobus_logWrite( "------ BME680 DATA ------", _LOG_LINE ); _displayData_BME680(); mikrobus_logWrite( " ", _LOG_LINE ); Delay_ms( 1000 ); }
Additional Functions :
- void _interruptDetect() - display interupt state (TAP status)
- void _displayData_BMX160() - display BMIX160 data (Accel, Gyro, Magnetic, Step counter, and internal senzor Temperature)
- void _displayData_BME680() - display BME680 data (Temperature, Pressure, Humidity and VOC resistance)
The full application code, and ready to use projects can be found on ourLibStock page.
Other mikroE Libraries used in the example:
- I2C library
- SPI Library
- UART Library
- Conversions Library
Additional Notes and Information
Depending on the development board you are using, you may need a 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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
VOC LIBRARY
The Libstock page for the 13DOF 2 click offers a library for accel, gyro, magnetic, step counter, temperature, humidity, and pressure readings. To get the library for air quality (VOC) measurements, visit the Bosch website and download the VOC library file for mikroC (libalgobsec.emcl).
The run-in phase for VOC measuring is approximately 5 minutes.
Note: Once you go to the Bosch website, you will need to read and agree with the terms of the software license agreement, before you can download the VOC library.
For more information about the 13DOF 2 Click Board™ library, see our Ibstock page.
MIKROSDK
The 13DOF 2 Click Board™ is supported with mikroSDK- MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the Iibstock and installed for the compiler you are using.
Software Support
We provide a library for the 13DOF 2 Click Board™ on our Ibstock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library contains basic functions for starting both sensors and reading data that the sensors measure.
Key Functions
void c13dof2_bmx160_getAxis(uint8_t sensor, T_C13DOF2_BMX160_AXIS *sAxis)
- Reads Axis data from the BMX160 sensor (Accel, Gyro, Magnetic).uint16_t c13dof2_bmx160_getStepCounter()
- Read Step counter.float c13dof2_bme680_getAmbientData(uint8_t dataIn)
- Reads Environmental data from BME680 sensor (VOC, Temperature, Pressure and Humidity).
Example Description
The application is composed of three sections :
- System Initialization - Initialization I2C or SPI module and sets all the necessary GPIO pins.
- Application Initialization - Initializes the driver init, checks the communication and starts configuration for chips BMX160 and BME680.
- Application Task - This example reads all parameters from those sensors (Acceleration, Gyro, Magnetic, Temperature, etc.) and shows them on a USB UART log.
void applicationTask() { /* BMX160 */ c13dof2_bmx160_getAxis(_C13DOF2_BMX160_DATA_ACCEL, &Accel); c13dof2_bmx160_getAxis(_C13DOF2_BMX160_DATA_GYRO, &Gyro); c13dof2_bmx160_getAxis(_C13DOF2_BMX160_DATA_MAGNET, &Magnet); temperature_bmx160 = c13dof2_bmx160_internalTemperature(); step_counter = c13dof2_bmx160_getStepCounter(); c13dof2_bmx160_getInterruptStatus(&status); /* BME680 */ temperature = c13dof2_bme680_getAmbientData(_C13DOF2_BME680_DATA_TEMPERATURE); pressure = c13dof2_bme680_getAmbientData(_C13DOF2_BME680_DATA_PRESSURE); humidity = c13dof2_bme680_getAmbientData(_C13DOF2_BME680_DATA_HUMIDITY); gas = c13dof2_bme680_getGasResistance(); mikrobus_logWrite( "-------------------------------------------------------" , _LOG_LINE ); mikrobus_logWrite( "------ BMX160 DATA ------", _LOG_LINE ); _displayData_BMX160(); mikrobus_logWrite( "------ BME680 DATA ------", _LOG_LINE ); _displayData_BME680(); mikrobus_logWrite( " ", _LOG_LINE ); Delay_ms( 1000 ); }
Additional Functions :
- void _interruptDetect() - display interupt state (TAP status)
- void _displayData_BMX160() - display BMIX160 data (Accel, Gyro, Magnetic, Step counter, and internal senzor Temperature)
- void _displayData_BME680() - display BME680 data (Temperature, Pressure, Humidity and VOC resistance)
The full application code, and ready to use projects can be found on ourLibStock page.
Other mikroE Libraries used in the example:
- I2C library
- SPI Library
- UART Library
- Conversions Library
Additional Notes and Information
Depending on the development board you are using, you may need a 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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
VOC LIBRARY
The Libstock page for the 13DOF 2 click offers a library for accel, gyro, magnetic, step counter, temperature, humidity, and pressure readings. To get the library for air quality (VOC) measurements, visit the Bosch website and download the VOC library file for mikroC (libalgobsec.emcl).
The run-in phase for VOC measuring is approximately 5 minutes.
Note: Once you go to the Bosch website, you will need to read and agree with the terms of the software license agreement, before you can download the VOC library.
For more information about the 13DOF 2 Click Board™ library, see our Ibstock page.
MIKROSDK
The 13DOF 2 Click Board™ is supported with mikroSDK- MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the Iibstock and installed for the compiler you are using.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.