Strange Motor Behaviour for Small Angle Change

Hi, I’m using a motor to rotate a ring, and some strange behaviour I’ve noticed, is that lets say the motor’s current angle is arbitrarily at say 4 radians. If I then want to change the desired angle to then be only a tiny amount away from 4, such as 4.145, the desired angle will refuse to update, no matter whether I set it via Motor.DesiredAngle = 4.145
or
Motor:SetDesiredAngle(4.145)
The motor seems to happily accept new desired angles sufficiently larger than the current set angle.

Here is my relevant code in-case there may be a slip-up I haven’t seen, causing this behaviour:

	if priv.dialDir == 1 and dir == 1 then
		rotateAngle = Motor.CurrentAngle + (2 * math.pi - angle)
		print("Right and Clockwise")
		print("Angle: "..tostring(rotateAngle))
	elseif priv.dialDir == 1 and dir == -1 then
		rotateAngle = Motor.CurrentAngle + angle
		print("Left and Clockwise")
		print("Angle: "..tostring(rotateAngle))
	elseif priv.dialDir == -1 and dir == 1 then
		rotateAngle = Motor.CurrentAngle - angle
		print("Right and AntiClockwise")
		print("Angle: "..tostring(rotateAngle))
	elseif priv.dialDir == -1 and dir == -1 then
		rotateAngle = Motor.CurrentAngle -(2 * math.pi - angle)
		print("Left and AntiClockwise")
		print("Angle: "..tostring(rotateAngle))
	end
	Motor.DesiredAngle = rotateAngle
	repeat
		wait()
	until Motor.CurrentAngle == Motor.DesiredAngle or (not priv.universeActive)

Anyone experienced this sort of small angle change behaviour?

Thanks

This is a well known issue, unfortunately :C I don’t think there’s any good way of fixing it. Try setting it temporarily to a much bigger angle difference, and then shortly after to the actual desired angle.

I’m really hoping we get more control of this in the future

I believe the fix I’m working on now will address this, assuming the issue is caused by sleeping parts. Could you send your model so I can do testing with it to verify?