Attocube ECC100 Motion Controller

Driver module for Attocube stages.

Interfaces with the ECC100 controller, which has support for various stages:
  • ECS3030
  • ECS3040
  • ECS3050
  • ECS3060
  • ECS3070
  • ECS3080
  • ECS5050
  • ECGp5050
  • ECGt5050
  • ECR3030

Note that ecc.dll must be on the system path, and that this is a windows only driver.

class instrumental.drivers.motion.ecc100.Actor(controller, axis)
__init__(controller, axis)
at_target(delta_pos=None)

Indicates whether the stage is at the target position.

delta_pos is the tolerance within which the stage is considered ‘at position’

disable()

Disables communication from the controller to the stage.

enable()

Enables communication from the controller to the stage.

enable_feedback(enable=True)

Control the positioning feedback-control loop

enable: bool, where False corresponds to OFF and True corresponds to ON

get_amplitude()

Gets the amplitude of the actuator signal.

get_frequency()

Gets the frequency of the actuator signal.

get_position()

Returns the current postion

get_ref_position()

Returns the current reference positoin

get_target()

Returns the target position of the feedback control loop.

is_enabled()

Returns whether communication to the stage is enabled.

is_feedback_on()

Indicates if the feedback-control loop is ON (True) or OFF (False)

is_ref_position_valid()

Returns whether the reference position is valid.

is_stepping_backward()
is_stepping_forward()
move_to(pos, wait=False)

Moves to a location using closed loop control.

set_amplitude(amplitude)

Sets the amplitude of the actuator signal.

This modifies the step size of the positioner.

Parameters:amplitude (pint.Quantity) – amplitude of the actuator signal in volt-compatible units. The allowed range of inputs is from 0 V to 45 V.
set_frequency(frequency)

Sets the frequency of the actuation voltage applied to the stage.

The frequency is proportional to the travel speed of the positioner.

Parameters:frequency (pint.Quantity) – frequency of the actuator signal in Hz-compatible units. The allowed range of inputs is from 1 Hz to 2 kHz.
set_target(target)

Sets the target position of the feedback control loop.

target: target position, in nm for linear stages, in micro radians for goniometers

start_stepping(backward=False)

Step continously until stopped.

This will stop any ongoing motion in the opposite direction.

step_once(backward=False)

Step once.

stop_stepping()

Stop any continuous stepping.

timed_move(direction, duration)

Moves in the specified direction for the specified duration.

direction: bool controlling the direciton of movement. True corresponds to the positive direction for linear stages and the negative direction for goniometers

duration: duration of motion, a pint quantity with units of time

wait_until_at_position(update_interval='10 ms', delta_pos=None)

Waits to return until the actor is at the target position

delta_pos is the margin within which the device is considered to be at the target position

class instrumental.drivers.motion.ecc100.ActorType
Goniometer = 1
LinearStage = 0
RotationStage = 2
class instrumental.drivers.motion.ecc100.Axis
one = 0
three = 2
two = 1
class instrumental.drivers.motion.ecc100.ECC100(device_id=None)

Interfaces with the Attocube ECC100 controller. Windows-only.

__init__(device_id=None)

Connects to the attocube controller.

id is the id of the device to be connected to

close()

Closes the connection to the controller.

get_position(actors=None)

Gets the positions of the actors in the list actors.

actors is a list of type Actor, or one can use the default actors, set by set_default_actors

get_target(actors=None)

Gets the target positions of the actors in the list actors.

Returns a list of target positions.

actors is a list of type Actor, or one can use the default actors, set by set_default_actors

move_to(positions, actors=None, wait=False)

Moves to the positions in the list positions.

actors is a list of type Actor, or one can use the default actors, set by set_default_actors

set_default_actors(actors)

Sets the default list of actors used in various functions.

Actors should be a list of instances of Actor

set_target(target, actors=None)

Sets the target positions of the actors in the list actors.

target is a list of position that are unitful pint quantities

actors is a list of type Actor, or one can use the default actors, set by set_default_actors

wait_until_at_position(actors=None, delta_pos=None)

Waits to return until all actors are at the target position

If actors is None, then the default actors are used. The default actors are set using set_default_actors

class instrumental.drivers.motion.ecc100.Goniometer(device, axis)
__init__(device, axis)
class instrumental.drivers.motion.ecc100.LinearStage(device, axis)
__init__(device, axis)
class instrumental.drivers.motion.ecc100.RotationStage(controller, axis)
class instrumental.drivers.motion.ecc100.Status
idle = 0
moving = 1
pending = 2
instrumental.drivers.motion.ecc100.check_for_devices()

Checks for devices, returns their info and how many there are.

Returns:
  • num (int) – number of devices connected
  • info (list of EccInfo) – info list. Each EccInfo object has the attributes ‘id’, and ‘locked’
instrumental.drivers.motion.ecc100.list_instruments()