Skip to content

Conversation

@rickwierenga
Copy link
Member

@rickwierenga rickwierenga commented Jan 29, 2026

long overdue remodeling of TipRacks

see forum thread for background: https://discuss.pylabrobot.org/t/revising-tipracks/71/

I will write some more information as we finalize work in this PR

high level:

  • tip spots have no size z anymore, they are flat surfaces at the top of the hole
  • introduce EmbeddedTipRack and EmbeddedTipRackHolder per forum thread
  • introduce StandingTipRack per forum thread
  • update star backend accordingly to make tests pass
    • this works for 1000uL tips.
    • for 10uL tips, venus has the end_tip_pick_up_process at 0.2mm lower than 1000uL, and I believe 0.2mm lower than what it be. in any case, 10 and 1000uL tips should have the same end_tip_pick_up_process
  • add collar_height to HamiltonTip (for now), later to be moved to Tip
  • introduce a single hamilton_universal_rack, because the hardware is just one identical piece for all tip racks, no matter which tips they contain

@rickwierenga rickwierenga marked this pull request as draft January 29, 2026 00:32
rickwierenga and others added 7 commits January 29, 2026 14:03
- Add collar_height parameter to Tip.__init__, stored as _collar_height
- Add collar_height property that raises ValueError if not defined
- Update serializer to use custom deserialize method when available
- Update HamiltonTip to pass collar_height to parent

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add frame_height parameter to TipRack.__init__, stored as _frame_height
- Add frame_height property that raises ValueError if not defined
- Pass frame_height through EmbeddedTipRack to parent
- Set frame_height=10.0 for hamilton_universal_rack

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- pick_up_tips: use collar_height instead of total_tip_length
- drop_tips: use (total_tip_length - collar_height) for tip extension

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update expected location z to account for sinking_depth (-6.1mm)
- Update expected tp/tz values for collar_height-based formulas

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
rickwierenga and others added 12 commits January 29, 2026 19:07
Tests verify firmware command strings for 10, 50, 300, and 1000 uL tips:
- 10uL: tp2224/tz2164 pickup, tp2224/tz2144 drop
- 50uL: tp2244/tz2164 pickup, tp2244/tz2164 drop
- 300uL: tp2244/tz2164 pickup, tp2244/tz2164 drop
- 1000uL: tp2264/tz2164 pickup, tp2264/tz2184 drop

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests verify firmware command strings for 10, 50, 300, and 1000 uL tips:
- 10uL: tp2224/tz2164 pickup, tp2025/tz1925 drop
- 50uL: tp2244/tz2164 pickup, tp1840/tz1740 drop
- 300uL: tp2244/tz2164 pickup, tp1745/tz1645 drop
- 1000uL: tp2264/tz2164 pickup, tp1413/tz1313 drop

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updated the hole depth (dz) from 7.52mm to 7.7mm which better matches
the 1000uL tip geometry and eliminates the 0.18mm discrepancy in
pickup/drop positions. Updated all STAR and Vantage tests accordingly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Inline Z calculations into pick_up_tips and drop_tips
- Validate all tips have same collar_height, fitting_depth, total_tip_length
- Use NimbusTipType to determine per-tip offsets for machine-validated values
- Tests assign tip racks at Z=-6.1mm (sinking_depth offset)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants