@@ -1382,19 +1382,7 @@ async def setup(
13821382 await self .pre_initialize_instrument ()
13831383
13841384 if not initialized or any (tip_presences ):
1385- dy = (4050 - 2175 ) // (self .num_channels - 1 )
1386- y_positions = [4050 - i * dy for i in range (self .num_channels )]
1387-
1388- await self .initialize_pipetting_channels (
1389- x_positions = [self .extended_conf ["xw" ]], # Tip eject waste X position.
1390- y_positions = y_positions ,
1391- begin_of_tip_deposit_process = int (self ._channel_traversal_height * 10 ),
1392- end_of_tip_deposit_process = 1220 ,
1393- z_position_at_end_of_a_command = 3600 ,
1394- tip_pattern = [True ] * self .num_channels ,
1395- tip_type = 4 , # TODO: get from tip types
1396- discarding_method = 0 ,
1397- )
1385+ await self .initialize_pip ()
13981386
13991387 if self .autoload_installed and not skip_autoload :
14001388 autoload_initialized = await self .request_autoload_initialization_status ()
@@ -4031,6 +4019,22 @@ async def request_right_x_arm_last_collision_type(self) -> bool:
40314019
40324020 # -------------- 3.5.1 Initialization --------------
40334021
4022+ async def initialize_pip (self ):
4023+ """Wrapper around initialize_pipetting_channels firmware command."""
4024+ dy = (4050 - 2175 ) // (self .num_channels - 1 )
4025+ y_positions = [4050 - i * dy for i in range (self .num_channels )]
4026+
4027+ await self .initialize_pipetting_channels (
4028+ x_positions = [self .extended_conf ["xw" ]], # Tip eject waste X position.
4029+ y_positions = y_positions ,
4030+ begin_of_tip_deposit_process = int (self ._channel_traversal_height * 10 ),
4031+ end_of_tip_deposit_process = 1220 ,
4032+ z_position_at_end_of_a_command = 3600 ,
4033+ tip_pattern = [True ] * self .num_channels ,
4034+ tip_type = 4 , # TODO: get from tip types
4035+ discarding_method = 0 ,
4036+ )
4037+
40344038 async def initialize_pipetting_channels (
40354039 self ,
40364040 x_positions : List [int ] = [0 ],
0 commit comments