CHR-6dm Attitude and Heading Reference System

via Pololu
SKU PL-1253

Note: This module has been replaced by the pin-compatible CHR-UM6-LT orientation sensor. Please note that while the UM6-LT is physically a drop-in replacement for the CHR-6dm, the two boards use different communication protocols.


The CHR-6dm is an Attitude and Heading Reference System (AHRS) from CH Robotics that uses a powerful 32-bit STM32F103T8 ARM Cortex M3 running at 64 MHz to process data from an ADXL335 three-axis accelerometer, a LP510AL pitch/roll rate gyro, a LY510ALH yaw rate gyro, and an HMC5843 three-axis digital magnetic compass. An on-board Extended Kalman Filter (EKF) produces estimates for yaw, pitch, and roll angles and angle rates, which can be streamed at up to 300 Hz over a simple TTL (3.3V with 5V-tolerant pins) serial interface or transmitted upon request along with raw data from any of the board’s sensors. Regardless of the transmission rate, internal angle estimates are maintained at over 500 Hz to ensure long-term accuracy. A USB-to-serial adapter can be used to connect the IMU to a computer running the free AHRS Interface PC application, which can be used for data visualization, board calibration, and AHRS settings configuration.

The CHR-6dm simplifies system integration by providing a number of automatic calibration routines, including rate gyro bias calibration, magnetometer hard and soft iron calibration, and accelerometer “zeroing” to compensate for AHRS-platform misalignment. All calibration routines are triggered by sending simple commands over the serial interface.

An on-board 3.3V regulator further simplifies integration. With possible input voltages ranging from 3.3 to 12 V and with 5V-tolerant I/O pins, the CHR-6dm can easily be integrated into a wide range of systems. The board also provides a +3.3V output that can deliver up to 400 mA to peripheral devices. The board’s pins have a 0.1" spacing, so they will work with standard 0.1" headers and breadboards.

This tiny (1.0"×0.96") orientation sensor weighs just 2.7 g, making it well suited for unmanned aerial vehicle (UAV) navigation.

Product Comparison

We carry several inertial measurement and orientation sensors. The table below compares their capabilities:

Product Name Sensors Estimation Other
Gyros (3x) Accels (3x) Mag (3x) Roll Pitch Yaw Quaternion Enclosure
Pololu MinIMU-9
CHR-6d IMU *
CHR-6dm AHRS *
CHR-UM6-LT Orientation Sensor
CHR-UM6 Orientation Sensor

* Discontinued.

  • On-board EKF produces Euler angle and angle rate outputs for yaw, pitch, and roll from 3 gyro axes, 3 accelerometer axes, and 3 magnetometer axes
  • Automatic gyro bias calibration
  • Data output rate adjustable from 20 to 300 Hz (data is internally sampled at over 500 Hz regardless of the broadcast frequency)
  • TTL UART communication interface (3.3V with 5V-tolerant pins) with baud rates up to 115,200 bps can stream data or provide updates on request
  • On-board 3.3V regulator simplifies integration
  • 3.3V output capable of delivering up to 400 mA for powering other peripherals (e.g. GPS)
  • 5V-tolerant I/O pins for easy integration with 5V systems
  • Open-source Cortex firmware (in C) with free development tools
  • Open-source PC software (Visual C# project) for data visualization, calibration, and AHRS configuration
  • Two UARTs and one SPI bus are brought out to header pins for custom applications

AHRS Interface PC software for the CHR-6dm AHRS IMU.

  • Better than 2° pitch and roll angle accuracy under static test conditions (actual performance will vary depending on EKF configuration and environment)
  • 16-bit Euler angle outputs provide 0.01° resolution
  • 3.3 – 12 V operating range
  • ±400°/s maximum measurable rotation rates
  • ±3 g accelerometer range
  • Weight: 2.7 grams (0.095 oz)
  • Size: 25.4 x 24.4 x 3 mm (1.00" x 0.96" x 0.1")
Open Source PC Application and Firmware

Both the PC application for communicating with the CHR-6dm and the CHR-6dm’s firmware are open source and available for download from the Resources tab. All of the pins needed to reprogram the STM32F103T8 ARM Cortex processor are made available to the user, as are six unused digital I/O pins that can be used for tasks such as motor control, GPS integration, pressure sensor integration, and communication with other digital devices if the firmware is modified. Pins D1 and D2 can also be configured as a second TTL UART, and pins D3 – D5 can be configured as an SPI bus. Free development tools are available.

More Videos

The CHR-6dm can be used in applications where a compact attitude and heading reference system is needed:

  • UAV navigation
  • Robotics
  • Motion tracking
  • General motion sensing
  • Platform stabilization
  • Image stabilization
  • Enhanced GPS navigation