@opentrons/shared-data 0.1.7-alpha.0 → 0.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/.coveragerc +4 -0
  2. package/.flake8 +31 -0
  3. package/Config.in +11 -0
  4. package/LICENSE +202 -0
  5. package/Makefile +13 -14
  6. package/Makefile-python.mk +134 -0
  7. package/buildroot.mk +35 -0
  8. package/command/index.ts +16 -2
  9. package/command/schemas/12.json +65 -0
  10. package/command/schemas/13.json +7039 -0
  11. package/command/schemas/14.json +7254 -0
  12. package/command/types/annotation.ts +1 -1
  13. package/command/types/calibration.ts +7 -6
  14. package/command/types/gantry.ts +7 -6
  15. package/command/types/incidental.ts +1 -1
  16. package/command/types/index.ts +79 -20
  17. package/command/types/module.ts +98 -11
  18. package/command/types/pipetting.ts +9 -3
  19. package/command/types/robot.ts +98 -0
  20. package/command/types/setup.ts +8 -8
  21. package/command/types/support.ts +14 -2
  22. package/command/types/timing.ts +1 -1
  23. package/command/types/unsafe.ts +63 -1
  24. package/deck/definitions/5/ot2_short_trash.json +37 -0
  25. package/deck/definitions/5/ot2_standard.json +37 -0
  26. package/deck/definitions/5/ot3_standard.json +152 -51
  27. package/deck/index.ts +3 -6
  28. package/deck/schemas/5.json +46 -1
  29. package/errors/definitions/1/errors.json +12 -0
  30. package/errors/index.ts +2 -1
  31. package/labware/definitions/2/agilent_1_reservoir_290ml/3.json +80 -0
  32. package/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
  33. package/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
  34. package/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
  35. package/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
  36. package/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
  37. package/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
  38. package/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
  39. package/labware/definitions/2/corning_384_wellplate_112ul_flat/4.json +5116 -0
  40. package/labware/definitions/2/corning_48_wellplate_1.6ml_flat/4.json +605 -0
  41. package/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
  42. package/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
  43. package/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
  44. package/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
  45. package/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
  46. package/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
  47. package/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
  48. package/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
  49. package/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
  50. package/labware/definitions/2/nest_1_reservoir_290ml/3.json +80 -0
  51. package/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
  52. package/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
  53. package/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
  54. package/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
  55. package/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
  56. package/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/3.json +370 -0
  57. package/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/3.json +371 -0
  58. package/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/4.json +1149 -0
  59. package/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
  60. package/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
  61. package/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
  62. package/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
  63. package/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
  64. package/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
  65. package/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
  66. package/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
  67. package/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
  68. package/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +15 -9
  69. package/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
  70. package/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
  71. package/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
  72. package/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
  73. package/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
  74. package/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
  75. package/labware/definitions/2/usascientific_12_reservoir_22ml/3.json +237 -0
  76. package/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
  77. package/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +1050 -0
  78. package/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +1202 -0
  79. package/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
  80. package/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +1037 -0
  81. package/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
  82. package/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
  83. package/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
  84. package/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
  85. package/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
  86. package/labware/fixtures/2/index.ts +4 -4
  87. package/labware/fixtures/3/fixture_2_plate.json +28 -11
  88. package/labware/fixtures/3/fixture_corning_24_plate.json +51 -34
  89. package/labware/fixtures/3/index.ts +4 -0
  90. package/labware/schemas/2.json +36 -1
  91. package/labware/schemas/3.json +115 -25
  92. package/lib/command/index.d.ts +4211 -2095
  93. package/lib/command/schemas/12.json +65 -0
  94. package/lib/command/schemas/13.json +7039 -0
  95. package/lib/command/schemas/14.json +7254 -0
  96. package/lib/command/types/annotation.d.ts +1 -1
  97. package/lib/command/types/calibration.d.ts +5 -5
  98. package/lib/command/types/gantry.d.ts +5 -4
  99. package/lib/command/types/incidental.d.ts +1 -1
  100. package/lib/command/types/index.d.ts +60 -14
  101. package/lib/command/types/module.d.ts +75 -13
  102. package/lib/command/types/pipetting.d.ts +8 -3
  103. package/lib/command/types/robot.d.ts +71 -0
  104. package/lib/command/types/setup.d.ts +5 -5
  105. package/lib/command/types/support.d.ts +3 -2
  106. package/lib/command/types/timing.d.ts +1 -1
  107. package/lib/command/types/unsafe.d.ts +44 -3
  108. package/lib/deck/definitions/5/ot2_short_trash.json +37 -0
  109. package/lib/deck/definitions/5/ot2_standard.json +37 -0
  110. package/lib/deck/definitions/5/ot3_standard.json +152 -51
  111. package/lib/deck/index.d.ts +3 -3
  112. package/lib/deck/schemas/5.json +46 -1
  113. package/lib/errors/definitions/1/errors.json +12 -0
  114. package/lib/errors/index.d.ts +1 -1
  115. package/lib/index.mjs +380872 -297265
  116. package/lib/js/constants.d.ts +45 -17
  117. package/lib/js/deck/index.d.ts +2 -2
  118. package/lib/js/fixtures.d.ts +78 -3
  119. package/lib/js/getLabware.d.ts +3 -3
  120. package/lib/js/gripper.d.ts +1 -1
  121. package/lib/js/helpers/__tests__/getMaxPushOutVolume.test.d.ts +1 -0
  122. package/lib/js/helpers/__tests__/getMmFromBottom.test.d.ts +1 -0
  123. package/lib/js/helpers/__tests__/getStackedItemsOnStartingDeck.test.d.ts +1 -0
  124. package/lib/js/helpers/__tests__/labwareSchemaShims.test.d.ts +1 -0
  125. package/lib/js/helpers/__tests__/liquidClasses.test.d.ts +1 -0
  126. package/lib/js/helpers/__tests__/pairsFromArray.test.d.ts +1 -0
  127. package/lib/js/helpers/__tests__/vectorMath.test.d.ts +1 -0
  128. package/lib/js/helpers/getFixedTrashLabwareDefinition.d.ts +2 -2
  129. package/lib/js/helpers/getLabwareDefURI.d.ts +3 -0
  130. package/lib/js/helpers/getLabwareDefinitionsByURIForProtocol.d.ts +6 -0
  131. package/lib/js/helpers/getLabwareInfoByLiquidId.d.ts +10 -0
  132. package/lib/js/helpers/getLiquidsByIdForLabware.d.ts +2 -0
  133. package/lib/js/helpers/getLoadedLabwareDefinitionsByUri.d.ts +2 -2
  134. package/lib/js/helpers/getMaxPushOutVolume.d.ts +2 -0
  135. package/lib/js/helpers/getMmFromBottom.d.ts +2 -0
  136. package/lib/js/helpers/getSimplestFlexDeckConfig.d.ts +1 -1
  137. package/lib/js/helpers/getStackedItemsOnStartingDeck.d.ts +50 -0
  138. package/lib/js/helpers/getStandardDeckViewLayerBlockList.d.ts +2 -0
  139. package/lib/js/helpers/getTipTypeFromTipRackDefinition.d.ts +2 -2
  140. package/lib/js/helpers/getWellFillFromLabwareId.d.ts +4 -0
  141. package/lib/js/helpers/getWellNamePerMultiTip.d.ts +3 -3
  142. package/lib/js/helpers/getWellRangeForLiquidLabwarePair.d.ts +6 -0
  143. package/lib/js/helpers/getWellTotalVolume.d.ts +2 -2
  144. package/lib/js/helpers/index.d.ts +25 -14
  145. package/lib/js/helpers/labwareInference.d.ts +3 -3
  146. package/lib/js/helpers/liquidClasses.d.ts +10 -0
  147. package/lib/js/helpers/matrixMath.d.ts +3 -0
  148. package/lib/js/helpers/pairsFromArray.d.ts +8 -0
  149. package/lib/js/helpers/parseAddressableArea.d.ts +1 -1
  150. package/lib/js/helpers/parseProtocolCommands.d.ts +5 -5
  151. package/lib/js/helpers/positionMath.d.ts +127 -0
  152. package/lib/js/helpers/validateCustomLabwareHelper.d.ts +2 -2
  153. package/lib/js/helpers/vectorMath.d.ts +14 -0
  154. package/lib/js/helpers/wellSets.d.ts +4 -4
  155. package/lib/js/labware.d.ts +10 -9
  156. package/lib/js/labwareTools/index.d.ts +1 -1
  157. package/lib/js/liquidClasses.d.ts +4 -0
  158. package/lib/js/modules.d.ts +2 -2
  159. package/lib/js/pipettes.d.ts +3 -2
  160. package/lib/js/types.d.ts +105 -38
  161. package/lib/labware/definitions/2/agilent_1_reservoir_290ml/3.json +80 -0
  162. package/lib/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
  163. package/lib/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
  164. package/lib/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
  165. package/lib/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
  166. package/lib/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
  167. package/lib/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
  168. package/lib/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
  169. package/lib/labware/definitions/2/corning_384_wellplate_112ul_flat/4.json +5116 -0
  170. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/4.json +605 -0
  171. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
  172. package/lib/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
  173. package/lib/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
  174. package/lib/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
  175. package/lib/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
  176. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
  177. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
  178. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
  179. package/lib/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
  180. package/lib/labware/definitions/2/nest_1_reservoir_290ml/3.json +80 -0
  181. package/lib/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
  182. package/lib/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
  183. package/lib/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
  184. package/lib/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
  185. package/lib/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
  186. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/3.json +370 -0
  187. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/3.json +371 -0
  188. package/lib/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/4.json +1149 -0
  189. package/lib/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
  190. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
  191. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
  192. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
  193. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
  194. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
  195. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
  196. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
  197. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
  198. package/lib/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +15 -9
  199. package/lib/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
  200. package/lib/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
  201. package/lib/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
  202. package/lib/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
  203. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
  204. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
  205. package/lib/labware/definitions/2/usascientific_12_reservoir_22ml/3.json +237 -0
  206. package/lib/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
  207. package/lib/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +1050 -0
  208. package/lib/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +1202 -0
  209. package/lib/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
  210. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +1037 -0
  211. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
  212. package/lib/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
  213. package/lib/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
  214. package/lib/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
  215. package/lib/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
  216. package/lib/labware/fixtures/2/index.d.ts +4 -4
  217. package/lib/labware/fixtures/3/fixture_2_plate.json +28 -11
  218. package/lib/labware/fixtures/3/fixture_corning_24_plate.json +51 -34
  219. package/lib/labware/fixtures/3/index.d.ts +3 -0
  220. package/lib/labware/schemas/2.json +36 -1
  221. package/lib/labware/schemas/3.json +115 -25
  222. package/lib/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +1957 -1406
  223. package/lib/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +1781 -1230
  224. package/lib/liquid-class/definitions/1/{water.json → water/1.json} +1567 -1082
  225. package/lib/liquid-class/fixtures/1/fixture_glycerol50.json +67 -48
  226. package/lib/liquid-class/schemas/1.json +40 -48
  227. package/lib/module/definitions/3/absorbanceReaderV1.json +20 -150
  228. package/lib/module/definitions/3/flexStackerModuleV1.json +31 -385
  229. package/lib/module/definitions/3/heaterShakerModuleV1.json +16 -357
  230. package/lib/module/definitions/3/magneticBlockV1.json +18 -148
  231. package/lib/module/definitions/3/magneticModuleV1.json +16 -398
  232. package/lib/module/definitions/3/magneticModuleV2.json +16 -398
  233. package/lib/module/definitions/3/temperatureModuleV1.json +16 -152
  234. package/lib/module/definitions/3/temperatureModuleV2.json +16 -152
  235. package/lib/module/definitions/3/thermocyclerModuleV1.json +16 -1339
  236. package/lib/module/definitions/3/thermocyclerModuleV2.json +18 -3616
  237. package/lib/module/schemas/3.json +111 -10
  238. package/lib/pipette/definitions/1/pipetteModelSpecs.json +336 -0
  239. package/lib/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
  240. package/lib/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +4 -0
  241. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +4 -0
  242. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
  243. package/lib/pipette/definitions/2/geometry/single_channel/p50/3_6.json +4 -0
  244. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/1_0.json +11 -11
  245. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_0.json +12 -12
  246. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
  247. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
  248. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json +5 -5
  249. package/lib/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json +5 -5
  250. package/lib/pipette/fixtures/name/index.d.ts +1 -1
  251. package/lib/protocol/fixtures/index.d.ts +2 -2
  252. package/lib/protocol/index.d.ts +7 -7
  253. package/lib/protocol/types/schemaV4.d.ts +1 -1
  254. package/lib/protocol/types/schemaV5.d.ts +1 -1
  255. package/lib/protocol/types/schemaV5Addendum.d.ts +1 -1
  256. package/lib/protocol/types/schemaV6/command/gantry.d.ts +4 -4
  257. package/lib/protocol/types/schemaV6/command/index.d.ts +5 -5
  258. package/lib/protocol/types/schemaV6/command/module.d.ts +1 -1
  259. package/lib/protocol/types/schemaV6/command/pipetting.d.ts +1 -1
  260. package/lib/protocol/types/schemaV6/command/setup.d.ts +1 -1
  261. package/lib/protocol/types/schemaV6/command/timing.d.ts +1 -1
  262. package/lib/protocol/types/schemaV6/index.d.ts +2 -2
  263. package/lib/protocol/types/schemaV7/command/annotation.d.ts +1 -1
  264. package/lib/protocol/types/schemaV7/command/calibration.d.ts +5 -5
  265. package/lib/protocol/types/schemaV7/command/gantry.d.ts +4 -4
  266. package/lib/protocol/types/schemaV7/command/incidental.d.ts +1 -1
  267. package/lib/protocol/types/schemaV7/command/index.d.ts +7 -7
  268. package/lib/protocol/types/schemaV7/command/module.d.ts +1 -1
  269. package/lib/protocol/types/schemaV7/command/pipetting.d.ts +1 -1
  270. package/lib/protocol/types/schemaV7/command/setup.d.ts +1 -1
  271. package/lib/protocol/types/schemaV7/command/timing.d.ts +1 -1
  272. package/lib/protocol/types/schemaV7/index.d.ts +2 -2
  273. package/lib/protocol/types/schemaV8/index.d.ts +18 -2
  274. package/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +1957 -1406
  275. package/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +1781 -1230
  276. package/liquid-class/definitions/1/{water.json → water/1.json} +1567 -1082
  277. package/liquid-class/fixtures/1/fixture_glycerol50.json +67 -48
  278. package/liquid-class/schemas/1.json +40 -48
  279. package/module/definitions/3/absorbanceReaderV1.json +20 -150
  280. package/module/definitions/3/flexStackerModuleV1.json +31 -385
  281. package/module/definitions/3/heaterShakerModuleV1.json +16 -357
  282. package/module/definitions/3/magneticBlockV1.json +18 -148
  283. package/module/definitions/3/magneticModuleV1.json +16 -398
  284. package/module/definitions/3/magneticModuleV2.json +16 -398
  285. package/module/definitions/3/temperatureModuleV1.json +16 -152
  286. package/module/definitions/3/temperatureModuleV2.json +16 -152
  287. package/module/definitions/3/thermocyclerModuleV1.json +16 -1339
  288. package/module/definitions/3/thermocyclerModuleV2.json +18 -3616
  289. package/module/schemas/3.json +111 -10
  290. package/mypy.ini +22 -0
  291. package/package.json +1 -1
  292. package/pipette/definitions/1/pipetteModelSpecs.json +336 -0
  293. package/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
  294. package/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +4 -0
  295. package/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +4 -0
  296. package/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
  297. package/pipette/definitions/2/geometry/single_channel/p50/3_6.json +4 -0
  298. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/1_0.json +11 -11
  299. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_0.json +12 -12
  300. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
  301. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
  302. package/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json +5 -5
  303. package/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json +5 -5
  304. package/pipette/fixtures/index.ts +12 -12
  305. package/pipette/fixtures/name/index.ts +1 -0
  306. package/protocol/fixtures/index.ts +2 -3
  307. package/protocol/index.ts +9 -8
  308. package/protocol/types/schemaV4.ts +4 -4
  309. package/protocol/types/schemaV5.ts +1 -1
  310. package/protocol/types/schemaV5Addendum.ts +1 -1
  311. package/protocol/types/schemaV6/command/gantry.ts +4 -4
  312. package/protocol/types/schemaV6/command/index.ts +6 -6
  313. package/protocol/types/schemaV6/command/module.ts +1 -1
  314. package/protocol/types/schemaV6/command/pipetting.ts +2 -1
  315. package/protocol/types/schemaV6/command/setup.ts +2 -2
  316. package/protocol/types/schemaV6/command/timing.ts +1 -1
  317. package/protocol/types/schemaV6/index.ts +3 -3
  318. package/protocol/types/schemaV7/command/annotation.ts +1 -1
  319. package/protocol/types/schemaV7/command/calibration.ts +7 -6
  320. package/protocol/types/schemaV7/command/gantry.ts +5 -5
  321. package/protocol/types/schemaV7/command/incidental.ts +1 -1
  322. package/protocol/types/schemaV7/command/index.ts +14 -14
  323. package/protocol/types/schemaV7/command/module.ts +1 -1
  324. package/protocol/types/schemaV7/command/pipetting.ts +2 -1
  325. package/protocol/types/schemaV7/command/setup.ts +2 -2
  326. package/protocol/types/schemaV7/command/timing.ts +1 -1
  327. package/protocol/types/schemaV7/index.ts +3 -3
  328. package/protocol/types/schemaV8/index.ts +32 -4
  329. package/pyproject.toml +119 -0
  330. package/pytest.ini +8 -0
  331. package/python_tests/__init__.py +1 -0
  332. package/python_tests/command/test_known_schema_ids.py +9 -0
  333. package/python_tests/conftest.py +108 -0
  334. package/python_tests/deck/__init__.py +0 -0
  335. package/python_tests/deck/test_list_names.py +12 -0
  336. package/python_tests/deck/test_position.py +101 -0
  337. package/python_tests/deck/test_typechecks.py +23 -0
  338. package/python_tests/errors/__init__.py +1 -0
  339. package/python_tests/errors/test_error_completeness.py +19 -0
  340. package/python_tests/errors/test_exceptions.py +74 -0
  341. package/python_tests/gripper/__init__.py +0 -0
  342. package/python_tests/gripper/test_definition.py +30 -0
  343. package/python_tests/gripper/test_load.py +19 -0
  344. package/python_tests/labware/__init__.py +13 -0
  345. package/python_tests/labware/test_typechecks.py +80 -0
  346. package/python_tests/liquid_classes/__init__.py +0 -0
  347. package/python_tests/liquid_classes/test_liquid_class_values.py +59 -0
  348. package/python_tests/liquid_classes/test_load.py +45 -0
  349. package/python_tests/liquid_classes/test_validations.py +192 -0
  350. package/python_tests/module/__init__.py +20 -0
  351. package/python_tests/module/test_load.py +49 -0
  352. package/python_tests/module/test_typechecks.py +26 -0
  353. package/python_tests/pipette/__init__.py +0 -0
  354. package/python_tests/pipette/test_load_data.py +109 -0
  355. package/python_tests/pipette/test_max_flow_rates_per_volume.py +112 -0
  356. package/python_tests/pipette/test_mutable_configurations.py +467 -0
  357. package/python_tests/pipette/test_pipette_definition.py +183 -0
  358. package/python_tests/pipette/test_pipette_load_name_conversions.py +244 -0
  359. package/python_tests/pipette/test_typechecks.py +47 -0
  360. package/python_tests/pipette/test_validate_schema.py +198 -0
  361. package/python_tests/protocol/__init__.py +7 -0
  362. package/python_tests/protocol/test_protocol_schema_v6.py +108 -0
  363. package/python_tests/protocol/test_protocol_schema_v7.py +35 -0
  364. package/python_tests/protocol/test_protocol_schema_v8.py +17 -0
  365. package/python_tests/protocol/test_typechecks.py +30 -0
  366. package/python_tests/robot/__init__.py +0 -0
  367. package/python_tests/robot/test_typechecks.py +13 -0
  368. package/lib/js/cypressUtils.d.ts +0 -1
  369. package/lib/js/helpers/getVectorDifference.d.ts +0 -2
  370. package/lib/js/helpers/getVectorSum.d.ts +0 -2
  371. /package/lib/js/{helpers/__tests__/getVectorDifference.test.d.ts → __tests__/fixtures.test.d.ts} +0 -0
  372. /package/lib/js/helpers/__tests__/{getVectorSum.test.d.ts → getLabwareInfoByLiquidId.test.d.ts} +0 -0
@@ -51,6 +51,50 @@
51
51
  "description": "Attributes for the element"
52
52
  }
53
53
  }
54
+ },
55
+ "vector3D": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "required": ["x", "y", "z"],
59
+ "properties": {
60
+ "x": {
61
+ "type": "number"
62
+ },
63
+ "y": {
64
+ "type": "number"
65
+ },
66
+ "z": {
67
+ "type": "number"
68
+ }
69
+ }
70
+ },
71
+ "vector2D": {
72
+ "type": "object",
73
+ "additionalProperties": false,
74
+ "required": ["x", "y"],
75
+ "properties": {
76
+ "x": {
77
+ "type": "number"
78
+ },
79
+ "y": {
80
+ "type": "number"
81
+ }
82
+ }
83
+ },
84
+ "axisAlignedBoundingBox3D": {
85
+ "type": "object",
86
+ "required": ["backLeftBottom", "frontRightTop"],
87
+ "additionalProperties": false,
88
+ "properties": {
89
+ "backLeftBottom": {
90
+ "description": "(-x, +y, -z) relative to the labware origin.",
91
+ "$ref": "#/definitions/vector3D"
92
+ },
93
+ "frontRightTop": {
94
+ "description": "(+x, -y, +z) relative to the labware origin.",
95
+ "$ref": "#/definitions/vector3D"
96
+ }
97
+ }
54
98
  }
55
99
  },
56
100
  "description": "Module specification",
@@ -61,13 +105,13 @@
61
105
  "model",
62
106
  "labwareOffset",
63
107
  "cornerOffsetFromSlot",
108
+ "features",
64
109
  "dimensions",
65
110
  "calibrationPoint",
66
111
  "displayName",
67
112
  "quirks",
68
113
  "slotTransforms",
69
114
  "compatibleWith",
70
- "twoDimensionalRendering",
71
115
  "incompatibleWithDecks"
72
116
  ],
73
117
  "additionalProperties": false,
@@ -92,7 +136,53 @@
92
136
  "type": "string",
93
137
  "pattern": "^(temperatureModule|magneticModule|thermocyclerModule|heaterShakerModule|magneticBlock|absorbanceReader|flexStackerModule)V[0-9]+$"
94
138
  },
95
- "labwareOffset": { "$ref": "#/definitions/coordinates" },
139
+ "labwareOffset": {
140
+ "$ref": "#/definitions/coordinates",
141
+ "description": "The offset from the left-front-bottom corner of the slot holding this module, to the left-front-bottom corner of the labware interface atop this module."
142
+ },
143
+ "extents": {
144
+ "description": "The outer dimensions of the addressable area. Includes offsets from `cornerOffsetFromSlot`.",
145
+ "type": "object",
146
+ "required": ["total"],
147
+ "additionalProperties": false,
148
+ "properties": {
149
+ "total": {
150
+ "description": "The all-encompassing outer dimensions of the labware.",
151
+ "$ref": "#/definitions/axisAlignedBoundingBox3D"
152
+ }
153
+ }
154
+ },
155
+ "features": {
156
+ "type": "object",
157
+ "description": "Locating features when this module is a part of a stackup.",
158
+ "required": [],
159
+ "properties": {
160
+ "slotFootprintAsChild": {
161
+ "description": "The 3D plane of the module that makes physical contact with a parent entity. Constrained by the dimensions of a slot.",
162
+ "type": "object",
163
+ "required": ["backLeft", "frontRight", "z"],
164
+ "properties": {
165
+ "backLeft": {
166
+ "description": "(-x, +y) relative to the labware origin.",
167
+ "$ref": "#/definitions/vector2D"
168
+ },
169
+ "frontRight": {
170
+ "description": "(+x, -y) relative to the labware origin.",
171
+ "$ref": "#/definitions/vector2D"
172
+ },
173
+ "z": {
174
+ "description": "Always zero by convention. Z-coordinate of the footprint plane.",
175
+ "type": "number"
176
+ },
177
+ "springDirectionalForce": {
178
+ "description": "Applicable when the module contains a spring that influences its position when placed on a parent deck item.",
179
+ "type": "string",
180
+ "enum": ["backLeftBottom"]
181
+ }
182
+ }
183
+ }
184
+ }
185
+ },
96
186
  "dimensions": {
97
187
  "type": "object",
98
188
  "required": [
@@ -107,10 +197,22 @@
107
197
  "lidHeight": { "type": "number" },
108
198
  "xDimension": { "type": "number" },
109
199
  "yDimension": { "type": "number" },
110
- "footprintXDimension": { "type": "number" },
111
- "footprintYDimension": { "type": "number" },
112
- "labwareInterfaceXDimension": { "type": "number" },
113
- "labwareInterfaceYDimension": { "type": "number" },
200
+ "footprintXDimension": {
201
+ "type": "number",
202
+ "description": "The x dimension of the module's bottom-most plane."
203
+ },
204
+ "footprintYDimension": {
205
+ "type": "number",
206
+ "description": "The y dimension of the module's bottom-most plane."
207
+ },
208
+ "labwareInterfaceXDimension": {
209
+ "type": "number",
210
+ "description": "The x dimension of the module's interaction plane (where labware is placed)."
211
+ },
212
+ "labwareInterfaceYDimension": {
213
+ "type": "number",
214
+ "description": "The y dimension of the module's interaction plane (where labware is placed)."
215
+ },
114
216
  "maxStackerFillHeight": { "type": "number" },
115
217
  "maxStackerRetrievableHeight": { "type": "number" }
116
218
  }
@@ -199,7 +301,7 @@
199
301
  "type": "array",
200
302
  "items": {
201
303
  "type": "string",
202
- "description": "A compatible module model (e.g. temperatureModuleV1)"
304
+ "description": "List of module models this model is compatible with (e.g. temperatureModuleV1)"
203
305
  }
204
306
  },
205
307
  "incompatibleWithDecks": {
@@ -209,10 +311,9 @@
209
311
  "description": "A list of robot decks (by their definition name) not compatible with this module."
210
312
  }
211
313
  },
212
- "twoDimensionalRendering": {
314
+ "uniqueModuleData": {
213
315
  "type": "object",
214
- "description": "SVG rendering of the module represented as svgson",
215
- "items": { "$ref": "#/definitions/svgsonNode" }
316
+ "description": "Unique data used by the module, (e.g. TOF sensor baseline data)"
216
317
  }
217
318
  }
218
319
  }
package/mypy.ini ADDED
@@ -0,0 +1,22 @@
1
+ [mypy]
2
+ plugins = pydantic.mypy
3
+ show_error_codes = True
4
+ warn_unused_configs = True
5
+ strict = True
6
+
7
+ [pydantic-mypy]
8
+ init_forbid_extra = True
9
+ init_typed = True
10
+ warn_required_dynamic_aliases = True
11
+ warn_untyped_fields = True
12
+
13
+ # TODO(mc, 2022-01-20): fix and remove all of the overrides below
14
+
15
+ [mypy-opentrons_shared_data.labware.*]
16
+ warn_return_any = False
17
+
18
+ [mypy-opentrons_shared_data.pipette.*]
19
+ warn_return_any = False
20
+
21
+ [mypy-opentrons_shared_data.protocol.*]
22
+ warn_return_any = False
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentrons/shared-data",
3
- "version": "0.1.7-alpha.0",
3
+ "version": "0.2.0-alpha.0",
4
4
  "description": "Shared system definitions and utilities for Opentrons robots and software",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11173,6 +11173,342 @@
11173
11173
  "quirks": [],
11174
11174
  "returnTipHeight": 0.83,
11175
11175
  "idleCurrent": 0.3
11176
+ },
11177
+ "p200_96_v3.1": {
11178
+ "name": "p200_96",
11179
+ "backCompatNames": [],
11180
+ "top": {
11181
+ "value": 0.5,
11182
+ "min": 0,
11183
+ "max": 45,
11184
+ "units": "mm",
11185
+ "type": "float"
11186
+ },
11187
+ "bottom": {
11188
+ "value": 71.5,
11189
+ "min": 55,
11190
+ "max": 80,
11191
+ "type": "float",
11192
+ "units": "mm"
11193
+ },
11194
+ "blowout": {
11195
+ "value": 76.5,
11196
+ "min": 60,
11197
+ "max": 85,
11198
+ "units": "mm",
11199
+ "type": "float"
11200
+ },
11201
+ "dropTip": {
11202
+ "value": 92.5,
11203
+ "min": 78,
11204
+ "max": 119,
11205
+ "units": "mm",
11206
+ "type": "float"
11207
+ },
11208
+ "pickUpCurrent": {
11209
+ "value": 0.5,
11210
+ "min": 0.05,
11211
+ "max": 2.0,
11212
+ "units": "amps",
11213
+ "type": "float"
11214
+ },
11215
+ "pickUpDistance": {
11216
+ "value": 13,
11217
+ "min": 1,
11218
+ "max": 30,
11219
+ "units": "mm",
11220
+ "type": "float"
11221
+ },
11222
+ "pickUpIncrement": {
11223
+ "value": 0.0,
11224
+ "min": 0.0,
11225
+ "max": 10.0,
11226
+ "units": "mm",
11227
+ "type": "float"
11228
+ },
11229
+ "pickUpPresses": {
11230
+ "value": 1,
11231
+ "min": 0,
11232
+ "max": 10,
11233
+ "units": "presses",
11234
+ "type": "int"
11235
+ },
11236
+ "pickUpSpeed": {
11237
+ "value": 10,
11238
+ "min": 1,
11239
+ "max": 30,
11240
+ "units": "mm/s",
11241
+ "type": "float"
11242
+ },
11243
+ "nozzleOffset": [-8.0, -16.0, -259.15],
11244
+ "modelOffset": [0.0, 0.0, 25.14],
11245
+ "ulPerMm": [
11246
+ {
11247
+ "aspirate": [
11248
+ [0.6464, 0.4817, 0.0427],
11249
+ [1.0889, 0.2539, 0.1591],
11250
+ [1.5136, 0.1624, 0.2587],
11251
+ [1.9108, 0.1042, 0.3467],
11252
+ [2.2941, 0.0719, 0.4085],
11253
+ [2.9978, 0.037, 0.4886],
11254
+ [3.7731, 0.0378, 0.4863],
11255
+ [4.7575, 0.0516, 0.4342],
11256
+ [5.5024, 0.011, 0.6275],
11257
+ [6.2686, 0.0114, 0.6253],
11258
+ [7.005, 0.0054, 0.6625],
11259
+ [8.5207, 0.0063, 0.6563],
11260
+ [10.0034, 0.003, 0.6844],
11261
+ [11.5075, 0.0031, 0.6833],
11262
+ [13.0327, 0.0032, 0.6829],
11263
+ [14.5356, 0.0018, 0.7003],
11264
+ [17.5447, 0.0014, 0.7063],
11265
+ [20.5576, 0.0011, 0.7126],
11266
+ [23.5624, 0.0007, 0.7197],
11267
+ [26.5785, 0.0007, 0.721],
11268
+ [29.593, 0.0005, 0.7248],
11269
+ [32.6109, 0.0004, 0.7268],
11270
+ [35.6384, 0.0004, 0.727],
11271
+ [38.6439, 0.0002, 0.7343],
11272
+ [41.6815, 0.0004, 0.7284],
11273
+ [44.6895, 0.0002, 0.7372],
11274
+ [47.6926, 0.0001, 0.7393],
11275
+ [51.4567, 0.0001, 0.7382]
11276
+ ],
11277
+ "dispense": [
11278
+ [0.6464, 0.4817, 0.0427],
11279
+ [1.0889, 0.2539, 0.1591],
11280
+ [1.5136, 0.1624, 0.2587],
11281
+ [1.9108, 0.1042, 0.3467],
11282
+ [2.2941, 0.0719, 0.4085],
11283
+ [2.9978, 0.037, 0.4886],
11284
+ [3.7731, 0.0378, 0.4863],
11285
+ [4.7575, 0.0516, 0.4342],
11286
+ [5.5024, 0.011, 0.6275],
11287
+ [6.2686, 0.0114, 0.6253],
11288
+ [7.005, 0.0054, 0.6625],
11289
+ [8.5207, 0.0063, 0.6563],
11290
+ [10.0034, 0.003, 0.6844],
11291
+ [11.5075, 0.0031, 0.6833],
11292
+ [13.0327, 0.0032, 0.6829],
11293
+ [14.5356, 0.0018, 0.7003],
11294
+ [17.5447, 0.0014, 0.7063],
11295
+ [20.5576, 0.0011, 0.7126],
11296
+ [23.5624, 0.0007, 0.7197],
11297
+ [26.5785, 0.0007, 0.721],
11298
+ [29.593, 0.0005, 0.7248],
11299
+ [32.6109, 0.0004, 0.7268],
11300
+ [35.6384, 0.0004, 0.727],
11301
+ [38.6439, 0.0002, 0.7343],
11302
+ [41.6815, 0.0004, 0.7284],
11303
+ [44.6895, 0.0002, 0.7372],
11304
+ [47.6926, 0.0001, 0.7393],
11305
+ [51.4567, 0.0001, 0.7382]
11306
+ ]
11307
+ }
11308
+ ],
11309
+ "plungerCurrent": {
11310
+ "value": 1,
11311
+ "min": 0.1,
11312
+ "max": 1.5,
11313
+ "units": "amps",
11314
+ "type": "float"
11315
+ },
11316
+ "dropTipCurrent": {
11317
+ "value": 1,
11318
+ "min": 0.1,
11319
+ "max": 1.25,
11320
+ "units": "amps",
11321
+ "type": "float"
11322
+ },
11323
+ "dropTipSpeed": {
11324
+ "value": 10,
11325
+ "min": 0.001,
11326
+ "max": 30,
11327
+ "units": "mm/sec",
11328
+ "type": "float"
11329
+ },
11330
+ "tipOverlap": {
11331
+ "default": 10.5,
11332
+ "opentrons/opentrons_96_tiprack_50ul/1": 10.5
11333
+ },
11334
+ "tipLength": {
11335
+ "value": 78.3,
11336
+ "units": "mm",
11337
+ "type": "float",
11338
+ "min": 0,
11339
+ "max": 100
11340
+ },
11341
+ "quirks": [],
11342
+ "returnTipHeight": 0.83,
11343
+ "idleCurrent": 0.3
11344
+ },
11345
+ "p200_96_v3.2": {
11346
+ "name": "p200_96",
11347
+ "backCompatNames": [],
11348
+ "top": {
11349
+ "value": 0.5,
11350
+ "min": 0,
11351
+ "max": 45,
11352
+ "units": "mm",
11353
+ "type": "float"
11354
+ },
11355
+ "bottom": {
11356
+ "value": 71.5,
11357
+ "min": 55,
11358
+ "max": 80,
11359
+ "type": "float",
11360
+ "units": "mm"
11361
+ },
11362
+ "blowout": {
11363
+ "value": 76.5,
11364
+ "min": 60,
11365
+ "max": 85,
11366
+ "units": "mm",
11367
+ "type": "float"
11368
+ },
11369
+ "dropTip": {
11370
+ "value": 92.5,
11371
+ "min": 78,
11372
+ "max": 119,
11373
+ "units": "mm",
11374
+ "type": "float"
11375
+ },
11376
+ "pickUpCurrent": {
11377
+ "value": 0.5,
11378
+ "min": 0.05,
11379
+ "max": 2.0,
11380
+ "units": "amps",
11381
+ "type": "float"
11382
+ },
11383
+ "pickUpDistance": {
11384
+ "value": 13,
11385
+ "min": 1,
11386
+ "max": 30,
11387
+ "units": "mm",
11388
+ "type": "float"
11389
+ },
11390
+ "pickUpIncrement": {
11391
+ "value": 0.0,
11392
+ "min": 0.0,
11393
+ "max": 10.0,
11394
+ "units": "mm",
11395
+ "type": "float"
11396
+ },
11397
+ "pickUpPresses": {
11398
+ "value": 1,
11399
+ "min": 0,
11400
+ "max": 10,
11401
+ "units": "presses",
11402
+ "type": "int"
11403
+ },
11404
+ "pickUpSpeed": {
11405
+ "value": 10,
11406
+ "min": 1,
11407
+ "max": 30,
11408
+ "units": "mm/s",
11409
+ "type": "float"
11410
+ },
11411
+ "nozzleOffset": [-8.0, -16.0, -259.15],
11412
+ "modelOffset": [0.0, 0.0, 25.14],
11413
+ "ulPerMm": [
11414
+ {
11415
+ "aspirate": [
11416
+ [0.6464, 0.4817, 0.0427],
11417
+ [1.0889, 0.2539, 0.1591],
11418
+ [1.5136, 0.1624, 0.2587],
11419
+ [1.9108, 0.1042, 0.3467],
11420
+ [2.2941, 0.0719, 0.4085],
11421
+ [2.9978, 0.037, 0.4886],
11422
+ [3.7731, 0.0378, 0.4863],
11423
+ [4.7575, 0.0516, 0.4342],
11424
+ [5.5024, 0.011, 0.6275],
11425
+ [6.2686, 0.0114, 0.6253],
11426
+ [7.005, 0.0054, 0.6625],
11427
+ [8.5207, 0.0063, 0.6563],
11428
+ [10.0034, 0.003, 0.6844],
11429
+ [11.5075, 0.0031, 0.6833],
11430
+ [13.0327, 0.0032, 0.6829],
11431
+ [14.5356, 0.0018, 0.7003],
11432
+ [17.5447, 0.0014, 0.7063],
11433
+ [20.5576, 0.0011, 0.7126],
11434
+ [23.5624, 0.0007, 0.7197],
11435
+ [26.5785, 0.0007, 0.721],
11436
+ [29.593, 0.0005, 0.7248],
11437
+ [32.6109, 0.0004, 0.7268],
11438
+ [35.6384, 0.0004, 0.727],
11439
+ [38.6439, 0.0002, 0.7343],
11440
+ [41.6815, 0.0004, 0.7284],
11441
+ [44.6895, 0.0002, 0.7372],
11442
+ [47.6926, 0.0001, 0.7393],
11443
+ [51.4567, 0.0001, 0.7382]
11444
+ ],
11445
+ "dispense": [
11446
+ [0.6464, 0.4817, 0.0427],
11447
+ [1.0889, 0.2539, 0.1591],
11448
+ [1.5136, 0.1624, 0.2587],
11449
+ [1.9108, 0.1042, 0.3467],
11450
+ [2.2941, 0.0719, 0.4085],
11451
+ [2.9978, 0.037, 0.4886],
11452
+ [3.7731, 0.0378, 0.4863],
11453
+ [4.7575, 0.0516, 0.4342],
11454
+ [5.5024, 0.011, 0.6275],
11455
+ [6.2686, 0.0114, 0.6253],
11456
+ [7.005, 0.0054, 0.6625],
11457
+ [8.5207, 0.0063, 0.6563],
11458
+ [10.0034, 0.003, 0.6844],
11459
+ [11.5075, 0.0031, 0.6833],
11460
+ [13.0327, 0.0032, 0.6829],
11461
+ [14.5356, 0.0018, 0.7003],
11462
+ [17.5447, 0.0014, 0.7063],
11463
+ [20.5576, 0.0011, 0.7126],
11464
+ [23.5624, 0.0007, 0.7197],
11465
+ [26.5785, 0.0007, 0.721],
11466
+ [29.593, 0.0005, 0.7248],
11467
+ [32.6109, 0.0004, 0.7268],
11468
+ [35.6384, 0.0004, 0.727],
11469
+ [38.6439, 0.0002, 0.7343],
11470
+ [41.6815, 0.0004, 0.7284],
11471
+ [44.6895, 0.0002, 0.7372],
11472
+ [47.6926, 0.0001, 0.7393],
11473
+ [51.4567, 0.0001, 0.7382]
11474
+ ]
11475
+ }
11476
+ ],
11477
+ "plungerCurrent": {
11478
+ "value": 1,
11479
+ "min": 0.1,
11480
+ "max": 1.5,
11481
+ "units": "amps",
11482
+ "type": "float"
11483
+ },
11484
+ "dropTipCurrent": {
11485
+ "value": 1,
11486
+ "min": 0.1,
11487
+ "max": 1.25,
11488
+ "units": "amps",
11489
+ "type": "float"
11490
+ },
11491
+ "dropTipSpeed": {
11492
+ "value": 10,
11493
+ "min": 0.001,
11494
+ "max": 30,
11495
+ "units": "mm/sec",
11496
+ "type": "float"
11497
+ },
11498
+ "tipOverlap": {
11499
+ "default": 10.5,
11500
+ "opentrons/opentrons_96_tiprack_50ul/1": 10.5
11501
+ },
11502
+ "tipLength": {
11503
+ "value": 78.3,
11504
+ "units": "mm",
11505
+ "type": "float",
11506
+ "min": 0,
11507
+ "max": 100
11508
+ },
11509
+ "quirks": [],
11510
+ "returnTipHeight": 0.83,
11511
+ "idleCurrent": 0.3
11176
11512
  }
11177
11513
  },
11178
11514
  "mutableConfigs": [