# ESP 300 Motion Controller

class pymeasure.instruments.newport.ESP300(adapter, name='Newport ESP 300 Motion Controller', **kwargs)

  Bases: `SCPIUnknownMixin`, `Instrument`

  Represents the Newport ESP 300 Motion Controller and provides a high-level for interacting with the instrument.

  By default this instrument is constructed with x, y, and phi attributes that represent axes 1, 2, and 3. Custom implementations can overwrite this depending on the available axes. Axes are controlled through an `Axis` class.

  property axes

    Get a list of the `Axis` objects that are present.

  clear_errors()

    Clears the error messages by checking until a 0 code is received.

  disable()

    Disables all of the axes associated with this controller.

  enable()

    Enables all of the axes associated with this controller.

  property error

    Get an error code from the motion controller.

  property errors

    Get a list of error Exceptions that can be later raised, or used to diagnose the situation.

  shutdown()

    Shuts down the controller by disabling all of the axes.

class pymeasure.instruments.newport.esp300.Axis(axis, controller)

  Bases: `object`

  Represents an axis of the Newport ESP300 Motor Controller, which can have independent parameters from the other axes.

  define_position(position)

    Overwrites the value of the current position with the given value.

  disable()

    Disables motion for the axis.

  enable()

    Enables motion for the axis.

  property enabled

    Returns a boolean value that is True if the motion for this axis is enabled.

  home(type=1)

    Drives the axis to the home position, which may be the negative hardware limit for some actuators (e.g. LTA-HS). type can take integer values from 0 to 6.

  property left_limit

    A floating point property that controls the left software limit of the axis.

  property motion_done

    Returns a boolean that is True if the motion is finished.

  property position

    A floating point property that controls the position of the axis. The units are defined based on the actuator. Use the `wait_for_stop()` method to ensure the position is stable.

  property right_limit

    A floating point property that controls the right software limit of the axis.

  property units

    A string property that controls the displacement units of the axis, which can take values of: encoder count, motor step, millimeter, micrometer, inches, milli-inches, micro-inches, degree, gradient, radian, milliradian, and microradian.

  wait_for_stop(delay=0, interval=0.05)

    Blocks the program until the motion is completed. A further delay can be specified in seconds.

  zero()

    Resets the axis position to be zero at the current poisiton.

class pymeasure.instruments.newport.esp300.AxisError(code)

  Bases: `Exception`

  Raised when a particular axis causes an error for the Newport ESP300.

class pymeasure.instruments.newport.esp300.GeneralError(code)

  Bases: `Exception`

  Raised when the Newport ESP300 has a general error.