Skip to content

Commit

Permalink
chore(shared-data): create liquid class schema v1 and fixture (#16267)
Browse files Browse the repository at this point in the history
# Overview

This PR introduces the first version of an Opentrons liquid class
schema. Single liquid class definitions will adhere to this schema and
be keyed by pipette and tip type.

Closes AUTH-832

## Test Plan and Hands on Testing

- Look through schema and ensure it adheres to our finalized liquid
class testing matrix. Any feedback on schema structure/style is
appreciated.
- Try out some test data in a JSON validator. I created a base fixture
that passes schema validation. We can modify that for testing.

## Changelog

- create liquid class schema v1
- add fixture

## Review requests

See test plan. Should we leave keys for `patternProperties` pipette and
tip type less restrictive strings? Perhaps any `safeString` rather than
following more stringent regex?

## Risk assessment

low
  • Loading branch information
ncdiehl11 authored Oct 9, 2024
1 parent 212cae5 commit 0a3f1a8
Show file tree
Hide file tree
Showing 2 changed files with 721 additions and 0 deletions.
241 changes: 241 additions & 0 deletions shared-data/liquid-class/fixtures/fixture_glycerol50.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
{
"liquidName": "Glycerol 50%",
"schemaVersion": 1,
"namespace": "opentrons",
"byPipette": [
{
"pipetteModel": "p20_single_gen2",
"byTipType": [
{
"tipType": "p20_tip",
"aspirate": {
"submerge": {
"positionReference": "liquid-meniscus",
"offset": {
"x": 0,
"y": 0,
"z": -5
},
"speed": 100,
"delay": {
"enable": true,
"params": {
"duration": 1.5
}
}
},
"retract": {
"positionReference": "well-top",
"offset": {
"x": 0,
"y": 0,
"z": 5
},
"speed": 100,
"airGapByVolume": {
"default": 2,
"5": 3,
"10": 4
},
"touchTip": {
"enable": true,
"params": {
"zOffset": 2,
"mmToEdge": 1,
"speed": 50
}
},
"delay": {
"enable": true,
"params": {
"duration": 1
}
}
},
"positionReference": "well-bottom",
"offset": {
"x": 0,
"y": 0,
"z": -5
},
"flowRateByVolume": {
"default": 50,
"10": 40,
"20": 30
},
"preWet": true,
"mix": {
"enable": true,
"params": {
"repetitions": 3,
"volume": 15
}
},
"delay": {
"enable": true,
"params": {
"duration": 2
}
}
},
"singleDispense": {
"submerge": {
"positionReference": "liquid-meniscus",
"offset": {
"x": 0,
"y": 0,
"z": -5
},
"speed": 100,
"delay": {
"enable": true,
"params": {
"duration": 1.5
}
}
},
"retract": {
"positionReference": "well-top",
"offset": {
"x": 0,
"y": 0,
"z": 5
},
"speed": 100,
"airGapByVolume": {
"default": 2,
"5": 3,
"10": 4
},
"blowout": {
"enable": true,
"params": {
"location": "trash",
"flowRate": 100
}
},
"touchTip": {
"enable": true,
"params": {
"zOffset": 2,
"mmToEdge": 1,
"speed": 50
}
},
"delay": {
"enable": true,
"params": {
"duration": 1
}
}
},
"positionReference": "well-bottom",
"offset": {
"x": 0,
"y": 0,
"z": -5
},
"flowRateByVolume": {
"default": 50,
"10": 40,
"20": 30
},
"mix": {
"enable": true,
"params": {
"repetitions": 3,
"volume": 15
}
},
"pushOutByVolume": {
"default": 5,
"10": 7,
"20": 10
},
"delay": 1
},
"multiDispense": {
"submerge": {
"positionReference": "liquid-meniscus",
"offset": {
"x": 0,
"y": 0,
"z": -5
},
"speed": 100,
"delay": {
"enable": true,
"params": {
"duration": 1.5
}
}
},
"retract": {
"positionReference": "well-top",
"offset": {
"x": 0,
"y": 0,
"z": 5
},
"speed": 100,
"airGapByVolume": {
"default": 2,
"5": 3,
"10": 4
},
"touchTip": {
"enable": true,
"params": {
"zOffset": 2,
"mmToEdge": 1,
"speed": 50
}
},
"delay": {
"enable": true,
"params": {
"duration": 1
}
},
"blowout": {
"enable": false
}
},
"positionReference": "well-bottom",
"offset": {
"x": 0,
"y": 0,
"z": -5
},
"flowRateByVolume": {
"default": 50,
"10": 40,
"20": 30
},
"mix": {
"enable": true,
"params": {
"repetitions": 3,
"volume": 15
}
},
"conditioningByVolume": {
"default": 10,
"5": 5
},
"disposalByVolume": {
"default": 2,
"5": 3
},
"delay": {
"enable": true,
"params": {
"duration": 1
}
}
}
}
]
}
]
}
Loading

0 comments on commit 0a3f1a8

Please sign in to comment.