What is OpenIMU?

  • OpenIMU is an open software platform for development of high-performance navigation and localization applications on top of a family of low-drift pre-calibrated Inertial Measurement Units (IMU).
  • OpenIMU hardware consists of a 3-axis rate sensor (gyro), 3-axis accelerometer platform, and 3-axis magnetometer module.
  • The module contains a low-power embedded ARM Cortex-M4 CPU with floating-point math support. Extra IO and Ports make connection of external peripherals such as GPS, Odometer, and other more advanced sensors possible.
  • The OpenIMU hardware comes in different form-factors including:

Hardware Configurations

Type Part Number Hardware Features
EZ OpenIMU300ZI Easy to Embed 3-5V UART/SPI Industrial IMU Module
CAN OpenIMU300RI Rugged, Waterproof 5-32V CAN/RS232 Industrial Module
SMT OpenIMU330BI Triple Redundant, SMT, 2°/Hr IMU

Open-Source Embedded Software

  • OpenIMU hardware runs an open-source stack written on top of standard ARM Cortex libraries.
  • OpenIMU300 use FreeRTOS while OpenIMU330 uses a simple real-time scheduler
  • The open-source stack includes EKF (Extended Kalman Filter) algorithms that can be used directly or customized for application specific use.
  • The overall system loop is typically configured to run at 800Hz ensuring high quality aliasing-free measurements for processing.
  • Also included in the OpenIMU embedded software platform are drivers for various GPS receivers, customizable SPI, CAN, and UART messaging, and customizable settings that can be adjusted run-time and/or permanently.
  • A number of predefined settings are defined for baud rate, output date rate, sensor filter settings, and XYZ axis transformations.
  • The Core OpenIMU embedded software consists of the following:
    • FreeRTOS
    • Extended Kalman Filter Algorithms
    • High-Speed Deterministic Sampling
    • Messaging
    • GPS Drivers
    • Accurate Time Service
    • Sensor Filtering
    • Settings Module for Dynamic and Permanent Unit Configuration