Hi everyone,
There were a couple of issues with the initial PLR definition for the HamiltonTip
called TIP_50ul_L
, Hamilton’s 50 ul tip.
@ben, @rickwierenga and I troubleshooted and resolved the issues and thought it would be good practice to share the lessons learned in this post-mortem (term explanation).
When it happened
I generated the TIP_50ul_L
definition in PR#57 on 2nd January 2024 and have been using the definition successfully since then.
Ben contacted me on 7th February 2024 that he could not use my definition on his machine and together with Rick we looked into why this might be the case.
The issue was finally resolved on 15th February.
Polished versions of the code have been merged to PLR:main on 17th February.
Some lessons learned
A user-defined tip definition to integrate Hamilton 50 ul tips gave issues:
- other users couldn’t pick up the tip
- after pick up there were inaccuracies in regards to tip positioning
Troubleshooting identified 4 separate issues:
-
The
TipSize
definition and therefore firmware command “TT”, parameter “tg” was wrong: 50 ul tips areSTANDARD_VOLUME
tips as per Hamilton definition, creatingtg2
. TheTipSize
was instead incorrectly pointing towardstg6
and had to be changed. -
The
total_tip_length
was defined as 50 mm. During troubleshooting some confusion arose in regards to total_tip_length measurements and the “TT” commandtl0424
(generated by VENUS) was accidentally seen as the total_tip_length. This value actually represents the total_tip_length - fitting_depth. This lead to (soft) pipettes crashing 8 mm into the surface they were targeting.
So instead we increased the original total_tip_length definition by 0.4 mm to 50.4 mm.
-
Though the fitting depth is the same between 1000ul and 50ul tips, the tip height above the rack is not (see image below). Using
tg2
will therefore fail if thetip_rack
definition is the same between these two tips. We found that thetip_rack
dz
has to be decreased by 2 mm to accommodate for this difference in tip height above the rack.
-
A final small mistake made was that the original definition set the maximal_volume for the 50ul tip to 50ul. This was adjusted for the two different 50ul tip types, with filter
maximal_volume=60
and without filtermaximal_volume=65
. New definitions for the tipsfifty_ul_tip_no_filter()
andfifty_ul_tip_with_filter()
and
the corresponding tip_racks,TIP_50ul_L
/TIP_50ul_P
TIP_50ul_w_filter_L
/TIP_50ul_w_filter_P
have been generated and their catalogue numbers added to their docstrings for accelerated purchasing and increasing user’s confidence that they are using the right PLR definition for their purchased tips.
It is of yet unknown why tg6
actually works for 50ul tips when the tip_rack dz has not been adjusted.
Some actions from the post-mortem
Since Hamilton machines use compressed O-ring expansion (CO-RE) technology to pick up tips there are only a few tip types that can be used with these machines.
Accordingly PLR requires tip definitions to be generated as a method of the HamiltonTip()
class in the tip_creators.py
file.
Tips that can be used are therefore Hamilton designed. There are some 3rd party providers that make copies of these tips but due to the CO-RE technology requirement they almost certainly have to be geometrically identical to their Hamilton counterpart.
As a result, creating new Hamilton tip definitions is rare and the risk of the issues documented here to be re-occurring is considered low.
In case a Hamilton tip has not been defined in PLR yet, I recommend:
- checking the
TipSize
associated with the new tip, - measuring a tip top-to-bottom,
- placing the tip into a rack with 1000ul tips and measuring the difference of the new tip top to the 1000ul top,
- contacting one (or all) of the collaborators mentioned here for help with integration into PLR, citing the information you gathered from above.
NB.: If someone wants to generate a bespoke CO-RE tool for their application, they still can. Similar to the CO-RE grippers, you can pick up anything with Hamilton channels that is correctly designed (it is just beautiful engineering ).
The lessons learned from this post-mortem in regards to tool_size, fitting_depth, length_of_tool and positional accuracy of channel+tool will likely be useful in this situation.