Skip to content

Commit

Permalink
feat(shared-data, api): add uiMaxFlowRate key to pipette definitions (#…
Browse files Browse the repository at this point in the history
…14859)

closes AUTH-328

This PR add max flow rate values to each GEN2 and GEN3 pipette model
definition to be used for FE applications.

Rather than having a max flow rate for every pipette's supported tip's
volume for aspirate and dispense, we have only 1 max flow rate for every
pipette's supported tip that is. That value is based off of the lowest
volume minus 2% to account for safety.

For example:
`p1000_single_v3.6` has a `minVolume` of 5uL. The `t50` tips has a max
flow rate at volume 5uL of `801.3`. So the `uiMaxFlowRate` value is 98%
of that which is `785.2`

🔈 Additionally, the `lowVolumeDefault` default flow rates for
`aspirate`, `dispense`, and `blowout` have been changed to match the
`uiMaxFlowRate`. This DOES NOT result in a physical change behavior and
the change is needed for ui purposes.
  • Loading branch information
jerader committed Apr 17, 2024
1 parent 86e1d47 commit aae8a10
Show file tree
Hide file tree
Showing 38 changed files with 207 additions and 43 deletions.
11 changes: 6 additions & 5 deletions api/src/opentrons/hardware_control/instruments/ot2/pipette.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,19 @@
InvalidLiquidClassName,
CommandPreconditionViolated,
)
from opentrons_shared_data.pipette.ul_per_mm import (
piecewise_volume_conversion,
PIPETTING_FUNCTION_FALLBACK_VERSION,
PIPETTING_FUNCTION_LATEST_VERSION,
)


from opentrons.types import Point, Mount
from opentrons.config import robot_configs
from opentrons.config.types import RobotConfig
from opentrons.drivers.types import MoveSplit
from ..instrument_abc import AbstractInstrument
from ..instrument_helpers import (
piecewise_volume_conversion,
PIPETTING_FUNCTION_FALLBACK_VERSION,
PIPETTING_FUNCTION_LATEST_VERSION,
)

from .instrument_calibration import (
PipetteOffsetByPipetteMount,
load_pipette_offset,
Expand Down
4 changes: 2 additions & 2 deletions api/src/opentrons/hardware_control/instruments/ot3/pipette.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@
CommandPreconditionViolated,
PythonException,
)
from ..instrument_abc import AbstractInstrument
from ..instrument_helpers import (
from opentrons_shared_data.pipette.ul_per_mm import (
piecewise_volume_conversion,
PIPETTING_FUNCTION_FALLBACK_VERSION,
PIPETTING_FUNCTION_LATEST_VERSION,
)
from ..instrument_abc import AbstractInstrument
from .instrument_calibration import (
save_pipette_offset_calibration,
load_pipette_offset,
Expand Down
14 changes: 8 additions & 6 deletions shared-data/js/__tests__/pipettes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ describe('pipette data accessors', () => {
minVolume: 5,
supportedTips: {
t50: {
uiMaxFlowRate: 47,
aspirate: {
default: {
1: expect.anything(),
Expand Down Expand Up @@ -205,27 +206,28 @@ describe('pipette data accessors', () => {
minVolume: 1,
supportedTips: {
t50: {
uiMaxFlowRate: 26.7,
aspirate: {
default: {
1: expect.anything(),
},
},
defaultAspirateFlowRate: {
default: 35,
default: 26.7,
valuesByApiLevel: {
2.14: 35,
2.14: 26.7,
},
},
defaultBlowOutFlowRate: {
default: 57,
default: 26.7,
valuesByApiLevel: {
2.14: 57,
2.14: 26.7,
},
},
defaultDispenseFlowRate: {
default: 57,
default: 26.7,
valuesByApiLevel: {
2.14: 57,
2.14: 26.7,
},
},
defaultFlowAcceleration: 1200,
Expand Down
1 change: 1 addition & 0 deletions shared-data/js/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -492,6 +492,7 @@ export interface SupportedTip {
}
defaultReturnTipHeight?: number
defaultFlowAcceleration?: number
uiMaxFlowRate?: number
}

export interface SupportedTips {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 808.3,
"defaultAspirateFlowRate": {
"default": 6,
"valuesByApiLevel": { "2.14": 6 }
Expand Down Expand Up @@ -116,6 +117,7 @@
"defaultPushOutVolume": 7
},
"t200": {
"uiMaxFlowRate": 905.7,
"defaultAspirateFlowRate": {
"default": 80,
"valuesByApiLevel": { "2.14": 80 }
Expand Down Expand Up @@ -228,6 +230,7 @@
"defaultPushOutVolume": 5
},
"t1000": {
"uiMaxFlowRate": 787.7,
"defaultAspirateFlowRate": {
"default": 160,
"valuesByApiLevel": { "2.14": 160 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 808.3,
"defaultAspirateFlowRate": {
"default": 478,
"valuesByApiLevel": { "2.14": 478 }
Expand Down Expand Up @@ -116,6 +117,7 @@
"defaultPushOutVolume": 7
},
"t200": {
"uiMaxFlowRate": 905.7,
"defaultAspirateFlowRate": {
"default": 716,
"valuesByApiLevel": { "2.14": 716 }
Expand Down Expand Up @@ -228,6 +230,7 @@
"defaultPushOutVolume": 5
},
"t1000": {
"uiMaxFlowRate": 787.7,
"defaultAspirateFlowRate": {
"default": 716,
"valuesByApiLevel": { "2.14": 716 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 802.9,
"defaultAspirateFlowRate": {
"default": 478,
"valuesByApiLevel": { "2.14": 478 }
Expand Down Expand Up @@ -82,6 +83,7 @@
"defaultPushOutVolume": 7
},
"t200": {
"uiMaxFlowRate": 847.9,
"defaultAspirateFlowRate": {
"default": 716,
"valuesByApiLevel": { "2.14": 716 }
Expand Down Expand Up @@ -160,6 +162,7 @@
"defaultPushOutVolume": 5
},
"t1000": {
"uiMaxFlowRate": 744.6,
"defaultAspirateFlowRate": {
"default": 716,
"valuesByApiLevel": { "2.14": 716 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t20": {
"uiMaxFlowRate": 25,
"defaultAspirateFlowRate": {
"default": 7.6,
"valuesByApiLevel": { "2.0": 7.6 }
Expand Down Expand Up @@ -86,6 +87,7 @@
"defaultPushOutVolume": 0
},
"t10": {
"uiMaxFlowRate": 23,
"defaultAspirateFlowRate": {
"default": 7.6,
"valuesByApiLevel": { "2.0": 7.6 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t200": {
"uiMaxFlowRate": 335.3,
"defaultAspirateFlowRate": {
"default": 94,
"valuesByApiLevel": { "2.0": 94 }
Expand Down Expand Up @@ -89,6 +90,7 @@
"defaultPushOutVolume": 0
},
"t300": {
"uiMaxFlowRate": 335.3,
"defaultAspirateFlowRate": {
"default": 94,
"valuesByApiLevel": { "2.0": 94 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 46.8,
"defaultAspirateFlowRate": {
"default": 8,
"valuesByApiLevel": { "2.14": 8 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 46.8,
"defaultAspirateFlowRate": {
"default": 35,
"valuesByApiLevel": { "2.14": 35 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 46.7,
"defaultAspirateFlowRate": {
"default": 35,
"valuesByApiLevel": { "2.14": 35 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 32.6,
"defaultAspirateFlowRate": {
"default": 8,
"valuesByApiLevel": { "2.14": 8 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 32.6,
"defaultAspirateFlowRate": {
"default": 35,
"valuesByApiLevel": { "2.14": 35 }
"default": 32.6,
"valuesByApiLevel": { "2.14": 32.6 }
},
"defaultDispenseFlowRate": {
"default": 57,
"valuesByApiLevel": { "2.14": 57 }
"default": 32.6,
"valuesByApiLevel": { "2.14": 32.6 }
},
"defaultBlowOutFlowRate": {
"default": 57,
"valuesByApiLevel": { "2.14": 57 }
"default": 32.6,
"valuesByApiLevel": { "2.14": 32.6 }
},
"defaultFlowAcceleration": 1200.0,
"defaultTipLength": 57.9,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 32.6,
"defaultAspirateFlowRate": {
"default": 35,
"valuesByApiLevel": { "2.14": 35 }
"default": 32.6,
"valuesByApiLevel": { "2.14": 32.6 }
},
"defaultDispenseFlowRate": {
"default": 57,
"valuesByApiLevel": { "2.14": 57 }
"default": 32.6,
"valuesByApiLevel": { "2.14": 32.6 }
},
"defaultBlowOutFlowRate": {
"default": 57,
"valuesByApiLevel": { "2.14": 57 }
"default": 32.6,
"valuesByApiLevel": { "2.14": 32.6 }
},
"defaultFlowAcceleration": 1200.0,
"defaultTipLength": 57.9,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 189.1,
"defaultAspirateFlowRate": {
"default": 6,
"valuesByApiLevel": { "2.14": 6 }
Expand Down Expand Up @@ -56,6 +57,7 @@
"defaultPushOutVolume": 7
},
"t200": {
"uiMaxFlowRate": 185.1,
"defaultAspirateFlowRate": {
"default": 80,
"valuesByApiLevel": { "2.14": 80 }
Expand Down Expand Up @@ -108,6 +110,7 @@
"defaultPushOutVolume": 5
},
"t1000": {
"uiMaxFlowRate": 184.8,
"defaultAspirateFlowRate": {
"default": 160,
"valuesByApiLevel": { "2.14": 160 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 189.1,
"defaultAspirateFlowRate": {
"default": 6,
"valuesByApiLevel": { "2.14": 6 }
Expand Down Expand Up @@ -56,6 +57,7 @@
"defaultPushOutVolume": 7
},
"t200": {
"uiMaxFlowRate": 185.1,
"defaultAspirateFlowRate": {
"default": 80,
"valuesByApiLevel": { "2.14": 80 }
Expand Down Expand Up @@ -108,6 +110,7 @@
"defaultPushOutVolume": 5
},
"t1000": {
"uiMaxFlowRate": 184.8,
"defaultAspirateFlowRate": {
"default": 160,
"valuesByApiLevel": { "2.14": 160 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 189.1,
"defaultAspirateFlowRate": {
"default": 6,
"valuesByApiLevel": { "2.14": 6 }
Expand Down Expand Up @@ -56,6 +57,7 @@
"defaultPushOutVolume": 7
},
"t200": {
"uiMaxFlowRate": 185.1,
"defaultAspirateFlowRate": {
"default": 80,
"valuesByApiLevel": { "2.14": 80 }
Expand Down Expand Up @@ -108,6 +110,7 @@
"defaultPushOutVolume": 5
},
"t1000": {
"uiMaxFlowRate": 185.1,
"defaultAspirateFlowRate": {
"default": 160,
"valuesByApiLevel": { "2.14": 160 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t50": {
"uiMaxFlowRate": 194,
"defaultAspirateFlowRate": {
"default": 6,
"valuesByApiLevel": { "2.14": 6 }
Expand Down Expand Up @@ -56,6 +57,7 @@
"defaultPushOutVolume": 7
},
"t200": {
"uiMaxFlowRate": 194,
"defaultAspirateFlowRate": {
"default": 80,
"valuesByApiLevel": { "2.14": 80 }
Expand Down Expand Up @@ -108,6 +110,7 @@
"defaultPushOutVolume": 5
},
"t1000": {
"uiMaxFlowRate": 187.2,
"defaultAspirateFlowRate": {
"default": 160,
"valuesByApiLevel": { "2.14": 160 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t1000": {
"uiMaxFlowRate": 1018.6,
"defaultAspirateFlowRate": {
"default": 274.7,
"valuesByApiLevel": { "2.0": 137.35, "2.6": 274.7 }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json",
"supportedTips": {
"t1000": {
"uiMaxFlowRate": 1020.7,
"defaultAspirateFlowRate": {
"default": 274.7,
"valuesByApiLevel": { "2.0": 137.35, "2.6": 274.7 }
Expand Down
Loading

0 comments on commit aae8a10

Please sign in to comment.