From 22adbad85ff0cccd214d01c9607437fdf483ce6b Mon Sep 17 00:00:00 2001 From: Andy Sigler Date: Wed, 24 Apr 2024 15:53:11 -0400 Subject: [PATCH] chore(shared-data): Add pipette definition for P50S v3.6 (#14863) # Overview Pipette definitions for P50S v3.6, which accounts for a small hardware modification which affects the accuracy function. NOTE: function in the PR is still copied over from the v3.5 model. Updated v3.6 function will be added in a followup PR after testing is complete. # Test Plan # Changelog # Review requests # Risk assessment --------- Co-authored-by: pmoegenburg --- .../definitions/1/pipetteModelSpecs.json | 169 ++++++++++++++++++ .../2/general/single_channel/p50/3_6.json | 71 ++++++++ .../2/geometry/single_channel/p50/3_6.json | 14 ++ .../single_channel/p50/default/3_6.json | 85 +++++++++ .../p50/lowVolumeDefault/3_6.json | 81 +++++++++ 5 files changed, 420 insertions(+) create mode 100644 shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json create mode 100644 shared-data/pipette/definitions/2/geometry/single_channel/p50/3_6.json create mode 100644 shared-data/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json create mode 100644 shared-data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json diff --git a/shared-data/pipette/definitions/1/pipetteModelSpecs.json b/shared-data/pipette/definitions/1/pipetteModelSpecs.json index 18f868af81e..406ddb1fb5c 100644 --- a/shared-data/pipette/definitions/1/pipetteModelSpecs.json +++ b/shared-data/pipette/definitions/1/pipetteModelSpecs.json @@ -7475,6 +7475,175 @@ "returnTipHeight": 0.78, "idleCurrent": 0.3 }, + "p50_single_v3.6": { + "name": "p50_single_flex", + "backCompatNames": [], + "top": { + "value": 0.5, + "min": 0, + "max": 45, + "units": "mm", + "type": "float" + }, + "bottom": { + "value": 71.5, + "min": 55, + "max": 80, + "type": "float", + "units": "mm" + }, + "blowout": { + "value": 76.5, + "min": 60, + "max": 85, + "units": "mm", + "type": "float" + }, + "dropTip": { + "value": 90.5, + "min": 78, + "max": 119, + "units": "mm", + "type": "float" + }, + "pickUpCurrent": { + "value": 0.15, + "min": 0.05, + "max": 2.0, + "units": "amps", + "type": "float" + }, + "pickUpDistance": { + "value": 15, + "min": 1, + "max": 30, + "units": "mm", + "type": "float" + }, + "pickUpIncrement": { + "value": 0.0, + "min": 0.0, + "max": 10.0, + "units": "mm", + "type": "float" + }, + "pickUpPresses": { + "value": 1, + "min": 0, + "max": 10, + "units": "presses", + "type": "int" + }, + "pickUpSpeed": { + "value": 5, + "min": 1, + "max": 30, + "units": "mm/s", + "type": "float" + }, + "nozzleOffset": [-8.0, -22.0, -259.15], + "modelOffset": [0.0, 0.0, 25.14], + "ulPerMm": [ + { + "aspirate": [ + [0.6464, 0.4817, 0.0427], + [1.0889, 0.2539, 0.1591], + [1.5136, 0.1624, 0.2587], + [1.9108, 0.1042, 0.3467], + [2.2941, 0.0719, 0.4085], + [2.9978, 0.037, 0.4886], + [3.7731, 0.0378, 0.4863], + [4.7575, 0.0516, 0.4342], + [5.5024, 0.011, 0.6275], + [6.2686, 0.0114, 0.6253], + [7.005, 0.0054, 0.6625], + [8.5207, 0.0063, 0.6563], + [10.0034, 0.003, 0.6844], + [11.5075, 0.0031, 0.6833], + [13.0327, 0.0032, 0.6829], + [14.5356, 0.0018, 0.7003], + [17.5447, 0.0014, 0.7063], + [20.5576, 0.0011, 0.7126], + [23.5624, 0.0007, 0.7197], + [26.5785, 0.0007, 0.721], + [29.593, 0.0005, 0.7248], + [32.6109, 0.0004, 0.7268], + [35.6384, 0.0004, 0.727], + [38.6439, 0.0002, 0.7343], + [41.6815, 0.0004, 0.7284], + [44.6895, 0.0002, 0.7372], + [47.6926, 0.0001, 0.7393], + [51.4567, 0.0001, 0.7382] + ], + + "dispense": [ + [0.6464, 0.4817, 0.0427], + [1.0889, 0.2539, 0.1591], + [1.5136, 0.1624, 0.2587], + [1.9108, 0.1042, 0.3467], + [2.2941, 0.0719, 0.4085], + [2.9978, 0.037, 0.4886], + [3.7731, 0.0378, 0.4863], + [4.7575, 0.0516, 0.4342], + [5.5024, 0.011, 0.6275], + [6.2686, 0.0114, 0.6253], + [7.005, 0.0054, 0.6625], + [8.5207, 0.0063, 0.6563], + [10.0034, 0.003, 0.6844], + [11.5075, 0.0031, 0.6833], + [13.0327, 0.0032, 0.6829], + [14.5356, 0.0018, 0.7003], + [17.5447, 0.0014, 0.7063], + [20.5576, 0.0011, 0.7126], + [23.5624, 0.0007, 0.7197], + [26.5785, 0.0007, 0.721], + [29.593, 0.0005, 0.7248], + [32.6109, 0.0004, 0.7268], + [35.6384, 0.0004, 0.727], + [38.6439, 0.0002, 0.7343], + [41.6815, 0.0004, 0.7284], + [44.6895, 0.0002, 0.7372], + [47.6926, 0.0001, 0.7393], + [51.4567, 0.0001, 0.7382] + ] + } + ], + "plungerCurrent": { + "value": 1.0, + "min": 0.1, + "max": 1.5, + "units": "amps", + "type": "float" + }, + "dropTipCurrent": { + "value": 1.0, + "min": 0.1, + "max": 1.25, + "units": "amps", + "type": "float" + }, + "dropTipSpeed": { + "value": 7, + "min": 0.001, + "max": 30, + "units": "mm/sec", + "type": "float" + }, + "tipOverlap": { + "default": 10.5, + "opentrons/opentrons_96_tiprack_50ul/1": 10.5 + }, + "tipLength": { + "value": 78.3, + "units": "mm", + "type": "float", + "min": 0, + "max": 100 + }, + "quirks": [], + "returnTipHeight": 0.78, + "idleCurrent": 0.3 + }, "p50_single_v4.3": { "name": "p50_single_flex", "backCompatNames": [], diff --git a/shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json b/shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json new file mode 100644 index 00000000000..1f29cbf71f1 --- /dev/null +++ b/shared-data/pipette/definitions/2/general/single_channel/p50/3_6.json @@ -0,0 +1,71 @@ +{ + "$otSharedSchema": "#/pipette/schemas/2/pipettePropertiesSchema.json", + "displayName": "Flex 1-Channel 50 μL", + "model": "p50", + "displayCategory": "FLEX", + "pickUpTipConfigurations": { + "pressFit": { + "presses": 1, + "speedByTipCount": { + "1": 10.0 + }, + "increment": 0.0, + "distanceByTipCount": { + "1": 13.0 + }, + "currentByTipCount": { + "1": 0.2 + } + } + }, + "dropTipConfigurations": { + "plungerEject": { + "current": 1.0, + "speed": 15 + } + }, + "plungerMotorConfigurations": { + "idle": 0.3, + "run": 1.0 + }, + "plungerPositionsConfigurations": { + "default": { + "top": 0.0, + "bottom": 71.5, + "blowout": 76.5, + "drop": 90.5 + }, + "lowVolumeDefault": { + "top": 0.0, + "bottom": 61.5, + "blowout": 76.5, + "drop": 90.5 + } + }, + "availableSensors": { + "sensors": ["pressure", "capacitive", "environment"], + "pressure": { + "count": 1 + }, + "capacitive": { + "count": 1 + }, + "environment": { + "count": 1 + } + }, + "partialTipConfigurations": { + "partialTipSupported": false, + "availableConfigurations": null + }, + "backCompatNames": [], + "channels": 1, + "shaftDiameter": 1.0, + "shaftULperMM": 0.785, + "backlashDistance": 0.1, + "quirks": [], + "plungerHomingConfigurations": { + "current": 1.0, + "speed": 30 + } +} diff --git a/shared-data/pipette/definitions/2/geometry/single_channel/p50/3_6.json b/shared-data/pipette/definitions/2/geometry/single_channel/p50/3_6.json new file mode 100644 index 00000000000..ca5180c4415 --- /dev/null +++ b/shared-data/pipette/definitions/2/geometry/single_channel/p50/3_6.json @@ -0,0 +1,14 @@ +{ + "$otSharedSchema": "#/pipette/schemas/2/pipetteGeometrySchema.json", + "pathTo3D": "pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf", + "nozzleOffset": [-8.0, -22.0, -259.15], + "pipetteBoundingBoxOffsets": { + "backLeftCorner": [-8.0, -22.0, -259.15], + "frontRightCorner": [-8.0, -22.0, -259.15] + }, + "orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }], + "orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }], + "nozzleMap": { + "A1": [-8.0, -22.0, -259.15] + } +} diff --git a/shared-data/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json b/shared-data/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json new file mode 100644 index 00000000000..2fca659b070 --- /dev/null +++ b/shared-data/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json @@ -0,0 +1,85 @@ +{ + "$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json", + "supportedTips": { + "t50": { + "uiMaxFlowRate": 47, + "defaultAspirateFlowRate": { + "default": 35, + "valuesByApiLevel": { "2.14": 35 } + }, + "defaultDispenseFlowRate": { + "default": 57, + "valuesByApiLevel": { "2.14": 57 } + }, + "defaultBlowOutFlowRate": { + "default": 57, + "valuesByApiLevel": { "2.14": 57 } + }, + "defaultFlowAcceleration": 1200.0, + "defaultTipLength": 57.9, + "defaultReturnTipHeight": 0.71, + "aspirate": { + "default": { + "1": [ + [0.462, 0.5646, 0.0415], + [0.648, 0.3716, 0.1307], + [1.032, 0.2742, 0.1938], + [1.37, 0.1499, 0.3221], + [2.014, 0.1044, 0.3845], + [2.772, 0.0432, 0.5076], + [3.05, -0.0809, 0.8517], + [3.4, 0.0256, 0.5268], + [3.962, 0.0612, 0.4057], + [4.438, 0.0572, 0.4217], + [5.164, 0.018, 0.5955], + [5.966, 0.0095, 0.6393], + [7.38, 0.0075, 0.6514], + [9.128, 0.0049, 0.6705], + [10.16, 0.0033, 0.6854], + [13.812, 0.0024, 0.6948], + [27.204, 0.0008, 0.7165], + [50.614, 0.0002, 0.7328], + [53.046, -0.0005, 0.7676] + ] + } + }, + "dispense": { + "default": { + "1": [ + [0.462, 0.5646, 0.0415], + [0.648, 0.3716, 0.1307], + [1.032, 0.2742, 0.1938], + [1.37, 0.1499, 0.3221], + [2.014, 0.1044, 0.3845], + [2.772, 0.0432, 0.5076], + [3.05, -0.0809, 0.8517], + [3.4, 0.0256, 0.5268], + [3.962, 0.0612, 0.4057], + [4.438, 0.0572, 0.4217], + [5.164, 0.018, 0.5955], + [5.966, 0.0095, 0.6393], + [7.38, 0.0075, 0.6514], + [9.128, 0.0049, 0.6705], + [10.16, 0.0033, 0.6854], + [13.812, 0.0024, 0.6948], + [27.204, 0.0008, 0.7165], + [50.614, 0.0002, 0.7328], + [53.046, -0.0005, 0.7676] + ] + } + }, + "defaultPushOutVolume": 2 + } + }, + "defaultTipOverlapDictionary": { + "default": 10.5, + "opentrons/opentrons_flex_96_tiprack_50ul/1": 10.5, + "opentrons/opentrons_flex_96_filtertiprack_50ul/1": 10.5 + }, + "maxVolume": 50, + "minVolume": 5, + "defaultTipracks": [ + "opentrons/opentrons_flex_96_tiprack_50ul/1", + "opentrons/opentrons_flex_96_filtertiprack_50ul/1" + ] +} diff --git a/shared-data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json b/shared-data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json new file mode 100644 index 00000000000..639921290e8 --- /dev/null +++ b/shared-data/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json @@ -0,0 +1,81 @@ +{ + "$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json", + "supportedTips": { + "t50": { + "uiMaxFlowRate": 26.7, + "defaultAspirateFlowRate": { + "default": 35, + "valuesByApiLevel": { "2.14": 35 } + }, + "defaultDispenseFlowRate": { + "default": 57, + "valuesByApiLevel": { "2.14": 57 } + }, + "defaultBlowOutFlowRate": { + "default": 57, + "valuesByApiLevel": { "2.14": 57 } + }, + "defaultFlowAcceleration": 1200.0, + "defaultTipLength": 57.9, + "defaultReturnTipHeight": 0.71, + "aspirate": { + "default": { + "1": [ + [0.11, 0.207815, 0.040201], + [0.65, 0.43933, 0.014735], + [1.04, 0.256666, 0.133466], + [1.67, 0.147126, 0.247388], + [2.45, 0.078774, 0.361536], + [2.89, 0.042387, 0.450684], + [3.2, 0.014781, 0.530464], + [3.79, 0.071819, 0.347944], + [4.22, 0.051592, 0.424605], + [4.93, 0.021219, 0.552775], + [5.81, 0.023461, 0.541725], + [7.21, 0.008959, 0.625982], + [8.93, 0.005456, 0.651235], + [10.0, 0.007108, 0.636489], + [13.61, 0.002591, 0.681656], + [26.99, 0.001163, 0.701094], + [45.25, 0.000207, 0.726887] + ] + } + }, + "dispense": { + "default": { + "1": [ + [0.11, 0.207815, 0.040201], + [0.65, 0.43933, 0.014735], + [1.04, 0.256666, 0.133466], + [1.67, 0.147126, 0.247388], + [2.45, 0.078774, 0.361536], + [2.89, 0.042387, 0.450684], + [3.2, 0.014781, 0.530464], + [3.79, 0.071819, 0.347944], + [4.22, 0.051592, 0.424605], + [4.93, 0.021219, 0.552775], + [5.81, 0.023461, 0.541725], + [7.21, 0.008959, 0.625982], + [8.93, 0.005456, 0.651235], + [10.0, 0.007108, 0.636489], + [13.61, 0.002591, 0.681656], + [26.99, 0.001163, 0.701094], + [45.25, 0.000207, 0.726887] + ] + } + }, + "defaultPushOutVolume": 7 + } + }, + "defaultTipOverlapDictionary": { + "default": 10.5, + "opentrons/opentrons_flex_96_tiprack_50ul/1": 10.5, + "opentrons/opentrons_flex_96_filtertiprack_50ul/1": 10.5 + }, + "maxVolume": 30, + "minVolume": 1, + "defaultTipracks": [ + "opentrons/opentrons_flex_96_tiprack_50ul/1", + "opentrons/opentrons_flex_96_filtertiprack_50ul/1" + ] +}