# Compass Heading Get the compass heading of the micro:bit in degrees. Your micro:bit has a built-in **magnetometer** so it can your direction with respect to the North Magnetic Pole. ```sig input.compassHeading(); ``` ### Returns * [Number](/reference/types/number) - the heading in degrees (0 to 360 degrees). If the compass is calibrating, it returns ``-1003``. ## Simulator Calibration does not work on the simulator. ### Example The following code gets the compass heading and stores it in the `degrees` variable: ```blocks let degrees = input.compassHeading() ``` ### ~hint When running code with this function in a web browser, click and drag the on-screen compass needle to change heading. ### ~ ### Example: compass The following example gets the `compass heading` and then displays a letter depending on the value of `degrees`: N for north, E for East, S for South, and W for West. ```blocks basic.forever(() => { let degrees = input.compassHeading() if (degrees < 45) basic.showString("N") else if (degrees < 135) basic.showString("E") else if (degrees < 225) basic.showString("S") else basic.showString("W") }) ``` ### Calibration On the first use of the compass, the **calibration** procedure will automatically start. The user must draw a circle with the device until it is fully calibrated. An enclosure made from metal, or using in proximity of metal objects, might affect the accuracy of the reading and calibration. During calibration, ``compass heading`` returns ``-1003``. ### Lessons [compass](/lessons/compass) ### See also [acceleration](/reference/input/acceleration)