Skip to content
This repository was archived by the owner on Feb 11, 2026. It is now read-only.

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Examples

This directory contains comprehensive examples demonstrating how to use the MIP SDK with MicroStrain inertial sensors. The examples are organized by device series and programming language, providing both C and C++ implementations for most use cases.

MicroStrain Inertial Device Overview

7-Series Devices

The MicroStrain 7-series devices represent the latest generation of tactical-grade inertial sensors with advanced capabilities, compact designs, and flexible packaging options.

Device Model Description
3DM-GQ7-GNSS/INS Dual-antenna RTK GNSS/INS with centimeter-level accuracy
3DM-CV7-AR Embeddable tactical-grade IMU/VRU
3DM-CV7-AHRS Embeddable tactical grade IMU/AHRS
3DM-CV7-INS Embeddable tactical grade Inertial Navigation System
3DM-CV7-GNSS/INS Embeddable tactical grade GNSS-aided Inertial Navigation System
3DM-GV7-AR IP68 ruggedized tactical grade IMU/VRU
3DM-GV7-AHRS IP68 ruggedized tactical grade IMU/AHRS
3DM-GV7-INS IP68 ruggedized tactical grade Inertial Navigation System

5-Series Devices

The MicroStrain 5-series devices are industrial-grade inertial sensors featuring fully calibrated and temperature-compensated sensors with high-performance capabilities.

Device Model Description
3DM-CX5-IMU Embeddable high performance IMU
3DM-CX5-AR Embeddable high performance IMU/VRU
3DM-CX5-AHRS Embeddable high performance IMU/AHRS
3DM-CX5-GNSS/INS Embeddable high performance GNSS-aided Inertial Navigation System
3DM-CV5-IMU Embeddable industrial grade IMU
3DM-CV5-AR Embeddable industrial grade IMU/VRU
3DM-CV5-AHRS Embeddable industrial grade IMU/AHRS
3DM-GX5-IMU High performance IMU in precision anodized aluminum enclosure
3DM-GX5-AR High performance IMU/VRU in precision anodized aluminum enclosure
3DM-GX5-AHRS High performance IMU/AHRS in precision anodized aluminum enclosure
3DM-GX5-GNSS/INS High performance GNSS-aided Inertial Navigation System in precision anodized aluminum enclosure

Examples Overview

The examples demonstrate various aspects of working with MicroStrain devices, from basic sensor data streaming to advanced navigation solutions. Each example includes comprehensive documentation and error handling.

Name C C++ Description
AR Filter Examples 5_series_ar_example_c 5_series_ar_example_cpp Basic attitude filter configuration for streaming filter data
7_series_ar_example_c 7_series_ar_example_cpp
AHRS Filter Examples 5_series_ahrs_example_c 5_series_ahrs_example_cpp Basic attitude filter configuration with magnetometer heading for streaming filter data
7_series_ahrs_example_c 7_series_ahrs_example_cpp
INS External Aiding Examples 7_series_ins_example_c 7_series_ins_example_cpp Complete INS example with external aiding measurements and reference frame configuration using simulated external data
GNSS/INS Navigation Examples 5_series_gnss_ins_example_c 5_series_gnss_ins_example_cpp Full navigation solution combining GNSS and inertial data for position, velocity, and attitude
7_series_gnss_ins_example_c 7_series_gnss_ins_example_cpp
IMU Data Streaming Examples 5_series_stream_imu_example_c 5_series_stream_imu_example_cpp Basic IMU sensor data streaming with accelerometer, gyroscope, and magnetometer output
7_series_stream_imu_example_c 7_series_stream_imu_example_cpp
Multithreaded Examples 5_series_threading_example_c 5_series_threading_example_cpp Multithreaded data streaming example showing concurrent data processing patterns
7_series_threading_example_c 7_series_threading_example_cpp
Device Information Examples device_info_example_c device_info_example_cpp Retrieve and display device information from any MIP-enabled device
MIP Packet Examples mip_packet_example_c mip_packet_example_cpp Create, manipulate, and work with raw MIP packets for custom applications

Key Features Demonstrated

Device Communication

  • Serial port configuration and management
  • MIP protocol packet handling
  • Error detection and recovery
  • Cross-platform compatibility (Windows/Unix)

Data Streaming

  • Real-time sensor data output
  • Configurable sample rates
  • Multiple data format support
  • Dynamic sensor capability detection

Filter Operations

  • Gyroscope bias capture and compensation
  • Filter initialization and configuration
  • Heading source selection
  • External aiding integration

Programming Patterns

  • C Examples: Traditional C patterns with manual memory management, explicit error checking, and direct hardware interface programming
  • C++ Examples: Modern C++ features including RAII, type safety, automatic data extraction, and STL integration

Getting Started

  1. Hardware Setup: Connect your MicroStrain device to a serial port (USB or RS-232)
  2. Build System: Use the provided CMakeLists.txt files to build examples with CMake
  3. Configuration: Update serial port settings in examples as needed
  4. Run Examples: Execute compiled examples to see device interaction

Common Configuration

Most examples use these default settings:

  • Port: "COM1" (Windows) or "/dev/ttyACM0" (Unix)
  • Baud Rate: 115200
  • Sample Rate: 1 Hz
  • Runtime: 30 seconds

Error Handling

All examples include comprehensive error handling:

  • Command result validation
  • Connection failure detection
  • Graceful termination procedures
  • Detailed error messages with context

Requirements

  • MicroStrain 5-series or 7-series device
  • Serial connection capability
  • MIP SDK library
  • C11 or C++11 compiler (or later)

Additional Resources

Each example directory contains detailed documentation, source code, and build instructions. Refer to the individual README files for specific implementation details and usage instructions.