Base Microscope Stage

class openflexure_microscope.stage.base.BaseStage[source]

Strict lock controlling thread access to camera hardware

update_settings(config: dict)[source]

Update settings from a config dictionary


Return the current settings as a dictionary


The general state dictionary of the board.


The general stage configuration.


The number of axes this stage has.


The current position, as a list


Get the distance used for backlash compensation.

move_rel(displacement: Union[int, Tuple[int, int, int]], axis: Optional[typing_extensions.Literal['x', 'y', 'z'][x, y, z]] = None, backlash: bool = True)[source]

Make a relative move, optionally correcting for backlash. displacement: integer or array/list of 3 integers backlash: (default: True) whether to correct for backlash.

move_abs(final: Tuple[int, int, int], **kwargs)[source]

Make an absolute move to a position


Set the current position to zero


Cleanly close communication with the stage

scan_linear(rel_positions: List[Tuple[int, int, int]], backlash: bool = True, return_to_start: bool = True)[source]

Scan through a list of (relative) positions (generator fn) rel_positions should be an nx3-element array (or list of 3 element arrays). Positions should be relative to the starting position - not a list of relative moves. backlash argument is passed to move_rel if return_to_start is True (default) we return to the starting position after a successful scan. NB we always attempt to return to the starting position if an exception occurs during the scan..

scan_z(dz: List[int], **kwargs)[source]

Scan through a list of (relative) z positions (generator fn) This function takes a 1D numpy array of Z positions, relative to the position at the start of the scan, and converts it into an array of 3D positions with x=y=0. This, along with all the keyword arguments, is then passed to scan_linear.