Skip to content

Conversation

@nedru004
Copy link
Contributor

@nedru004 nedru004 commented Dec 3, 2025

I would like to add the opentrons deep well plate aluminum block. I found a bunch of opentrons blocks added but not this one. Plus it is confusing how it pulls the data from opentrons repository instead of hardcoding into pylabrobot. Is this ok to add to the opentrons module.py file instead of figuring out how it pulls data from a website?

add aluminum block holder
updated dimensions from opentrons data
@rickwierenga
Copy link
Member

why not load the definition from the OT library? this way we are not responsible for maintaining these definitions. (for OT plates, unfortunately they are not all correct and/or miss some information, but for their own labware I think we should trust them...)

there is a _download_ot_resource_file helper function. you will need to write an OT-json -> PlateAdapter / PlateHolder convertor

nedru004 and others added 2 commits December 3, 2025 12:46
Load module from opentrons repository
@rickwierenga
Copy link
Member

@nedru004 just confirming this definition works as well as the hardcoded one?

rickwierenga and others added 2 commits December 3, 2025 17:08
/tmp doesnt exist on windows computers. Add C:/Windows/Temp
@nedru004
Copy link
Contributor Author

nedru004 commented Dec 4, 2025

Yes, but I still needed to hardcode the z coordinate for the plate. I couldn't find where that was located in the json file. Here is a screenshot. I used cornerOffsetFromSlot for the plate location. Not sure how opentrons calculates z position. Any ideas? or should I just hardcode it?
image
I also tested this on a windows machine and the json downloads to /tmp folder, but that doesnt exist on Windows. I added a change for that.

Finally, when loading the opentrons temp module plus the adapter, it is too high and the tips will run into the deep well plate. It outputs a warning when loading the plate. I assume there is a travel height adjustment?

formatting
@rickwierenga
Copy link
Member

I still needed to hardcode the z coordinate for the plate

unfortunately the OT definitions don't have enough information for complete automation / or to work on different robotic systems

I used cornerOffsetFromSlot for the plate location.

If it works, it works. the cornerOffsetFromSlot should be the location between the slot and the resource, but I guess it's repurposed for the plate location in this case. (they do that kind of stuff, so if that's how it's done then it's good)

I also tested this on a windows machine and the json downloads to /tmp folder, but that doesnt exist on Windows. I added a change for that.

Thanks!!

I assume there is a travel height adjustment?

Yes, ot2_backend.traversal_height = 120

https://docs.pylabrobot.org/user_guide/00_liquid-handling/opentrons-ot2/hello-world.html

@nedru004
Copy link
Contributor Author

nedru004 commented Dec 4, 2025

Finally, when loading the opentrons temp module plus the adapter, it is too high and the tips will run into the deep well plate. It outputs a warning when loading the plate. I assume there is a travel height adjustment?

I meant to say too high on the hamilton. I assume that it is fine for the opentrons.
Is this the backend command? STAR.set_minimum_channel_traversal_height()

@rickwierenga
Copy link
Member

STAR.set_minimum_channel_traversal_height()

yes you got it

set_minimum_channel_traversal_height and set_minimum_iswap_traversal_height

@rickwierenga rickwierenga merged commit 9b25f9e into PyLabRobot:main Dec 8, 2025
9 checks passed
@rickwierenga
Copy link
Member

apologies for the delay - thanks for adding this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants