holypipette.devices.manipulator.luigsneumann_SM10 module

Manipulator class for the Luigs and Neumann SM-10 manipulator controller.

Adapted from Michael Graupner’s LandNSM5 class.

Not all commands are implemented.

class holypipette.devices.manipulator.luigsneumann_SM10.LuigsNeumann_SM10(name=None, stepmoves=True)[source]

Bases: SerialDevice, Manipulator

absolute_move(x, axis, fast=None)[source]

Moves the device axis to position x.

Parameters:
  • axis (axis number (starting at 1))

  • x (target position in um.)

  • speed (optional speed in um/s.)

  • fast (True if fast move, False if slow move.)

absolute_move_group(x, axes, fast=None)[source]

Moves the device group of axes to position x.

Parameters:
  • axes (list of axis numbers)

  • x (target position in um (vector or list))

  • fast (True if fast move, False if slow move.)

fast_speed(axis)[source]

Queries the fast speed setting for a given axis

go_to_zero(axes)[source]

Moves axes to zero position.

home(axis)[source]

Move the axis to home.

home_abort(axis)[source]

Aborts home movement.

home_return(axis)[source]

Returns to position before home command.

position(axis)[source]

Current position along an axis.

Parameters:

axis (axis number (starting at 1))

Return type:

The current position of the device axis in um.

position2(axis)[source]

Current position along an axis, using the second counter.

Parameters:

axis (axis number (starting at 1))

Return type:

The current position of the device axis in um.

position_group(axes)[source]

Current position along a group of axes.

Parameters:

axes (list of axis numbers)

Return type:

The current position of the device axis in um (vector).

relative_move(x, axis, fast=None)[source]

Moves the device axis by relative amount x in um.

Parameters:
  • axis (axis number)

  • x (position shift in um.)

  • fast (True if fast move, False if slow move. None: decide based on distance.)

relative_move_group(x, axes, fast=None)[source]

Moves the device group of axes by relative amount x in um.

Parameters:
  • axes (list of axis numbers)

  • x (position shift in um (vector or list).)

  • fast (True if fast move, False if slow move. None: decide based on distance.)

send_command(ID, data, nbytes_answer)[source]

Send a command to the controller

set_fast_speed(axis, speed)[source]

Sets the fast speed setting for a given axis

set_home_direction(axis, direction)[source]

Sets home direction.

set_home_velocity(axis, velocity)[source]

Sets home direction. Velocity between 0 and 15.

set_ramp_length(axis, length)[source]

Sets the ramp length for the chosen axis

Parameters:
  • axis (axis number)

  • length (length between 0 and 16)

set_single_step_distance(axis, distance)[source]

Distance (in um) for single_step.

set_single_step_factor_trackball(axis, factor)[source]

Sets the single step factor with the trackball command

Parameters:
  • axis (axis number)

  • factor (single step factor (what is it ??))

set_single_step_velocity(axis, velocity)[source]

Velocity for single_step. See table rps_slow.

set_slow_speed(axis, speed)[source]

Sets the slow speed setting for a given axis

single_step(axis, steps)[source]

Moves the given axis by a signed number of steps using the StepIncrement or StepDecrement command. Using a steps argument different from 1 (or -1) simply sends multiple StepIncrement/StepDecrement commands. Uses distance and velocity set by set_single_step_distance resp. set_single_step_velocity.

single_step_trackball(axis, steps)[source]

Makes a number of single steps with the trackball command

Parameters:
  • axis (axis number)

  • steps (number of steps)

slow_speed(axis)[source]

Queries the slow speed setting for a given axis

step_move(distance, axis=None, maxstep=255)[source]

Relative move using steps of up to 255 um. This fixes a bug on L&N controller.

stop(axis)[source]

Stops current movements on one axis.

stop_all()[source]

Stops all 9 axes (could be more).

wait_until_still(axes=None)[source]

Waits for the motors to stop. On SM10, commands of motors seem to block.

zero(axes)[source]

Sets the current position of the axes as the zero position.

zero2(axes)[source]

Sets the current position of the axes as the zero position on the second counter.