+27 (0)11 022 5323 +27 (0)64 681 8495
Basket/Checkout
R
- -
MagnifierSearch:
6DOF IMU 6 click (Accel, Gyro) (Go to Parent Category)

6DOF IMU 6 click (Accel, Gyro)

6DOF IMU 6 Click features a 6-axis MotionTracking device that combines a 3-axis gyroscope, a 3-axis accelerometer, and a Digital Motion Processor™ (DMP) labeled as ICM-20689. The ICM-20689 from company TDK InvenSense includes on-chip 16-bit ADCs, programmable digital filters, an embedded temperature sensor, and programmable interrupts. The gyroscope and accelerometer are full-scale range, user-programmable sensors with factory-calibrated initial sensitivity for reduced production-line calibration requirements.

6DOF IMU 6 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.

R290  Qty:
Price ex. VAT. Weight: 16g. Stock: Lead-time applicable [i]. mikroE Icon

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.

6dof imu 6 click

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 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
Interface I2C,SPI
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).

Notes Pin Mikrobus logo.png Pin Notes
NC 1 AN PWM 16 NC
NC 2 RST INT 15 INT Interrupt
SPI Chip Select CS 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 SDI 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-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.

Resources

Downloads