Skip to content

Commit 7e78415

Browse files
committed
ASI motor speed setting as suggestd in manula
1 parent 7710166 commit 7e78415

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
@@ -337,6 +337,15 @@ def set_speed(self, axis: int, speed: int) -> None:
337337
axis_name = self._axis_mapper[axis]
338338
self.get_command(bytes(f"SPEED {axis_name}={speed}", "ascii"))
339339

340+
def find_max_speed(self, axis: int):
341+
axis_name = self._axis_mapper[axis]
342+
speed = 100000000
343+
#set the sepeed
344+
self.get_command(bytes(f"SPEED {axis_name}={speed}", "ascii"))
345+
#read off the max speed set by controller
346+
response=self.get_command(bytes(f"SPEED {axis_name}?", "ascii"))
347+
return(float(response.strip()[5:]))
348+
340349
def wait_for_motor_stop(self, axis: int):
341350
# give axis a chance to start maybe?
342351
time.sleep(0.2)
@@ -387,9 +396,9 @@ def __init__(self, dev_conn: _ASIMotionController, axis: int) -> None:
387396
# mosaic etc... Maybe we just need to know it!
388397
self.min_limit = 0.0
389398
self.max_limit = 100000.0
390-
# arbitary speed of 5 mm/s 10 is too fast for y but X appears
391-
# to be fine on my stage at this speed.
392-
self.set_speed(5)
399+
# As detailed in ASI manual set speed to 67% of max
400+
max_speed=self._dev_conn.find_max_speed(self._axis)
401+
self.set_speed(max_speed*0.67)
393402

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

0 commit comments

Comments
 (0)