Unravelling the Mysteries of the STAR 96-Head Dispensing Drive

Hi everyone,

Partly for documentation purposes and partly to ask whether someone has some more information on the STAR 96-Head’s Dispense Drive behaviour:

Single channels init/home their dispense drive’s to piston_volume=0.0 uL, making them nice and easy to understand.

However, the 96-head behaves differently:

- after initialisation 96-head dispensing drive is 215.92

- after tip pickup → ALWAYS: 218.19

- after drop tip → ALWAYS MOVES 215.9 UP !

- empty=True does move the 96-head piston all the way to piston_vol=0 !

- IF slow 96-head dispensing drive flow_rate (~10 uL/sec) is chosen, vol=-25 can be reached

This is building on top of what @rickwierenga has found in fix tip_pickup_method from_rack in STARBackend.pick_up_tips96 by rickwierenga · Pull Request #835 · PyLabRobot/pylabrobot · GitHub,

and I have now created a draft PR for some updates to the 96-head’s dispensing drive in STARBackend 96-Head Granular Control Update by BioCam · Pull Request #843 · PyLabRobot/pylabrobot · GitHub.


Yesterday, I created an .empty_tips() method for single channels that enables complete liquid removal (in place).
I wanted to create an equivalent for the 96-head but the piston_vol=-25 is probably too fragile for this purpose.

Can I please ask for feedback on whether .empty_tips96() should be implemented via…

  1. get current position, perform dispense in place with empty=True OR
  2. using head96_dispensing_drive_move_to_volume_position(vol=-25)?
2 Likes