Skip to content

Dead Zone

Tim Long edited this page Feb 18, 2020 · 1 revision

About the Dead Zone

The NexDome rotator firmware has a concept known as the Dead Zone, which is used to protect the user and equipment from unnecessary small movements.

Definition

The Dead Zone is essentially the smallest move (in whole motor steps) that the rotator is willing to make. Any movement request that would result in a move smaller than or equal to the dead zone will be silently ignored.

Why is it Needed?

The need for a 'dead zone' essentiall stems from the fact that client applications may use floating point arithmetic to computer the desired azimuth position, but at some point this must be converted to an integer to complete the movement - either an integer number of degrees (@GAR command) or an integer number of motor steps (@GSR command). The final integer step position then has to be converted back to a floating point value for the client application. The chances of the input and output values being equal are close to zero. Therefore, a client application may repeatedly request small moves that cannot be accurately carried out. This may result in the rotator "hunting" to and fro around the desired position, or it may result in annoying "clunk" sounds as the motor coild are energized and de-energized unnecessarily. This is annoying and places unnecessary wear and tear on the motors and gears.

This can all be avoided by rejecting small movement requests, and this is the purpose of the Dead Zone.

Configuration

The dead zone is a user configurable value given in whole motor steps.

The value is read using the @DRR command and written using the @DWR command (see Command Protocol).

You can opt to set your dead zone to zero, which effectively disables the dead zone so that all movement requests will be actioned.