From 68e8de69a2dbedfc248d60edbaf933c84b4b403b Mon Sep 17 00:00:00 2001 From: Seth Foster Date: Thu, 9 Jan 2025 16:57:16 -0500 Subject: [PATCH] feat(shared-data): add deck schema v6 This schema contains a concept of "locating features" for addressable areas. These locating features are things that constrain the position of labware loaded on top of the addressable area. The presence of a locating feature indicates that the addressable area can contain deck items. Which locating feature is available constrains which labware can be loaded; different labware define different locatable features (for instance, their back left or front left corners, or the outer surface of one of their wells). Closes EXEC-80 --- .../deck/definitions/6/ot2_short_trash.json | 508 ++++++ .../deck/definitions/6/ot2_standard.json | 508 ++++++ .../deck/definitions/6/ot3_standard.json | 1526 +++++++++++++++++ shared-data/deck/schemas/6.json | 356 ++++ 4 files changed, 2898 insertions(+) create mode 100644 shared-data/deck/definitions/6/ot2_short_trash.json create mode 100644 shared-data/deck/definitions/6/ot2_standard.json create mode 100644 shared-data/deck/definitions/6/ot3_standard.json create mode 100644 shared-data/deck/schemas/6.json diff --git a/shared-data/deck/definitions/6/ot2_short_trash.json b/shared-data/deck/definitions/6/ot2_short_trash.json new file mode 100644 index 00000000000..56f9043b7e3 --- /dev/null +++ b/shared-data/deck/definitions/6/ot2_short_trash.json @@ -0,0 +1,508 @@ +{ + "otId": "ot2_short_trash", + "schemaVersion": 5, + "cornerOffsetFromOrigin": [-115.65, -68.03, 0], + "dimensions": [624.3, 565.2, 0], + "metadata": { + "displayName": "OT-2 Short-Trash Deck", + "tags": ["ot2", "12 slots", "short trash"] + }, + "robot": { + "model": "OT-2 Standard" + }, + "locations": { + "addressableAreas": [ + { + "id": "1", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 1", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "2", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 2", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "3", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 3", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "4", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 4", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "5", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 5", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "6", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 6", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "7", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 7", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "thermocyclerModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "8", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 8", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "9", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 9", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "10", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 10", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "11", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 11", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "12", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 12", + "compatibleModuleTypes": [] + }, + { + "id": "shortFixedTrash", + "areaType": "fixedTrash", + "offsetFromCutoutFixture": [29.285, -2.835, 0], + "boundingBox": { + "xDimension": 107.11, + "yDimension": 165.67, + "zDimension": 58 + }, + "displayName": "Slot 12/Short Fixed Trash", + "ableToDropTips": true + } + ], + "cutouts": [ + { + "id": "cutout1", + "position": [0.0, 0.0, 0.0], + "displayName": "Cutout 1" + }, + { + "id": "cutout2", + "position": [132.5, 0.0, 0.0], + "displayName": "Cutout 2" + }, + { + "id": "cutout3", + "position": [265.0, 0.0, 0.0], + "displayName": "Cutout 3" + }, + { + "id": "cutout4", + "position": [0.0, 90.5, 0.0], + "displayName": "Cutout 4" + }, + { + "id": "cutout5", + "position": [132.5, 90.5, 0.0], + "displayName": "Cutout 5" + }, + { + "id": "cutout6", + "position": [265.0, 90.5, 0.0], + "displayName": "Cutout 6" + }, + { + "id": "cutout7", + "position": [0.0, 181.0, 0.0], + "displayName": "Cutout 7" + }, + { + "id": "cutout8", + "position": [132.5, 181.0, 0.0], + "displayName": "Cutout 8" + }, + { + "id": "cutout9", + "position": [265.0, 181.0, 0.0], + "displayName": "Cutout 9" + }, + { + "id": "cutout10", + "position": [0.0, 271.5, 0.0], + "displayName": "Slot 10" + }, + { + "id": "cutout11", + "position": [132.5, 271.5, 0.0], + "displayName": "Cutout 11" + }, + { + "id": "cutout12", + "position": [265.0, 271.5, 0.0], + "displayName": "Cutout 12" + } + ], + "calibrationPoints": [ + { + "id": "1BLC", + "position": [12.13, 9.0, 0.0], + "displayName": "Slot 1 Bottom Left Cross" + }, + { + "id": "3BRC", + "position": [380.87, 9.0, 0.0], + "displayName": "Slot 3 Bottom Right Cross" + }, + { + "id": "7TLC", + "position": [12.13, 258.0, 0.0], + "displayName": "Slot 7 Top Left Cross" + }, + { + "id": "9TRC", + "position": [380.87, 258.0, 0.0], + "displayName": "Slot 9 Top Right Cross" + }, + { + "id": "10TLC", + "position": [12.13, 348.5, 0.0], + "displayName": "Slot 10 Top Left Cross" + }, + { + "id": "11TRC", + "position": [248.37, 348.5, 0.0], + "displayName": "Slot 11 Top Right Cross" + }, + { + "id": "1BLD", + "position": [12.13, 6.0, 0.0], + "displayName": "Slot 1 Bottom Left Dot" + }, + { + "id": "3BRD", + "position": [380.87, 6.0, 0.0], + "displayName": "Slot 3 Bottom Right Dot" + }, + { + "id": "7TLD", + "position": [12.13, 261.0, 0.0], + "displayName": "Slot 7 Top Left Dot" + }, + { + "id": "9TRD", + "position": [380.87, 261.0, 0.0], + "displayName": "Slot 9 Top Right Dot" + }, + { + "id": "10TLD", + "position": [12.13, 351.5, 0.0], + "displayName": "Slot 10 Top Left Dot" + }, + { + "id": "11TRD", + "position": [248.37, 351.5, 0.0], + "displayName": "Slot 11 Top Right Dot" + } + ], + "legacyFixtures": [ + { + "id": "fixedTrash", + "slot": "12", + "labware": "opentrons_1_trash_850ml_fixed", + "displayName": "Fixed Trash" + } + ] + }, + "cutoutFixtures": [ + { + "id": "singleStandardSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": [ + "cutout1", + "cutout2", + "cutout3", + "cutout4", + "cutout5", + "cutout6", + "cutout7", + "cutout8", + "cutout9", + "cutout10", + "cutout11", + "cutout12" + ], + "displayName": "Standard Slot", + "providesAddressableAreas": { + "cutout1": ["1"], + "cutout2": ["2"], + "cutout3": ["3"], + "cutout4": ["4"], + "cutout5": ["5"], + "cutout6": ["6"], + "cutout7": ["7"], + "cutout8": ["8"], + "cutout9": ["9"], + "cutout10": ["10"], + "cutout11": ["11"], + "cutout12": ["12"] + }, + "fixtureGroup": {}, + "height": 0 + }, + { + "id": "fixedTrashSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutout12"], + "displayName": "Fixed Trash", + "providesAddressableAreas": { + "cutout12": ["shortFixedTrash"] + }, + "fixtureGroup": {}, + "height": 58 + } + ] +} diff --git a/shared-data/deck/definitions/6/ot2_standard.json b/shared-data/deck/definitions/6/ot2_standard.json new file mode 100644 index 00000000000..5ef4dcfb128 --- /dev/null +++ b/shared-data/deck/definitions/6/ot2_standard.json @@ -0,0 +1,508 @@ +{ + "otId": "ot2_standard", + "schemaVersion": 5, + "cornerOffsetFromOrigin": [-115.65, -68.03, 0], + "dimensions": [624.3, 565.2, 0], + "metadata": { + "displayName": "OT-2 Standard Deck", + "tags": ["ot2", "12 slots", "standard"] + }, + "robot": { + "model": "OT-2 Standard" + }, + "locations": { + "addressableAreas": [ + { + "id": "1", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 1", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "2", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 2", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "3", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 3", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "4", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 4", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "5", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 5", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "6", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 6", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "7", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 7", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "thermocyclerModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "8", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 8", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "9", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 9", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "10", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 10", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "11", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 11", + "compatibleModuleTypes": [ + "magneticModuleType", + "temperatureModuleType", + "heaterShakerModuleType" + ] + }, + { + "id": "12", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot 12", + "compatibleModuleTypes": [] + }, + { + "id": "fixedTrash", + "areaType": "fixedTrash", + "offsetFromCutoutFixture": [29.285, -2.835, 0], + "boundingBox": { + "xDimension": 107.11, + "yDimension": 165.67, + "zDimension": 82 + }, + "displayName": "Slot 12/Fixed Trash", + "ableToDropTips": true + } + ], + "cutouts": [ + { + "id": "cutout1", + "position": [0.0, 0.0, 0.0], + "displayName": "Cutout 1" + }, + { + "id": "cutout2", + "position": [132.5, 0.0, 0.0], + "displayName": "Cutout 2" + }, + { + "id": "cutout3", + "position": [265.0, 0.0, 0.0], + "displayName": "Cutout 3" + }, + { + "id": "cutout4", + "position": [0.0, 90.5, 0.0], + "displayName": "Cutout 4" + }, + { + "id": "cutout5", + "position": [132.5, 90.5, 0.0], + "displayName": "Cutout 5" + }, + { + "id": "cutout6", + "position": [265.0, 90.5, 0.0], + "displayName": "Cutout 6" + }, + { + "id": "cutout7", + "position": [0.0, 181.0, 0.0], + "displayName": "Cutout 7" + }, + { + "id": "cutout8", + "position": [132.5, 181.0, 0.0], + "displayName": "Cutout 8" + }, + { + "id": "cutout9", + "position": [265.0, 181.0, 0.0], + "displayName": "Cutout 9" + }, + { + "id": "cutout10", + "position": [0.0, 271.5, 0.0], + "displayName": "Slot 10" + }, + { + "id": "cutout11", + "position": [132.5, 271.5, 0.0], + "displayName": "Cutout 11" + }, + { + "id": "cutout12", + "position": [265.0, 271.5, 0.0], + "displayName": "Cutout 12" + } + ], + "calibrationPoints": [ + { + "id": "1BLC", + "position": [12.13, 9.0, 0.0], + "displayName": "Slot 1 Bottom Left Cross" + }, + { + "id": "3BRC", + "position": [380.87, 9.0, 0.0], + "displayName": "Slot 3 Bottom Right Cross" + }, + { + "id": "7TLC", + "position": [12.13, 258.0, 0.0], + "displayName": "Slot 7 Top Left Cross" + }, + { + "id": "9TRC", + "position": [380.87, 258.0, 0.0], + "displayName": "Slot 9 Top Right Cross" + }, + { + "id": "10TLC", + "position": [12.13, 348.5, 0.0], + "displayName": "Slot 10 Top Left Cross" + }, + { + "id": "11TRC", + "position": [248.37, 348.5, 0.0], + "displayName": "Slot 11 Top Right Cross" + }, + { + "id": "1BLD", + "position": [12.13, 6.0, 0.0], + "displayName": "Slot 1 Bottom Left Dot" + }, + { + "id": "3BRD", + "position": [380.87, 6.0, 0.0], + "displayName": "Slot 3 Bottom Right Dot" + }, + { + "id": "7TLD", + "position": [12.13, 261.0, 0.0], + "displayName": "Slot 7 Top Left Dot" + }, + { + "id": "9TRD", + "position": [380.87, 261.0, 0.0], + "displayName": "Slot 9 Top Right Dot" + }, + { + "id": "10TLD", + "position": [12.13, 351.5, 0.0], + "displayName": "Slot 10 Top Left Dot" + }, + { + "id": "11TRD", + "position": [248.37, 351.5, 0.0], + "displayName": "Slot 11 Top Right Dot" + } + ], + "legacyFixtures": [ + { + "id": "fixedTrash", + "slot": "12", + "labware": "opentrons_1_trash_1100ml_fixed", + "displayName": "Fixed Trash" + } + ] + }, + "cutoutFixtures": [ + { + "id": "singleStandardSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": [ + "cutout1", + "cutout2", + "cutout3", + "cutout4", + "cutout5", + "cutout6", + "cutout7", + "cutout8", + "cutout9", + "cutout10", + "cutout11", + "cutout12" + ], + "displayName": "Standard Slot", + "providesAddressableAreas": { + "cutout1": ["1"], + "cutout2": ["2"], + "cutout3": ["3"], + "cutout4": ["4"], + "cutout5": ["5"], + "cutout6": ["6"], + "cutout7": ["7"], + "cutout8": ["8"], + "cutout9": ["9"], + "cutout10": ["10"], + "cutout11": ["11"], + "cutout12": ["12"] + }, + "fixtureGroup": {}, + "height": 0 + }, + { + "id": "fixedTrashSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutout12"], + "displayName": "Fixed Trash", + "providesAddressableAreas": { + "cutout12": ["fixedTrash"] + }, + "fixtureGroup": {}, + "height": 82 + } + ] +} diff --git a/shared-data/deck/definitions/6/ot3_standard.json b/shared-data/deck/definitions/6/ot3_standard.json new file mode 100644 index 00000000000..7f85596b4fb --- /dev/null +++ b/shared-data/deck/definitions/6/ot3_standard.json @@ -0,0 +1,1526 @@ +{ + "otId": "ot3_standard", + "schemaVersion": 5, + "cornerOffsetFromOrigin": [-204.31, -76.59, 0], + "dimensions": [854.995, 581.74, 0], + "metadata": { + "displayName": "OT-3 Standard Deck", + "tags": ["ot3", "12 slots", "standard"] + }, + "robot": { + "model": "OT-3 Standard" + }, + "locations": { + "addressableAreas": [ + { + "id": "D1", + "areaType": "slot", + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot D1" + }, + { + "id": "D2", + "areaType": "slot", + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot D2" + }, + { + "id": "D3", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot D3" + }, + { + "id": "C1", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot C1" + }, + { + "id": "C2", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot C2" + }, + { + "id": "C3", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot C3" + }, + { + "id": "B1", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot B1" + }, + { + "id": "B2", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot B2" + }, + { + "id": "B3", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot B3" + }, + { + "id": "A1", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot A1" + }, + { + "id": "A2", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot A2", + "compatibleModuleTypes": [] + }, + { + "id": "A3", + "areaType": "slot", + "offsetFromCutoutFixture": [0.0, 0.0, 0.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot A3", + "compatibleModuleTypes": [] + }, + { + "id": "A4", + "areaType": "stagingSlot", + "offsetFromCutoutFixture": [164.0, 0.0, 14.5], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot A4", + "compatibleModuleTypes": [] + }, + { + "id": "B4", + "areaType": "stagingSlot", + "offsetFromCutoutFixture": [164.0, 0.0, 14.5], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot B4", + "compatibleModuleTypes": [] + }, + { + "id": "C4", + "areaType": "stagingSlot", + "offsetFromCutoutFixture": [164.0, 0.0, 14.5], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot C4", + "compatibleModuleTypes": [] + }, + { + "id": "D4", + "areaType": "stagingSlot", + "offsetFromCutoutFixture": [164.0, 0.0, 14.5], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 86.0, 0.0] + }, + { + "locatingFeatureId": "backLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Slot D4", + "compatibleModuleTypes": [] + }, + { + "id": "movableTrashD1", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-90.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in D1", + "ableToDropTips": true + }, + { + "id": "movableTrashC1", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-90.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in C1", + "ableToDropTips": true + }, + { + "id": "movableTrashB1", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-90.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in B1", + "ableToDropTips": true + }, + { + "id": "movableTrashA1", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-90.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in A1", + "ableToDropTips": true + }, + { + "id": "movableTrashD3", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-6.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in D3", + "ableToDropTips": true + }, + { + "id": "movableTrashC3", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-6.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in C3", + "ableToDropTips": true + }, + { + "id": "movableTrashB3", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-6.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in B3", + "ableToDropTips": true + }, + { + "id": "movableTrashA3", + "areaType": "movableTrash", + "offsetFromCutoutFixture": [-6.25, 4, 0.0], + "boundingBox": { + "xDimension": 225, + "yDimension": 78, + "zDimension": 40 + }, + "displayName": "Trash Bin in A3", + "ableToDropTips": true + }, + { + "id": "1ChannelWasteChute", + "areaType": "wasteChute", + "offsetFromCutoutFixture": [64, 36, 114.5], + "boundingBox": { + "xDimension": 0, + "yDimension": 0, + "zDimension": 0 + }, + "displayName": "Waste Chute", + "ableToDropTips": true + }, + { + "id": "8ChannelWasteChute", + "areaType": "wasteChute", + "offsetFromCutoutFixture": [64, -27, 114.5], + "boundingBox": { + "xDimension": 0, + "yDimension": 63, + "zDimension": 0 + }, + "displayName": "Waste Chute", + "ableToDropTips": true + }, + { + "id": "96ChannelWasteChute", + "areaType": "wasteChute", + "offsetFromCutoutFixture": [14.445, -20.915, 114.5], + "boundingBox": { + "xDimension": 99, + "yDimension": 63, + "zDimension": 0 + }, + "displayName": "Waste Chute", + "ableToDropTips": true + }, + { + "id": "gripperWasteChute", + "areaType": "wasteChute", + "offsetFromCutoutFixture": [64, 29, 136.5], + "boundingBox": { + "xDimension": 0, + "yDimension": 0, + "zDimension": 0 + }, + "displayName": "Waste Chute", + "ableToDropLabware": true + }, + { + "id": "thermocyclerModuleV2", + "areaType": "thermocycler", + "offsetFromCutoutFixture": [-20.005, 67.96, 10.96], + "locatingFeatures": [ + { + "locatingFeatureId": "wellB2", + "offsetVector": [23.38, 65.24, 0.0] + }, + { + "locatingFeatureId": "wellA1", + "offsetVector": [14.38, 74.24, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Thermocycler Module Slot" + }, + { + "id": "heaterShakerV1D1", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0, 0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in D1" + }, + { + "id": "heaterShakerV1C1", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0.0, 0.0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in C1" + }, + { + "id": "heaterShakerV1B1", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0.0, 0.0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in B1" + }, + { + "id": "heaterShakerV1A1", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0.0, 0.0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in A1" + }, + { + "id": "heaterShakerV1D3", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0.0, 0.0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in D3" + }, + { + "id": "heaterShakerV1C3", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0.0, 0.0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in C3" + }, + { + "id": "heaterShakerV1B3", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0.0, 0.0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in B3" + }, + { + "id": "heaterShakerV1A3", + "areaType": "heaterShaker", + "offsetFromCutoutFixture": [0.0, 0.0, 18.95], + "locatingFeatures": [ + { + "locatingFeatureId": "center", + "offsetVector": [64.0, 43.0, 0.0] + }, + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Heater Shaker in A3" + }, + { + "id": "temperatureModuleV2D1", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in D1" + }, + { + "id": "temperatureModuleV2C1", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in C1" + }, + { + "id": "temperatureModuleV2B1", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in B1" + }, + { + "id": "temperatureModuleV2A1", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in A1" + }, + { + "id": "temperatureModuleV2D3", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in D3" + }, + { + "id": "temperatureModuleV2C3", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in C3" + }, + { + "id": "temperatureModuleV2B3", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in B3" + }, + { + "id": "temperatureModuleV2A3", + "areaType": "temperatureModule", + "offsetFromCutoutFixture": [0.0, 0.0, 9.0], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Temperature Module in A3" + }, + { + "id": "magneticBlockV1D1", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in D1" + }, + { + "id": "magneticBlockV1C1", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in C1" + }, + { + "id": "magneticBlockV1B1", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in B1" + }, + { + "id": "magneticBlockV1A1", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in A1" + }, + { + "id": "magneticBlockV1D2", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in D2" + }, + { + "id": "magneticBlockV1C2", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in C2" + }, + { + "id": "magneticBlockV1B2", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in B2" + }, + { + "id": "magneticBlockV1A2", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in A2" + }, + { + "id": "magneticBlockV1D3", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in D3" + }, + { + "id": "magneticBlockV1C3", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in C3" + }, + { + "id": "magneticBlockV1B3", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in B3" + }, + { + "id": "magneticBlockV1A3", + "areaType": "magneticBlock", + "offsetFromCutoutFixture": [0.0, 0.0, 38], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 128.0, + "yDimension": 86.0, + "zDimension": 0 + }, + "displayName": "Magnetic Block in A3" + }, + { + "id": "absorbanceReaderV1D3", + "areaType": "absorbanceReader", + "offsetFromCutoutFixture": [2.0, 0.0, 0.65], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader in D3" + }, + { + "id": "absorbanceReaderV1C3", + "areaType": "absorbanceReader", + "offsetFromCutoutFixture": [2.0, 0.0, 0.65], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader in C3" + }, + { + "id": "absorbanceReaderV1B3", + "areaType": "absorbanceReader", + "offsetFromCutoutFixture": [2.0, 0.0, 0.65], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader in B3" + }, + { + "id": "absorbanceReaderV1A3", + "areaType": "absorbanceReader", + "offsetFromCutoutFixture": [2.0, 0.0, 0.65], + "locatingFeatures": [ + { + "locatingFeatureId": "frontLeft", + "offsetVector": [0.0, 0.0, 0.0] + } + ], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader in A3" + }, + { + "id": "absorbanceReaderV1LidDockD4", + "areaType": "lidDock", + "offsetFromCutoutFixture": [163.075, 0.0, 0.65], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader Lid Dock in D4" + }, + { + "id": "absorbanceReaderV1LidDockC4", + "areaType": "lidDock", + "offsetFromCutoutFixture": [163.075, 0.0, 0.65], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader Lid Dock in C4" + }, + { + "id": "absorbanceReaderV1LidDockB4", + "areaType": "lidDock", + "offsetFromCutoutFixture": [163.075, 0.0, 0.65], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader Lid Dock in B4" + }, + { + "id": "absorbanceReaderV1LidDockA4", + "areaType": "lidDock", + "offsetFromCutoutFixture": [163.075, 0.0, 0.65], + "boundingBox": { + "xDimension": 127.8, + "yDimension": 85.5, + "zDimension": 0 + }, + "displayName": "Absorbance Reader Lid Dock in A4" + } + ], + "cutouts": [ + { + "id": "cutoutD1", + "position": [0.0, 0.0, 0.0], + "displayName": "Cutout D1" + }, + { + "id": "cutoutD2", + "position": [164.0, 0.0, 0.0], + "displayName": "Cutout D2" + }, + { + "id": "cutoutD3", + "position": [328.0, 0.0, 0.0], + "displayName": "Cutout D3" + }, + { + "id": "cutoutC1", + "position": [0.0, 107, 0.0], + "displayName": "Cutout C1" + }, + { + "id": "cutoutC2", + "position": [164.0, 107, 0.0], + "displayName": "Cutout C2" + }, + { + "id": "cutoutC3", + "position": [328.0, 107, 0.0], + "displayName": "Cutout C3" + }, + { + "id": "cutoutB1", + "position": [0.0, 214.0, 0.0], + "displayName": "Cutout B1" + }, + { + "id": "cutoutB2", + "position": [164.0, 214.0, 0.0], + "displayName": "Cutout B2" + }, + { + "id": "cutoutB3", + "position": [328.0, 214.0, 0.0], + "displayName": "Cutout B3" + }, + { + "id": "cutoutA1", + "position": [0.0, 321.0, 0.0], + "displayName": "Cutout A1" + }, + { + "id": "cutoutA2", + "position": [164.0, 321.0, 0.0], + "displayName": "Cutout A2" + }, + { + "id": "cutoutA3", + "position": [328.0, 321.0, 0.0], + "displayName": "Cutout A3" + } + ], + "calibrationPoints": [], + "legacyFixtures": [ + { + "id": "fixedTrash", + "slot": "A3", + "labware": "opentrons_1_trash_3200ml_fixed", + "displayName": "Fixed Trash" + } + ] + }, + "cutoutFixtures": [ + { + "id": "singleLeftSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD1", "cutoutC1", "cutoutB1", "cutoutA1"], + "displayName": "Standard Slot Left", + "providesAddressableAreas": { + "cutoutD1": ["D1"], + "cutoutC1": ["C1"], + "cutoutB1": ["B1"], + "cutoutA1": ["A1"] + }, + "fixtureGroup": {}, + "height": 0 + }, + { + "id": "singleCenterSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD2", "cutoutC2", "cutoutB2", "cutoutA2"], + "displayName": "Standard Slot Center", + "providesAddressableAreas": { + "cutoutD2": ["D2"], + "cutoutC2": ["C2"], + "cutoutB2": ["B2"], + "cutoutA2": ["A2"] + }, + "fixtureGroup": {}, + "height": 0 + }, + { + "id": "singleRightSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD3", "cutoutC3", "cutoutB3", "cutoutA3"], + "displayName": "Standard Slot Right", + "providesAddressableAreas": { + "cutoutD3": ["D3"], + "cutoutC3": ["C3"], + "cutoutB3": ["B3"], + "cutoutA3": ["A3"] + }, + "fixtureGroup": {}, + "height": 0 + }, + { + "id": "stagingAreaRightSlot", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD3", "cutoutC3", "cutoutB3", "cutoutA3"], + "displayName": "Staging Area Slot", + "providesAddressableAreas": { + "cutoutD3": ["D3", "D4"], + "cutoutC3": ["C3", "C4"], + "cutoutB3": ["B3", "B4"], + "cutoutA3": ["A3", "A4"] + }, + "fixtureGroup": {}, + "height": 0 + }, + { + "id": "trashBinAdapter", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": [ + "cutoutD1", + "cutoutC1", + "cutoutB1", + "cutoutA1", + "cutoutD3", + "cutoutC3", + "cutoutB3", + "cutoutA3" + ], + "displayName": "Slot With Movable Trash", + "providesAddressableAreas": { + "cutoutD1": ["movableTrashD1"], + "cutoutC1": ["movableTrashC1"], + "cutoutB1": ["movableTrashB1"], + "cutoutA1": ["movableTrashA1"], + "cutoutD3": ["movableTrashD3"], + "cutoutC3": ["movableTrashC3"], + "cutoutB3": ["movableTrashB3"], + "cutoutA3": ["movableTrashA3"] + }, + "fixtureGroup": {}, + "height": 40 + }, + { + "id": "wasteChuteRightAdapterCovered", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD3"], + "displayName": "Waste Chute Adapter for 1 or 8 Channel Pipettes", + "providesAddressableAreas": { + "cutoutD3": ["1ChannelWasteChute", "8ChannelWasteChute"] + }, + "fixtureGroup": {}, + "height": 124.5 + }, + { + "id": "wasteChuteRightAdapterNoCover", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD3"], + "displayName": "Waste Chute Adapter for 96 Channel Pipette or Gripper", + "providesAddressableAreas": { + "cutoutD3": [ + "1ChannelWasteChute", + "8ChannelWasteChute", + "96ChannelWasteChute", + "gripperWasteChute" + ] + }, + "fixtureGroup": {}, + "height": 124.5 + }, + { + "id": "stagingAreaSlotWithWasteChuteRightAdapterCovered", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD3"], + "displayName": "Staging Slot With Waste Chute Adapter for 96 Channel Pipette or Gripper", + "providesAddressableAreas": { + "cutoutD3": ["1ChannelWasteChute", "8ChannelWasteChute", "D4"] + }, + "fixtureGroup": {}, + "height": 124.5 + }, + { + "id": "stagingAreaSlotWithWasteChuteRightAdapterNoCover", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD3"], + "displayName": "Staging Slot With Waste Chute Adapter and Staging Area Slot", + "providesAddressableAreas": { + "cutoutD3": [ + "1ChannelWasteChute", + "8ChannelWasteChute", + "96ChannelWasteChute", + "gripperWasteChute", + "D4" + ] + }, + "fixtureGroup": {}, + "height": 124.5 + }, + { + "id": "thermocyclerModuleV2Rear", + "expectOpentronsModuleSerialNumber": true, + "mayMountTo": ["cutoutA1"], + "displayName": "Rear Slot portion of the Thermocycler Moduler", + "providesAddressableAreas": { + "cutoutA1": [] + }, + "fixtureGroup": { + "cutoutA1": [ + { + "cutoutA1": "thermocyclerModuleV2Rear", + "cutoutB1": "thermocyclerModuleV2Front" + } + ] + }, + "height": 72.35 + }, + { + "id": "thermocyclerModuleV2Front", + "expectOpentronsModuleSerialNumber": true, + "mayMountTo": ["cutoutB1"], + "displayName": "Front Slot portion of the Thermocycler Moduler", + "providesAddressableAreas": { + "cutoutB1": ["thermocyclerModuleV2"] + }, + "fixtureGroup": { + "cutoutB1": [ + { + "cutoutA1": "thermocyclerModuleV2Rear", + "cutoutB1": "thermocyclerModuleV2Front" + } + ] + }, + "height": 72.35 + }, + { + "id": "heaterShakerModuleV1", + "expectOpentronsModuleSerialNumber": true, + "mayMountTo": [ + "cutoutD1", + "cutoutC1", + "cutoutB1", + "cutoutA1", + "cutoutD3", + "cutoutC3", + "cutoutB3", + "cutoutA3" + ], + "displayName": "Slot With a Heater Shaker", + "providesAddressableAreas": { + "cutoutD1": ["heaterShakerV1D1"], + "cutoutC1": ["heaterShakerV1C1"], + "cutoutB1": ["heaterShakerV1B1"], + "cutoutA1": ["heaterShakerV1A1"], + "cutoutD3": ["heaterShakerV1D3"], + "cutoutC3": ["heaterShakerV1C3"], + "cutoutB3": ["heaterShakerV1B3"], + "cutoutA3": ["heaterShakerV1A3"] + }, + "fixtureGroup": {}, + "height": 18.95 + }, + { + "id": "temperatureModuleV2", + "expectOpentronsModuleSerialNumber": true, + "mayMountTo": [ + "cutoutD1", + "cutoutC1", + "cutoutB1", + "cutoutA1", + "cutoutD3", + "cutoutC3", + "cutoutB3", + "cutoutA3" + ], + "displayName": "Slot With a Temperature Module", + "providesAddressableAreas": { + "cutoutD1": ["temperatureModuleV2D1"], + "cutoutC1": ["temperatureModuleV2C1"], + "cutoutB1": ["temperatureModuleV2B1"], + "cutoutA1": ["temperatureModuleV2A1"], + "cutoutD3": ["temperatureModuleV2D3"], + "cutoutC3": ["temperatureModuleV2C3"], + "cutoutB3": ["temperatureModuleV2B3"], + "cutoutA3": ["temperatureModuleV2A3"] + }, + "fixtureGroup": {}, + "height": 9.0 + }, + { + "id": "magneticBlockV1", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": [ + "cutoutD1", + "cutoutC1", + "cutoutB1", + "cutoutA1", + "cutoutD2", + "cutoutC2", + "cutoutB2", + "cutoutA2", + "cutoutD3", + "cutoutC3", + "cutoutB3", + "cutoutA3" + ], + "displayName": "Slot With a Magnetic Block", + "providesAddressableAreas": { + "cutoutD1": ["magneticBlockV1D1"], + "cutoutC1": ["magneticBlockV1C1"], + "cutoutB1": ["magneticBlockV1B1"], + "cutoutA1": ["magneticBlockV1A1"], + "cutoutD2": ["magneticBlockV1D2"], + "cutoutC2": ["magneticBlockV1C2"], + "cutoutB2": ["magneticBlockV1B2"], + "cutoutA2": ["magneticBlockV1A2"], + "cutoutD3": ["magneticBlockV1D3"], + "cutoutC3": ["magneticBlockV1C3"], + "cutoutB3": ["magneticBlockV1B3"], + "cutoutA3": ["magneticBlockV1A3"] + }, + "fixtureGroup": {}, + "height": 38.0 + }, + { + "id": "stagingAreaSlotWithMagneticBlockV1", + "expectOpentronsModuleSerialNumber": false, + "mayMountTo": ["cutoutD3", "cutoutC3", "cutoutB3", "cutoutA3"], + "displayName": "Fixture that provides a Magnetic Block and a Staging Area Slot", + "providesAddressableAreas": { + "cutoutD3": ["magneticBlockV1D3", "D4"], + "cutoutC3": ["magneticBlockV1C3", "C4"], + "cutoutB3": ["magneticBlockV1B3", "B4"], + "cutoutA3": ["magneticBlockV1A3", "A4"] + }, + "fixtureGroup": {}, + "height": 38.0 + }, + { + "id": "absorbanceReaderV1", + "expectOpentronsModuleSerialNumber": true, + "mayMountTo": ["cutoutD3", "cutoutC3", "cutoutB3", "cutoutA3"], + "displayName": "Slot With an Absorbance Reader and a Lid Dock", + "providesAddressableAreas": { + "cutoutD3": ["absorbanceReaderV1D3", "absorbanceReaderV1LidDockD4"], + "cutoutC3": ["absorbanceReaderV1C3", "absorbanceReaderV1LidDockC4"], + "cutoutB3": ["absorbanceReaderV1B3", "absorbanceReaderV1LidDockB4"], + "cutoutA3": ["absorbanceReaderV1A3", "absorbanceReaderV1LidDockA4"] + }, + "fixtureGroup": {}, + "height": 10.65 + } + ], + "gripperOffsets": { + "default": { + "pickUpOffset": { + "x": 0, + "y": 0, + "z": 0 + }, + "dropOffset": { + "x": 0, + "y": 0, + "z": -0.75 + } + } + } +} diff --git a/shared-data/deck/schemas/6.json b/shared-data/deck/schemas/6.json new file mode 100644 index 00000000000..ada08c6c76f --- /dev/null +++ b/shared-data/deck/schemas/6.json @@ -0,0 +1,356 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "opentronsDeckSchemaV6", + "definitions": { + "positiveNumber": { + "type": "number", + "minimum": 0 + }, + "xyzArray": { + "type": "array", + "description": "Array of 3 numbers, [x, y, z]", + "items": { "type": "number" }, + "minItems": 3, + "maxItems": 3 + }, + "coordinates": { + "type": "object", + "additionalProperties": false, + "required": ["x", "y", "z"], + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + } + }, + "unitVector": { + "type": "array", + "description": "Array of 3 unit directions, [x, y, z]", + "items": { + "type": "number", + "enum": [1, -1] + }, + "minItems": 3, + "maxItems": 3 + }, + "boundingBox": { + "type": "object", + "required": ["xDimension", "yDimension", "zDimension"], + "properties": { + "xDimension": { "$ref": "#/definitions/positiveNumber" }, + "yDimension": { "$ref": "#/definitions/positiveNumber" }, + "zDimension": { "$ref": "#/definitions/positiveNumber" } + } + }, + "locatingFeature": { + "type": "object", + "required": ["locatingFeatureId", "offsetVector"], + "properties": { + "locatingFeatureId": { + "type": "string", + "enum": ["backLeft", "frontLeft", "wellA1", "center"] + }, + "offsetVector": { + "$ref": "#/definitions/xyzArray", + "description": "A vector from the origin of the thing that has the locating feature (i.e. an addressable area) to the key point of the locating feature." + } + } + } + }, + "description": "Deck specifications, where x,y,z (0,0,0) is at front the bottom left corner.", + "type": "object", + "additionalProperties": false, + "required": [ + "otId", + "schemaVersion", + "cornerOffsetFromOrigin", + "dimensions", + "metadata", + "robot", + "locations", + "cutoutFixtures" + ], + "properties": { + "otId": { + "description": "Unique internal ID generated using UUID", + "type": "string" + }, + "schemaVersion": { + "description": "Schema version of a deck is a single integer", + "enum": [6] + }, + "cornerOffsetFromOrigin": { + "$ref": "#/definitions/xyzArray", + "description": "Position of left-front-bottom corner of entire deck to robot coordinate system origin" + }, + "dimensions": { + "$ref": "#/definitions/xyzArray", + "description": "Outer dimensions of a deck bounding box" + }, + "metadata": { + "description": "Optional metadata about the Deck", + "type": "object", + "properties": { + "displayName": { + "description": "A short, human-readable name for the deck", + "type": "string" + }, + "tags": { + "description": "Tags to be used in searching for this deck", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "robot": { + "type": "object", + "required": ["model"], + "properties": { + "model": { + "description": "Model of the robot", + "type": "string", + "enum": ["OT-2 Standard", "OT-3 Standard"] + } + } + }, + "locations": { + "type": "object", + "required": [ + "addressableAreas", + "calibrationPoints", + "cutouts", + "legacyFixtures" + ], + "properties": { + "addressableAreas": { + "type": "array", + "items": { + "type": "object", + "description": "An addressable area is a named area in 3D space that the robot can interact with--for example, as a place to drop tips, or hold a labware.", + "required": [ + "id", + "areaType", + "offsetFromCutoutFixture", + "boundingBox", + "displayName" + ], + "properties": { + "id": { + "description": "Unique identifier for slot", + "type": "string" + }, + "areaType": { + "description": "The type of addressable area, defining allowed behavior.", + "type": "string", + "enum": [ + "slot", + "stagingSlot", + "movableTrash", + "fixedTrash", + "wasteChute", + "lidDock" + ] + }, + "offsetFromCutoutFixture": { + "$ref": "#/definitions/xyzArray", + "description": "The offset from the origin of the cutout fixture that's providing this addressable area (which is currently identical to the position of the underlying cutout), to the -x, -y, -z corner of this addressable area's bounding box." + }, + "locatingFeatures": { + "type": "array", + "items": { + "$ref": "#/definitions/locatingFeature", + "description": "A locating feature to which a labware can be related. The array is in order of preference." + } + }, + "boundingBox": { + "description": "The active area (both pipettes can reach) of this addressable area.", + "$ref": "#/definitions/boundingBox" + }, + "displayName": { + "description": "A human-readable nickname for this area e.g. \"Slot A1\" or \"Trash Bin in A1\"", + "type": "string" + }, + "compatibleModuleTypes": { + "description": "OT-2 Only parameter. An array of module types that can be placed in this area. The module type names can be found in the moduleType field of a module definition.", + "type": "array", + "items": { + "type": "string" + } + }, + "ableToDropTips": { + "description": "Whether tips are allowed to be dropped into this area. If `true`, the top-center of the `boundingBox` should be a good location for the bottom-center of all the tips when they're dropped.", + "type": "boolean" + }, + "ableToDropLabware": { + "description": "Whether labware is allowed to be dropped (different from being placed) into this area. If `true`, the top-center of the `boundingBox` should be a good location for the bottom-center of the labware when it's dropped.", + "type": "boolean" + } + } + } + }, + "calibrationPoints": { + "type": "array", + "description": "Key points for deck calibration", + "items": { + "type": "object", + "required": ["id", "position", "displayName"], + "properties": { + "id": { + "description": "Unique identifier for calibration point", + "type": "string" + }, + "position": { + "$ref": "#/definitions/xyzArray" + }, + "displayName": { + "description": "An optional human-readable nickname for this point Eg \"Slot 3 Cross\" or \"Slot 1 Dot\"", + "type": "string" + } + } + } + }, + "cutouts": { + "type": "array", + "description": "The machined cutout slots on the deck surface.", + "items": { + "type": "object", + "required": ["id", "position", "displayName"], + "properties": { + "id": { + "description": "Unique identifier for the cutout", + "type": "string" + }, + "position": { + "description": "Absolute position of the cutout", + "$ref": "#/definitions/xyzArray" + }, + "displayName": { + "description": "An optional human-readable nickname for this cutout e.g. \"Cutout A1\"", + "type": "string" + } + } + } + }, + "legacyFixtures": { + "type": "array", + "description": "Fixed position objects on the deck and fixture-dependant Module labware Eg Plate Reader Lid.", + "items": { + "type": "object", + "required": ["id", "displayName"], + "properties": { + "id": { + "description": "Unique identifier for fixed object", + "type": "string" + }, + "labware": { + "description": "Valid labware loadName for fixed object", + "type": "string" + }, + "slot": { + "description": "Slot location of the fixed object", + "type": "string" + }, + "displayName": { + "description": "An optional human-readable nickname for this fixture Eg \"Tall Fixed Trash\" or \"Short Fixed Trash\"", + "type": "string" + } + } + } + } + } + }, + "cutoutFixtures": { + "type": "array", + "items": { + "description": "A cutout fixture is a physical thing that can be mounted onto one of the deck cutouts.", + "type": "object", + "required": [ + "id", + "expectOpentronsModuleSerialNumber", + "mayMountTo", + "displayName", + "providesAddressableAreas", + "fixtureGroup", + "height" + ], + "properties": { + "id": { + "description": "Unique identifier for the cutout fixture.", + "type": "string" + }, + "expectOpentronsModuleSerialNumber": { + "description": "Determines whether or not a fixture expects a serial number for a connected Opentrons Module.", + "type": "boolean" + }, + "mayMountTo": { + "description": "A list of compatible cutouts this fixture may be mounted to. These must match `id`s in `cutouts`.", + "type": "array", + "items": { + "type": "string" + } + }, + "displayName": { + "description": "A human-readable nickname for this area e.g. \"Standard Right Slot\" or \"Slot With Movable Trash\"", + "type": "string" + }, + "providesAddressableAreas": { + "description": "The addressable areas that this cutout fixture provides, when it's mounted. It can provide different addressable areas depending on where it's mounted. Keys must match values from this object's `mayMountTo`. Values must match `id`s from `addressableAreas`.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "fixtureGroup": { + "description": "The map of fixtures that must exist in the deck configuration if this fixture exists, with the mounting location acting as a key to determine the location of the rest of the group.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "height": { + "description": "The vertical distance (mm) from the cutout fixture's origin to its tallest physical feature that an instrument could collide with.", + "type": "number" + } + } + } + }, + "gripperOffsets": { + "type": "object", + "description": "Offsets to be added when calculating the coordinates a gripper should go to when picking up or dropping a labware on this deck.", + "properties": { + "default": { + "type": "object", + "properties": { + "pickUpOffset": { + "$ref": "#/definitions/coordinates", + "description": "Offset added to calculate pick-up coordinates of a labware placed on this deck." + }, + "dropOffset": { + "$ref": "#/definitions/coordinates", + "description": "Offset added to calculate drop coordinates of a labware placed on this deck." + } + }, + "required": ["pickUpOffset", "dropOffset"] + } + }, + "required": ["default"] + } + } +}