How does it work?
The 6DOF IMU 6 click uses ICM-20689, a 6-axis MotionTracking device that combines a 3-axis gyroscope, a 3-axis accelerometer, and a Digital Motion Processor™ (DMP) in a small 4x4x0.9mm (24-pin QFN) package. It also features a 4 Kbyte FIFO that can lower the traffic on the serial bus interface, and reduce power consumption by allowing the system processor to burst read sensor data and then go into a low-power mode.The ICM-20689, with its 6-axis integration, on-chip DMP, and run-time calibration firmware, enables manufacturers to eliminate the costly and complex selection, qualification, and system level integration of discrete devices, guaranteeing optimal motion performance.
The gyroscope has a programmable full-scale of ±250, ±500, ±1000, and ±2000 degrees/sec. The accelerometer has a user-programmable accelerometer full-scale range of ±2g, ±4g, ±8g, and ±16g. Factory-calibrated initial sensitivity of both sensors reduces production-line calibration requirements. Other industry-leading features include on-chip 16-bit ADCs, programmable digital filters, an embedded temperature sensor, and programmable interrupts. The device provides high robustness by supporting 10,000g shock reliability.
The device features I2C and SPI serial interfaces, wide operating voltage range (VDD) and separate digital IO supply (VDDIO) from 1.71V to 3.45V. Communication with all registers of the device can be performed using either I2C at 400kHz or SPI at 8MHz.
6DOF IMU 6 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 COM 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 ADD SEL is used to set the least significant bit (LSB) of the I2C address.
Excellent choices for applications include mobile phones, tablets, drones, handset and portable gaming, motion-based game controllers, wearable sensors for health, fitness and sports and 3D remote controls for internet-connected DTVs and set-top boxes and 3D mice.
Specifications
Type
Acceleration,Gyroscope,Motion
Applications
Excellent choices for applications include mobile phones, tablets, drones, handset and portable gaming, motion-based game controllers, wearable sensors for health, fitness and sports and 3D remote controls for internet-connected DTVs and set-top boxes and 3D mice
On-board modules
ICM-20689, a 6-axis MotionTracking device that combines a 3-axis gyroscope, a 3-axis accelerometer, and a Digital Motion Processor™ (DMP), from TDK InvenSense
Key Features
Includes on-chip 16-bit ADCs, programmable digital filters, an embedded temperature sensor, and programmable interrupts.
Interface
I2C,SPI
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on 6DOF IMU 6 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-JP3 | COM SEL | Left | Communication interface selection: left position SPI, right position I2C |
JP4 | ADD SEL | Left | Slave address LSB selection: left position 0, right position 1 |
Software Support
We provide a library for the 6DOF IMU 6 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 covers all the necessary functions that enables the usage of the 6DOF IMU 6 Click board. It initializes and defines the SPI and I2C bus drivers and drivers that offer a plethora of settings. The library also offers functions that allow reading of accelerometer, gyroscope and temperature, as well as generic read and write function that offer reading( and writing ) of different lenghts of data.
Key functions:
float *z_ang_rte );
– Function is used to calculate angular rate.float *z_accel_rte );
– Function is used to calculate acceleration rate.void c6dofimu6_def_settings ( );
– Function is used to apply the default settings to the device.
Examples description
The application is composed of three sections :
- System Initialization – Initializes SPI and I2C modules, LOG and GPIO structures, sets INT pin as input.
- Application Initialization – Initalizes SPI and I2C drivers, performs safety check, applies default and barometer setups and writes an initial log.
- Application Task – (code snippet) Demonstrates use of 6DOF IMU 6 click board by reading angular rate, acceleration rate and displaying data via USART terminal.
void application_task( ) { c6dofimu6_angular_rate( &x_gyro, &y_gyro, &z_gyro ); mikrobus_logWrite( "Angular rate: ", _LOG_LINE ); FloatToStr( x_gyro, log_txt ); mikrobus_logWrite( "X-axis: ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); FloatToStr( y_gyro, log_txt ); mikrobus_logWrite( "Y-axis: ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); FloatToStr( z_gyro, log_txt ); mikrobus_logWrite( "Z-axis: ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); mikrobus_logWrite( "---------------------", _LOG_LINE ); c6dofimu6_acceleration_rate( &x_accel, &y_accel, &z_accel ); mikrobus_logWrite( "Acceleration rate: ", _LOG_LINE ); FloatToStr( x_accel, log_txt ); mikrobus_logWrite( "X-axis: ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); FloatToStr( y_accel, log_txt ); mikrobus_logWrite( "Y-axis: ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); FloatToStr( z_accel, log_txt ); mikrobus_logWrite( "Z-axis: ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); mikrobus_logWrite( "---------------------", _LOG_LINE ); Delay_ms( 1000 ); }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- I2C
- SPI
- UART
- Conversions
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.
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.