На деле оказывается, что при координате больше 8 миллионов устройство ведёт себя странно. Сообщает, что разница между текущей координатой и расстоянием перемещения отрицательны. Но как это отрицательны, когда 8 миллионов минус пара тысяч -- явно положительное число?
Оказывается, что, несмотря на документацию, на самом деле! координата воспринимается как 24-битовое число со знаком (в дополнительном коде)! Поэтому координата больше 8 миллионов (2^23==8388608) воспринимается устройством как отрицательная со всеми вытекающими последствиями. Разница между отрицательным числом и положительным -- отрицательна.