diff --git a/app/src/organisms/ODD/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts index 29e0847bf02..38d62455854 100644 --- a/app/src/organisms/ODD/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts +++ b/app/src/organisms/ODD/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts @@ -14,7 +14,8 @@ export function generateCompatibleLabwareForPipette( (acc, definition) => { if ( definition.allowedRoles != null && - definition.allowedRoles.includes('adapter') + (definition.allowedRoles.includes('adapter') || + definition.allowedRoles.includes('lid')) ) { return acc } else if (pipetteSpecs.channels === 1) { diff --git a/components/src/images/labware/measurement-guide/index.ts b/components/src/images/labware/measurement-guide/index.ts index b866627db1d..6b6c5e14fee 100644 --- a/components/src/images/labware/measurement-guide/index.ts +++ b/components/src/images/labware/measurement-guide/index.ts @@ -107,6 +107,10 @@ const FOOTPRINT_DIAGRAMS: Diagrams = { new URL(FOOTPRINT_IMAGE_RELATIVE_PATH, import.meta.url).href, new URL(DIMENSIONS_HEIGHT_PLATE_IMAGE_RELATIVE_PATH, import.meta.url).href, ], + lid: [ + new URL(FOOTPRINT_IMAGE_RELATIVE_PATH, import.meta.url).href, + new URL(DIMENSIONS_HEIGHT_PLATE_IMAGE_RELATIVE_PATH, import.meta.url).href, + ], } const ALUM_BLOCK_FOOTPRINTS: Diagrams = { diff --git a/labware-library/src/components/labware-ui/labware-images.ts b/labware-library/src/components/labware-ui/labware-images.ts index 36fe2cb8dfb..8df00e07f2a 100644 --- a/labware-library/src/components/labware-ui/labware-images.ts +++ b/labware-library/src/components/labware-ui/labware-images.ts @@ -468,4 +468,13 @@ export const labwareImages: Record = { import.meta.url ).href, ], + opentrons_tough_pcr_auto_sealing_lid: [ + new URL( + '../../images/opentrons_tough_pcr_auto_sealing_lid.jpg', + import.meta.url + ).href, + ], + opentrons_flex_deck_riser: [ + new URL('../../images/opentrons_flex_deck_riser.jpg', import.meta.url).href, + ], } diff --git a/labware-library/src/images/opentrons_flex_deck_riser.jpg b/labware-library/src/images/opentrons_flex_deck_riser.jpg new file mode 100644 index 00000000000..b8576833538 Binary files /dev/null and b/labware-library/src/images/opentrons_flex_deck_riser.jpg differ diff --git a/labware-library/src/images/opentrons_tough_pcr_auto_sealing_lid.jpg b/labware-library/src/images/opentrons_tough_pcr_auto_sealing_lid.jpg new file mode 100644 index 00000000000..a81c42b2d2c Binary files /dev/null and b/labware-library/src/images/opentrons_tough_pcr_auto_sealing_lid.jpg differ diff --git a/labware-library/src/localization/en.ts b/labware-library/src/localization/en.ts index 07e7bda76d1..9745ed44fb2 100644 --- a/labware-library/src/localization/en.ts +++ b/labware-library/src/localization/en.ts @@ -10,6 +10,7 @@ export const CATEGORY_LABELS_BY_CATEGORY = { trash: 'Trash', other: 'Other', adapter: 'Adapter', + lid: 'Lid', } export const PLURAL_CATEGORY_LABELS_BY_CATEGORY = { @@ -20,6 +21,7 @@ export const PLURAL_CATEGORY_LABELS_BY_CATEGORY = { wellPlate: 'Well Plates', reservoir: 'Reservoirs', aluminumBlock: 'Aluminum Blocks', + lid: 'Lid', trash: 'Trashes', other: 'Other', } diff --git a/shared-data/js/labware.ts b/shared-data/js/labware.ts index c12f9419f62..a085ffac89c 100644 --- a/shared-data/js/labware.ts +++ b/shared-data/js/labware.ts @@ -110,7 +110,9 @@ import opentronsFlex96Tiprack1000UlV1Uncasted from '../labware/definitions/2/ope import opentronsFlex96Tiprack200UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json' import opentronsFlex96Tiprack50UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json' import opentronsFlex96TiprackAdapterV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_adapter/1.json' +import opentronsFlexDeckRiserV1Uncasted from '../labware/definitions/2/opentrons_flex_deck_riser/1.json' import opentronsFlexLidAbsorbancePlateReaderModuleV1Uncasted from '../labware/definitions/2/opentrons_flex_lid_absorbance_plate_reader_module/1.json' +import opentronsToughPcrAutoSealingLidV1Uncasted from '../labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json' import opentronsUniversalFlatAdapterV1Uncasted from '../labware/definitions/2/opentrons_universal_flat_adapter/1.json' import opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1Uncasted from '../labware/definitions/2/opentrons_universal_flat_adapter_corning_384_wellplate_112ul_flat/1.json' import opentrons96DeepWellTempModAdapterV1Uncasted from '../labware/definitions/2/opentrons_96_deep_well_temp_mod_adapter/1.json' @@ -285,7 +287,9 @@ const opentronsFlex96Tiprack1000UlV1 = opentronsFlex96Tiprack1000UlV1Uncasted as const opentronsFlex96Tiprack200UlV1 = opentronsFlex96Tiprack200UlV1Uncasted as LabwareDefinition2 const opentronsFlex96Tiprack50UlV1 = opentronsFlex96Tiprack50UlV1Uncasted as LabwareDefinition2 const opentronsFlex96TiprackAdapterV1 = opentronsFlex96TiprackAdapterV1Uncasted as LabwareDefinition2 +const opentronsFlexDeckRiserV1 = opentronsFlexDeckRiserV1Uncasted as LabwareDefinition2 const opentronsFlexLidAbsorbancePlateReaderModuleV1 = opentronsFlexLidAbsorbancePlateReaderModuleV1Uncasted as LabwareDefinition2 +const opentronsToughPcrAutoSealingLidV1 = opentronsToughPcrAutoSealingLidV1Uncasted as LabwareDefinition2 const opentronsUniversalFlatAdapterV1 = opentronsUniversalFlatAdapterV1Uncasted as LabwareDefinition2 const opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1 = opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1Uncasted as LabwareDefinition2 const thermoscientificnunc96Wellplate1300UlV1 = thermoscientificnunc96Wellplate1300UlV1Uncasted as LabwareDefinition2 @@ -452,7 +456,9 @@ const latestDefs = { opentronsFlex96Tiprack200UlV1, opentronsFlex96Tiprack50UlV1, opentronsFlex96TiprackAdapterV1, + opentronsFlexDeckRiserV1, opentronsFlexLidAbsorbancePlateReaderModuleV1, + opentronsToughPcrAutoSealingLidV1, opentronsUniversalFlatAdapterV1, opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1, thermoscientificnunc96Wellplate1300UlV1, diff --git a/shared-data/js/types.ts b/shared-data/js/types.ts index 37d3794c9dc..720f422cb87 100644 --- a/shared-data/js/types.ts +++ b/shared-data/js/types.ts @@ -86,7 +86,7 @@ export type LabwareDisplayCategory = | 'trash' | 'other' | 'adapter' - + | 'lid' export type LabwareVolumeUnits = 'µL' | 'mL' | 'L' // TODO(mc, 2019-05-29): Remove this enum in favor of string + exported diff --git a/shared-data/labware/definitions/2/opentrons_flex_deck_riser/1.json b/shared-data/labware/definitions/2/opentrons_flex_deck_riser/1.json new file mode 100644 index 00000000000..6c0cd91a11b --- /dev/null +++ b/shared-data/labware/definitions/2/opentrons_flex_deck_riser/1.json @@ -0,0 +1,41 @@ +{ + "ordering": [], + "brand": { + "brand": "Opentrons", + "brandId": [] + }, + "metadata": { + "displayName": "Opentrons Flex Deck Riser", + "displayCategory": "adapter", + "displayVolumeUnits": "\u00b5L", + "tags": [] + }, + "dimensions": { + "xDimension": 140, + "yDimension": 98, + "zDimension": 21 + }, + "wells": {}, + "groups": [ + { + "metadata": {}, + "wells": [] + } + ], + "parameters": { + "format": "96Standard", + "quirks": [], + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_flex_deck_riser" + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "allowedRoles": ["adapter"], + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + } +} diff --git a/shared-data/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json b/shared-data/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json index ca39c122b47..d5d56101e7f 100644 --- a/shared-data/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +++ b/shared-data/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json @@ -7,7 +7,7 @@ }, "metadata": { "displayName": "Opentrons Tough PCR Auto-Sealing Lid", - "displayCategory": "other", + "displayCategory": "lid", "displayVolumeUnits": "\u00b5L", "tags": [] }, @@ -17,7 +17,12 @@ "zDimension": 12.8 }, "wells": {}, - "groups": [], + "groups": [ + { + "metadata": {}, + "wells": [] + } + ], "cornerOffsetFromSlot": { "x": 0, "y": 0, @@ -60,6 +65,11 @@ "x": 0, "y": 0, "z": 8.193 + }, + "opentrons_flex_deck_riser": { + "x": 0, + "y": 0, + "z": 0 } }, "gripForce": 15, diff --git a/shared-data/labware/schemas/2.json b/shared-data/labware/schemas/2.json index 203009be9f5..6f39c6af175 100644 --- a/shared-data/labware/schemas/2.json +++ b/shared-data/labware/schemas/2.json @@ -41,7 +41,8 @@ "wellPlate", "aluminumBlock", "adapter", - "other" + "other", + "lid" ] }, "safeString": { diff --git a/shared-data/python/opentrons_shared_data/labware/labware_definition.py b/shared-data/python/opentrons_shared_data/labware/labware_definition.py index be4c1a17d01..e272eef16d2 100644 --- a/shared-data/python/opentrons_shared_data/labware/labware_definition.py +++ b/shared-data/python/opentrons_shared_data/labware/labware_definition.py @@ -112,6 +112,7 @@ class DisplayCategory(str, Enum): aluminumBlock = "aluminumBlock" adapter = "adapter" other = "other" + lid = "lid" class LabwareRole(str, Enum): diff --git a/shared-data/python/opentrons_shared_data/labware/types.py b/shared-data/python/opentrons_shared_data/labware/types.py index 5a6aebf4ff7..8155e45011f 100644 --- a/shared-data/python/opentrons_shared_data/labware/types.py +++ b/shared-data/python/opentrons_shared_data/labware/types.py @@ -22,6 +22,7 @@ Literal["aluminumBlock"], Literal["adapter"], Literal["other"], + Literal["lid"], ] LabwareFormat = Union[