Overview

AHRS is an acronym for Attitude and Heading Reference System, a system generally used for aircraft of any sort to determine heading, pitch, roll, altitude etc.

A basic IMU (Intertial Measurement Unit) generally provides raw sensor data, whereas an AHRS takes this data one step further, converting it into heading or direction in degrees.

To help you get started designing your own AHRS system, or just to help convert raw sensor data into useful numbers that you can relate to the real world, we've created an Arduino library that lets you 'fuse' a range of common accelerometer/gyroscope/magnetometer sensor sets using a few different algorithms such as Mahony, Madgwick and NXP Sensor Fusion.

We recommend a Cortex M0 or faster/greater chipset - there's a lot of math and memory required so 4KB+ or RAM and 32 MHz+ speed helps for the fancier algorithms. That said, you can do some basic fusion with an ATmega328p (Arduino UNO compatible). The data is output on the serial port for easy integration.

  1. We'll start by verifying you can store calibrations on your chipset, and then calibrating your sensors.
  2. Then we'll compile the AHRS library for your desired sensors and algorithm/
  3. Finally we'll visualize the motion using a Web Serial API 3D model.
This guide was first published on Feb 17, 2020. It was last updated on Feb 17, 2020. This page (Overview) was last updated on Mar 30, 2020.