Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(hardware-testing): liquid sense testing script #14807

Merged
merged 54 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
01493ef
first pass at skeletoning out the liquid sense script
ryanthecoder Dec 15, 2023
86c44e8
stub out some more arguments
ryanthecoder Dec 18, 2023
72d2c11
add unit test calls for liquid sense script
ryanthecoder Dec 18, 2023
0666978
fix all the things the testing showed were broken
ryanthecoder Dec 18, 2023
d80402c
format
ryanthecoder Dec 18, 2023
0efdd1a
start stubbing out report
ryanthecoder Dec 20, 2023
025b0d8
remove preheat
ryanthecoder Dec 21, 2023
37d7043
finish out stubbing report
ryanthecoder Dec 21, 2023
ff763b6
add fake probing
ryanthecoder Dec 21, 2023
5649811
flesh out the stat calclation
ryanthecoder Dec 22, 2023
b5a4262
add tip handleing
ryanthecoder Dec 22, 2023
27143c7
hook up actually using data_file for lps
ryanthecoder Jan 2, 2024
4624226
add plunger pos to trial data
ryanthecoder Jan 2, 2024
76fe6ad
fixup some things around datafiles
ryanthecoder Jan 2, 2024
0989421
format/fixes
ryanthecoder Jan 2, 2024
7769cba
format lint
ryanthecoder Jan 26, 2024
5d3fced
minor first pass fixes
ryanthecoder Jan 29, 2024
e7114a6
missed one
ryanthecoder Jan 29, 2024
a12bb33
imports
ryanthecoder Jan 30, 2024
cea129f
change liquid_probe to support synced reading
caila-marashaj Jan 30, 2024
3da58d4
upgrades from running
ryanthecoder Jan 30, 2024
1a28809
make stop condition sync line
caila-marashaj Jan 30, 2024
365aff9
set head move condition to sync
caila-marashaj Jan 30, 2024
4935a14
changes from IRL testing
ryanthecoder Feb 1, 2024
abc9d80
add manual probe to calibrate liquid hieght and add dial indicator to…
ryanthecoder Feb 7, 2024
1cafdde
we got a new dial holder so update our labware def
ryanthecoder Feb 7, 2024
4acbbe7
add way to ignore dial
ryanthecoder Feb 7, 2024
c5fde75
send a message to dump all the pressure data over can after a move
ryanthecoder Feb 7, 2024
44976ed
format lint
ryanthecoder Feb 7, 2024
a5a773a
improve dial reading
ryanthecoder Feb 8, 2024
b4942b3
fixes and upgrades from testing
ryanthecoder Feb 8, 2024
ece8039
some small formating fixes and added a title line to the trials secti…
ryanthecoder Feb 8, 2024
93cf2e6
improve the way we calibrate tip length variation
ryanthecoder Feb 9, 2024
2c3f63f
add the dial slot to the other liquid sense lpc protocols
ryanthecoder Feb 9, 2024
da61494
clean up print outs during script and make simulation pass
ryanthecoder Feb 9, 2024
0ab1d97
upgrade the csv report based on testing feedback
ryanthecoder Feb 12, 2024
9d83f8d
add a post processing to liquid-sense
ryanthecoder Feb 12, 2024
2485663
align up the start z of the of each trial in the final report
ryanthecoder Feb 13, 2024
9daeec6
add a lable colume
ryanthecoder Feb 13, 2024
0757cd7
fixup some post process errors
ryanthecoder Feb 14, 2024
25d92df
remove unneeded print
ryanthecoder Feb 14, 2024
b3a82e8
jog after given number of trials
caila-marashaj Feb 28, 2024
78752c1
fix typos
caila-marashaj Feb 28, 2024
73c35ea
make time alignment optional
caila-marashaj Mar 6, 2024
994406f
fixup things from rebase
ryanthecoder Apr 3, 2024
12476be
Revert "format lint"
ryanthecoder Apr 3, 2024
65ff7df
fix upgrades to PE version
ryanthecoder Apr 4, 2024
a31e813
add a better traceback for caught errors
ryanthecoder Apr 4, 2024
3d29f44
trials_before_jog needs to be an int, and also do a jog on trial 0
ryanthecoder Apr 4, 2024
805f339
need to return after storing the baseline trial
ryanthecoder Apr 4, 2024
5bfe700
format
ryanthecoder Apr 4, 2024
6fce549
remove some print statements
ryanthecoder Apr 4, 2024
a342186
lint tool_sensors.py
ryanthecoder Apr 4, 2024
efa16f4
remove uneeded change to ot3_api
ryanthecoder Apr 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion api/src/opentrons/hardware_control/ot3api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2584,7 +2584,6 @@ async def liquid_probe(
probe=probe if probe else InstrumentProbeType.PRIMARY,
)
end_pos = await self.gantry_position(mount, refresh=True)
await self.move_to(mount, probe_start_pos)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's note this change a little more prominently in the pr description or better yet make it a separate pr please

return end_pos.z

async def capacitive_probe(
Expand Down
8 changes: 8 additions & 0 deletions hardware-testing/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,14 @@ test-examples:
test-scripts:
$(python) -m hardware_testing.scripts.bowtie_ot3 --simulate

.PHONY: test-liquid-sense
test-liquid-sense:
$(python) -m hardware_testing.liquid_sense --simulate --pipette 1000 --channels 1
$(python) -m hardware_testing.liquid_sense --simulate --pipette 50 --channels 1
$(python) -m hardware_testing.liquid_sense --simulate --pipette 1000 --channels 8
$(python) -m hardware_testing.liquid_sense --simulate --pipette 50 --channels 8
$(python) -m hardware_testing.liquid_sense --simulate --pipette 1000 --channels 96

.PHONY: test-integration
test-integration: test-production-qc test-examples test-scripts test-gravimetric

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,11 @@ class GravimetricRecorder:
"""Gravimetric Recorder."""

def __init__(
self, cfg: GravimetricRecorderConfig, scale: Scale, simulate: bool = False
self,
cfg: GravimetricRecorderConfig,
scale: Scale,
simulate: bool = False,
start_graph: bool = True,
) -> None:
"""Gravimetric Recorder."""
self._cfg = cfg
Expand All @@ -294,7 +298,7 @@ def __init__(
self._scale_serial: str = ""
self._scale_max_capacity: float = 0.0
super().__init__()
self.activate()
self.activate(start_graph)

def _start_graph_server_process(self) -> None:
if self.is_simulator:
Expand Down Expand Up @@ -350,9 +354,10 @@ def add_simulation_mass(self, mass: float) -> None:
"""Add simulation mass."""
self._scale.add_simulation_mass(mass)

def activate(self) -> None:
def activate(self, graph: bool = True) -> None:
"""Activate."""
self._start_graph_server_process()
if graph:
self._start_graph_server_process()
# Some Radwag settings cannot be controlled remotely.
# Listed below are the things the must be done using the touchscreen:
# 1) Set profile to USER
Expand Down
57 changes: 57 additions & 0 deletions hardware-testing/hardware_testing/labware/dial_indicator/1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"schemaVersion": 2,
"version": 1,
"namespace": "custom_beta",
"ordering": [["A1"]],
"metadata": {
"displayName": "Mitutoyo Digimatic Indicator",
"displayCategory": "tubeRack",
"displayVolumeUnits": "µL",
"tags": []
},
"dimensions": {
"xDimension": 128,
"yDimension": 86,
"zDimension": 136
},
"parameters": {
"format": "irregular",
"quirks": [],
"isTiprack": false,
"isMagneticModuleCompatible": false,
"loadName": "dial_indicator"
},
"wells": {
"A1": {
"depth": 14,
"totalLiquidVolume": 10,
"shape": "circular",
"diameter": 4,
"x": 60.8,
"y": 41.5,
"z": 135
}
},
"brand": {
"brand": "Mitutoyo",
"brandId": ["ID-S"]
},
"groups": [
{
"brand": {
"brand": "Mitutoyo",
"brandId": ["ID-S"]
},
"metadata": {
"wellBottomShape": "flat",
"displayCategory": "tubeRack"
},
"wells": ["A1"]
}
],
"cornerOffsetFromSlot": {
"x": 0,
"y": 0,
"z": 0
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Liquid Sense."""
Loading
Loading