A method to control a device, comprising: determining, by a magnetometer of a device (140; 242; 230; 410), a reference magnetic field measurement, the reference magnetic field measurement specifying a strength and a direction of a surrounding magnetic field that surrounds the magnetometer; determining, by the magnetometer of a device, a series of subsequent magnetic field measurements, each subsequent magnetic field measurement specifying a strength and a direction of a surrounding magnetic field that surrounds the magnetometer; for each subsequent magnetic field measurement: determining, by a processor of the device, a difference between the reference magnetic field measurement and the subsequent magnetic field measurement; characterised by determining, by the processor of the device, whether the difference between the reference magnetic measurement and the subsequent magnetic field measurement meets a threshold change; for each difference that does meet the threshold change, determining, based on an input model that models differences in the surrounding magnetic field for a plurality of user inputs, a user input to the device; for each difference that does not meet the threshold change, not interpreting the difference as a user input to the device; and wherein the input model maps the changes in the three-dimensional magnetic field vector and changes in the magnitude of the vector to a plurality of inputs by mapping each of the plurality of inputs to discrete changes in a direction of three-dimensional magnetic field vector and discrete changes in the magnitude of the vector to a plurality of input. determining, by a magnetometer of a device (140; 242; 230; 410), a reference magnetic field measurement, the reference magnetic field measurement specifying a strength and a direction of a surrounding magnetic field that surrounds the magnetometer; determining, by the magnetometer of a device, a series of subsequent magnetic field measurements, each subsequent magnetic field measurement specifying a strength and a direction of a surrounding magnetic field that surrounds the magnetometer; for each subsequent magnetic field measurement: determining, by a processor of the device, a difference between the reference magnetic field measurement and the subsequent magnetic field measurement; characterised by determining, by the processor of the device, whether the difference between the reference magnetic measurement and the subsequent magnetic field measurement meets a threshold change; determining, by a processor of the device, a difference between the reference magnetic field measurement and the subsequent magnetic field measurement; characterised by determining, by the processor of the device, whether the difference between the reference magnetic measurement and the subsequent magnetic field measurement meets a threshold change; for each difference that does meet the threshold change, determining, based on an input model that models differences in the surrounding magnetic field for a plurality of user inputs, a user input to the device; for each difference that does not meet the threshold change, not interpreting the difference as a user input to the device; and wherein the input model maps the changes in the three-dimensional magnetic field vector and changes in the magnitude of the vector to a plurality of inputs by mapping each of the plurality of inputs to discrete changes in a direction of three-dimensional magnetic field vector and discrete changes in the magnitude of the vector to a plurality of input.