Is there a command in PLR that either initializes the robot again or moves the robot arms to the home position after a crash or error?
I am currently working on a Tecan Evo but i have the same time when using the hamilton.
Is there a command in PLR that either initializes the robot again or moves the robot arms to the home position after a crash or error?
I am currently working on a Tecan Evo but i have the same time when using the hamilton.
On Hamilton machines (I don’t know about Tecan machines):
There are various commands that “re-initialise” the machine or various parts of it:
My favourite is
await lh.backend.spread_pip_channels()
…for channel crashes.
Why:
It represents one command that…
Is this sufficient or do you need a command that also moves the arm to a specific x-position and checks the autoload (if you have one) as well?
Thanks that is a huge help.
Is there a way to specify this for a single arm such as the gripper, 8-channel pipetter or the 96-channel head?
for the pipetting channels, it’s a little more complicated:
dy = (4050 - 2175) // (star.num_channels - 1)
y_positions = [4050 - i * dy for i in range(star.num_channels)]
await star.initialize_pipetting_channels(
x_positions=[star.extended_conf["xw"]], # Tip eject waste X position.
y_positions=y_positions,
begin_of_tip_deposit_process=int(star._traversal_height * 10),
end_of_tip_deposit_process=1220,
z_position_at_end_of_a_command=3600,
tip_pattern=[True] * star.num_channels,
tip_type=4, # TODO: get from tip types
discarding_method=0,
)
(I will add a convenience function for this, we also need it :))
you can initialize individual components of pipetting channels using low-level firmware commands (I can add wrappers if this is needed often):
star.send_command(module="P<channel_idx>", command="<drive_index>I")
Y
, z drive = Z
, dispensing drive = D
, squeezer drive = S
for example: lh.backend.send_command(module="P1", command="ZI")
to initialize the z-drive on the first thannel from the back (channel 0 in plr)