Skip to content

fix: add volume functions for Corning 96-well flat and V-bottom plates#902

Open
margaretsantiago wants to merge 3 commits intoPyLabRobot:mainfrom
margaretsantiago:fix/corning-costar-bottom-types-and-volume-functions
Open

fix: add volume functions for Corning 96-well flat and V-bottom plates#902
margaretsantiago wants to merge 3 commits intoPyLabRobot:mainfrom
margaretsantiago:fix/corning-costar-bottom-types-and-volume-functions

Conversation

@margaretsantiago
Copy link

@margaretsantiago margaretsantiago commented Feb 19, 2026

Summary
Adds proper geometry-based volume-from-height and height-from-volume functions for two Corning 96-well plates, using dimensions from Corning's MicroplateDimensions technical drawing.
Changes
height_volume_functions.py: New compute_volume_from_height_conical_frustum_in_well() and inverse. Interpolates radius at liquid height for tapered wells.
corning/plates.py: Added volume functions to Cor_96_wellplate_360ul_Fb using frustum geometry (top 6.86mm, bottom 6.35mm). New Cor_96_wellplate_320ul_Vb for standard V-bottom 96-well (cat. 3894/3896) with cone+cylinder geometry. Deprecation stub for old Cos_96_Vb name.
Verification
Flat-bottom max volume: 365.8 uL (Corning published: 360 uL, 1.6% from rounded nominal). V-bottom max volume: 319.97 uL (Corning published: 320 uL). All round-trips accurate to <0.01mm / <0.01uL.
Data sources: Corning MicroplateDimensions96-384-1536.pdf, Opentrons shared-data JSON, Corning e-catalog.

@rickwierenga
Copy link
Member

did you verify these results on a physical machine? we find that the geometry based approach is not always accurate (due to surface tension and such)

@margaretsantiago
Copy link
Author

No physical verification yet — these are based on Corning's published dimensions and geometric modeling. The computed max volumes match Corning's published specs (365.8 µL vs 360 µL for flat-bottom, 319.97 µL vs 320 µL for V-bottom). I agree geometry alone won't capture surface tension effects. I plan to do empirical validation on Tecan EVO. If you have access to another lh, please let me know. I'd gladly validate those too. Would you prefer to hold this PR until I have bench data?

@rickwierenga
Copy link
Member

yes, we find that physically validating these height <> volume functions is important because the geometrical approach is unfortunately not super accurate.

@rickwierenga
Copy link
Member

happy to proceed with merging Cor_96_wellplate_320ul_Vb based on the technical drawing in the meantime if you want to do that

@margaretsantiago
Copy link
Author

Yes, please merge.

Comment on lines +127 to +130
WELL_DIAMETER = 6.37 # diameter at cone-to-cylinder transition
CONE_HEIGHT = 1.62 # mm, back-calculated to match 320uL total volume
CYLINDER_HEIGHT = 11.12 - CONE_HEIGHT # 9.50mm
WELL_DEPTH = 11.12
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the spec says 6.86 for the top diamater, let's use the widest part

where did you find 6.37?

how did you find the cone and cylinder height?

dx Is 14.38 - well_size/2

let's use the defined constants wherever possible

how did you find material_z_thickness?

https://www.corning.com/catalog/cls/documents/drawings/DWG00848.PDF

@rickwierenga
Copy link
Member

can you please also add a documentation entry?

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