# CMPS11-Tilt Compensated Magnetic Compass

**Type:** Product page · **SKU:** SEN0183 · **Brand:** [DFRobot](https://core-electronics.com.au/brands/dfrobot-australia)
**Page:** https://core-electronics.com.au/cmps11-tilt-compensated-magnetic-compass.html ([markdown](https://core-electronics.com.au/cmps11-tilt-compensated-magnetic-compass.html.md))

The CMPS11 is our 3rd generation tilt compensated magnetic compass. It packs a 3-axis magnetometer, a 3-axis gyro and a 3-axis accelerometer. A Kalman filter combines the gyro and accelerometer to remove the errors caused by tilting of the PCB. The CMPS11 presents a result of 0-3599 representing 0-359.9 or 0 to 255.

## Pricing

- **Price:** $59.40 (inc GST) — $54.00 AUD, exc GST
- **Quantity discounts:** 6+ $51.30 (exc GST) · 12+ $49.14 (exc GST)

## Availability & dispatch

- Available with a lead time — expect dispatch between Sep 21 and Sep 25.

## Description

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 running algorithms 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 nominal 18mA 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 us
**Heading, 8 bit:** 0-255 scaled for simpler requirements
**Pitch:** +/- 0-90° or +/- 0-180°
**Roll:** +/- 0-90°
**Temperature:** current temperature of the BNO055 in °c
**Raw sensor outputs:** 3 x 16 bit integers for each of the Magnetometer, [accelerometer](https://www.dfrobot.com/search-accelerometer.html) and gyro

![SEN0183 - Mode selection](https://core-electronics.com.au/attachments/localcontent/36735_ef69ab6792dde883dce9ba73e475deee.jpg)
**Mode selection**

Serial or I2C mode is easily selected with the state of the mode pin. Note the CMPS12 looks at the mode selection pin at power-up only. ### Specification

- Power: 3.3v-5v 18mA Typ.
- Resolution: 0.1 Degree
- Accuracy: Better than 1%
- Signal levels: 3.3v, 5v tolerant
- I2C mode: up to 400khz
- Serial mode: 9600, 19200, 38400 baud
- Heading, 16 bit: 2 outputs, one calculated by Bosch and one by us
- Heading, 8 bit: 0-255 scaled for simpler requirements
- Pitch: +/- 0-90° or +/- 0-180°
- Roll: +/- 0-90°
- Temperature: current temperature of the BNO055 in °c
- Raw sensor outputs: 3 x 16 bit integers for each of the Magnetometer, accelerometer and gyro

### Documents

- [Full Technical DataSheet](https://core-electronics.com.au/attachments/localcontent/cmps12_284972ee62c.pdf)
- [3d printed tower](https://core-electronics.com.au/attachments/localcontent/cmps-tower_58422687d87.zip)

Examples:
- I2C bus tutor - general I2C guide
- Arduino - I2C interface or a serial interface and displaying data via the serial monitor
- ATMEGA32 - reading the result and displaying on a LCD03/LCD05
- PIC18F4410 - reading the result and displaying on a LCD03/LCD05
- PIC24FJ16GA002 - reading the result and displaying on a LCD03/LCD05
- Picaxe18x - I2C communication example
- Raspberry Pi - using I2C communication

## Images

- [Product image 1](https://core-electronics.com.au/media/catalog/product/s/e/sen0183.jpg)
