Also, the only time I've come across this before has been when the battery is almost flat - the main processor works fine but the magnetometer stops working slightly before the ARM has trouble.
Please could you check Puck.getBatteryPercentage() just to make sure?
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Are you using up to date (1v92) firmware?
Also, the only time I've come across this before has been when the battery is almost flat - the main processor works fine but the magnetometer stops working slightly before the ARM has trouble.
Please could you check
Puck.getBatteryPercentage()
just to make sure?