The CMPS12 is our 4th generation tilt compensated compass. Employing a 3-axis magnetometer, a 3-axis gyro and a 3-axis accelerometer. At the core of the module is the superb BNO055 runningalgorithms to remove the errors caused by tilting of the PCB.Power supply requirements are flexible, you can feed between 3.3 - 5v and the module draws a nominal18mA of current. A choice of serial or I2C interfaces can be used for communication. Overview of outputs Heading, 16 bit – 2 outputs, one calculated by Bosch and one by usHeading, 8 bit – 0-255 scaled for simpler requirementsPitch – +/- 0-90° or +/- 0-180°Roll – +/- 0-90°Temperature – current temperature of the BNO055 in °cRaw sensor outputs – 3 x 16 bit integers for each of the Magnetometer, accelerometer and gyro Full Technical Data, and the Compass FAQ We also have a free design for a 3d printed tower here Examples:I2C bus tutor - general I2C guideArduino - I2C interface or a serial interface and displaying data via the serial monitorATMEGA32 - reading the result and displaying on a LCD03/LCD05PIC18F4410 - reading the result and displaying on a LCD03/LCD05PIC24FJ16GA002 - reading the result and displaying on a LCD03/LCD05Picaxe18x - I2C communication exampleRaspberry Pi - using I2C communication