13DOF 2 CLICK
PID: MIKROE-3687
Weight: 18 g
13DOF 2 click is an advanced 13-axis motion tracking Click board™, which utilizes two
different sensor ICs onboard: BME680, Volatile Organic Compounds (VOCs), humidity,
pressure and temperature sensor and BMX160, a 9-axis sensor consisting of a 3-axis,
low-g accelerometer, a low power 3-axis gyroscope and a 3-axis geomagnetic sensor.
Both integrated sensor ICs are made by Bosch Sensortec, featuring the state-of-the-art
sensor technology processes, in order to fulfill the requirements for immersive gaming
and navigation applications, which require highly accurate sensor data fusion. Besides
that, 13DOF 2 click is also perfectly suited for use in many other applications such as
mobile phones, tablet PCs, GPS systems, Smart watches, Sport and fitness devices,
and many more.
13DOF 2 click is supported by a mikroSDK compliant library, which includes functions
that simplify software development. This Click board™ comes as a fully tested product,
ready to be used on a system equipped with the mikroBUS™ socket.
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. 13DOF 2 click has these two ICs
integrated onboard, which makes it a very powerful motion and sensing applications
designing tool.
HOW DOES IT WORK?
13DOF 2 click is based on the BME680 and the BMX160 sensor 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 for 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 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 labeled 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, 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.), pressure sensor with
only 0.12 Pa RMS Noise (equivalent to 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.
13DOF 2 click 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
Motion
Applications
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.
On-board
modules
BMX160 – Small, low power 9-axis sensor from bosch BME680 –
Low power gas, pressure, temperature and humidity sensor from
bosch
Interface
I2C,SPI
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
-
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
Power LED Indicator
SOFTWARE SUPPORT
We provide a library for the 13DOF 2 click on our LibStock 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).
Examples 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 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 our LibStock page.
Other mikroE Libraries used in the example:
I2C library
SPI Library
UART Library
Conversions Library
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. 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 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 library, see our Libstock page.
MIKROSDK
This 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 LibStock and installed for
the compiler you are using.
For more information about mikroSDK, visit the official page.
https://www.mikroe.com/13dof‐2‐click/8‐14‐19