The micro:bit has an on board compass. This compass has to be calibrated the first time that it is used, so that the readings that it produces are accurate. When you load a program into the micro:bit and your program tries to read from the compass, it will scroll the words 'DRAW A CIRCLE' or 'TILT TO FILL SCREEN' on the screen. Hold the micro:bit horizontally and tilt it on the spot trying to fill in the circle or the screen. After you have done this, your program will run.

Make sure that you calibrate your compass in the same environment where you will be using it, to get the best accuracy - e.g. if you are using it in a classroom, calibrate it in the classroom. Also, because the magnetometer is sensitive to magnetic fields, please don't attach the micro:bit to any metal objects or rest it on a metal table, as this will affect both the calibration and the accuracy of the reading in normal use.

In the Javascript Blocks Editor, compass calibration is stored in non volatile memory, so next time you press the reset button or remove and replace the power to the micro:bit it will remember the calibration. However, this non volatile memory is cleared when you flash a new program to your micro:bit, so you will have to re-calibrate it if you load a new program.

In the and editors, currently the compass calibration is not stored and you will have to perform the calibration procedure each time you reset or power down and power up your micro:bit.

Attached is a video of how to calibrate the compass.