Hamilton STAR: 384-head firmware commands

Hi all,

I’m Fynn, currently working at Adaptyv Bio. As a test, we implemented the firmware commands for the CO-RE 384 head on the legacy STARBackend, and thought it might be worth sharing.

We tested initialization, tip pickup and discard, aspirate and dispense, movement and the status queries on one of our STARlets with a 384 head (STP). The wash commands are in there too, but untested, since we don’t have a wash station.

With the v1 Head384 from #1269 not covering tip and liquid handling yet, maybe some of this is useful to you, whether to reuse or just to look at.

Happy to open a PR as well, just let us know whether you’d rather have it on legacy as it is, or ported to the v1 driver. First time contributing to PLR, so any feedback on structure or conventions is also very welcome.

Code is on our fork: compare view

Thanks!

3 Likes

Cool that’s sick!

And welcome to the forum! Adaptyv is on fire recently

@CamilloMoschner is the DM for the star and will decide

Hi @fynnwad,

Welcome! This sounds awesome!

I will have a look.

Have you seen the new v1 STAR integration in PyLabRobot?

It is a massive project and currently only supports basic functionality (not including tip handling - which is coming in a few hours, and no liquid handling).

But the abstraction and modelling system have much improved.

Could you please try out setup with it?

from pylabrobot.hamilton import STAR

star = STAR()

await star.setup()

You are the first person with a 384 head, can you please confirm you can move the head?

If this works on v1 STAR please open a PR directly to it

into plr:main using the star stuff there?

1 Like

Yes, in a few days this will have superseded v0 in every way except lifetime :slight_smile:

1 Like

Thanks both, and thanks for the warm welcome :slight_smile:

Yes, I saw #1269 and read through head.py/head384.py before posting. I’ll try setup on our STARlet with the 384 head later today or tomorrow and report back with what it discovers and whether the head moves.

If that works, I’ll port our commands to v1 and open the PR into plr:main. Also curious to try the simulation side, that looks really useful.

1 Like