🧭

Compass

Heading in degrees, stated plainly

Page 43 of 45 MCP / API open OTA updates

Page 43 reads a QMC5883L (I2C 0x0D) as an electronic compass: heading in large digits with an eight-point bearing (N / NE / E …), the three axis values on the right, and the health score at the bottom.

Heading comes from `atan2(Y, X)` normalised to 0–360°. Initialisation follows the datasheet order: `0x0B=0x01` enables the SET/RESET period, `0x09=0x1D` selects OSR512 / ±8G / 200 Hz continuous, then six bytes are read from `0x00`–`0x05` (X/Y/Z, two bytes each, little-endian).

Screen

On-screen interface

A recreation of this page on the 2.41-inch AMOLED display (600 × 450). Actual interaction and layout follow the latest firmware.

Compass QMC5883L · 0x0D
Heading214° · SW
X / Y / Z+182 / -146 / +38
Range / rate±8 G · 200 Hz cont.
Mountinglevel · no tilt comp.
Health90
Jitters near motors/speakers/steel — expected
Screen · Page 43
May differ from the actual interface; the screen of the real device is the final reference.
Highlights

Key capabilities

🧭

Heading + bearing

Degrees and the compass point together, no mental arithmetic.

📊

Raw axes

X/Y/Z values show which direction interference comes from.

⚙️

Continuous mode

200 Hz continuous sampling, so rotation stays smooth.

🩺

Health score

Missing, wrong ID and jittery readings are reported separately.

Specifications

Technical specs

SensorQMC5883L (not HMC5883L)
I2C address0x0D
Range±8 G, OSR 512, 200 Hz continuous
Data0x00–0x05, X/Y/Z two bytes each, little-endian
Headingatan2(Y, X) normalised to 0–360°
Use Cases

Typical scenarios

Mounting direction

Confirm which way the antenna or camera faces once installed.

Interference hunting

When an axis value jumps, move motors or speakers away.

Commands

Related commands

page 43  Open the compass
qmc  Read heading and raw axes once
qmc on | off  Start or stop continuous sampling

Read the full API & command reference →

⚠ Boundaries & notes
  • This is 0x0D, not the HMC5883L at 0x1E — the drivers are not interchangeable, and the wrong module stays “not found”.
  • Most accurate when level; there is no tilt compensation, so heading drifts when tilted.
  • Motors, speakers and steel desks nearby make it jump — expected behaviour.

Other feature pages