Skip to content

Commit 99ab56d

Browse files
Merged from microscope-master
2 parents 1c0f3b1 + 7e78415 commit 99ab56d

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

microscope/controllers/asi.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,15 @@ def set_speed(self, axis: int, speed: int) -> None:
374374
axis_name = self._axis_mapper[axis]
375375
self.get_command(bytes(f"SPEED {axis_name}={speed}", "ascii"))
376376

377+
def find_max_speed(self, axis: int):
378+
axis_name = self._axis_mapper[axis]
379+
speed = 100000000
380+
#set the sepeed
381+
self.get_command(bytes(f"SPEED {axis_name}={speed}", "ascii"))
382+
#read off the max speed set by controller
383+
response=self.get_command(bytes(f"SPEED {axis_name}?", "ascii"))
384+
return(float(response.strip()[5:]))
385+
377386
def wait_for_motor_stop(self, axis: int):
378387
# give axis a chance to start maybe?
379388
time.sleep(0.2)
@@ -414,9 +423,9 @@ def __init__(self, dev_conn: _ASIController, axis: int) -> None:
414423
# mosaic etc... Maybe we just need to know it!
415424
self.min_limit = 0.0
416425
self.max_limit = 100000.0
417-
# arbitrary speed of 5 mm/s 10 is too fast for y but X appears
418-
# to be fine on my stage at this speed.
419-
self.set_speed(5)
426+
# As detailed in ASI manual set speed to 67% of max
427+
max_speed=self._dev_conn.find_max_speed(self._axis)
428+
self.set_speed(max_speed*0.67)
420429

421430
def move_by(self, delta: float) -> None:
422431
self._dev_conn.move_by_relative_position(self._axis, int(delta))

0 commit comments

Comments
 (0)