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

Copy link
Author

Choose a reason for hiding this comment

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

Hi Rick,

Thank you for the thorough review. Going through each one:

  1. "the spec says 6.86 for the top diameter, let's use the widest part” — that works. I’ll recalculate using 6.86 instead of 6.37. I’ve also created a separate file for my own reference to account for both top and bottom diameters based on manufacturer’s specs. This way I can continuously cross-reference various specs with bench data and physical tests, using different liquids. I plan to collect data on cone-height, cone-angles, height of V section.

  2. “where did you find 6.37?” From Corning’s website, Corning Microplate Dimensions PDF lists top and bottom diameters across varying microplates.

  3. "dx Is 14.38 - well_size/2” — Sounds good. The use of 14.3 came directly from Corning’s website, Corning Microplate Dimensions PDF

  4. "how did you find the cone and cylinder height?” Cone height — was back calculated to match 320uL total volume. Cylinder height — I used Corning’s “well depth” measurement (see link above) and subtracted cone height

  5. "let's use the defined constants wherever possible” - Let’s do that.

  6. "how did you find material_z_thickness?” — I received data from a research student who measured a cross-section of a 96-well v-bottom plate that was going to be disposed. I do plan to take my own physical measurements as soon as the plates arrive.

CorningMicroplateDimensions.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