HPInc / HP-Digital-Microfluidics

HP Digital Microfluidics Software Platform and Libraries
MIT License
2 stars 0 forks source link

Update Yaminon board layout #248

Closed EvanKirshenbaum closed 5 months ago

EvanKirshenbaum commented 5 months ago

From @cumbiem:

For Yaminon board version V1, can you help me change the following to in Thylacine to match actual: sensor pad will be at col 6, row 4; extraction port is at col 15, row 3. See picture below updated for the new numbering scheme.

image

BTW, V2 of the device is defined as shown below.

Key changes:

  1. Added board dead zones (which you already have), and HZs 1,2,3
  2. Moved extraction port to 6,4
  3. Moved sensor pad to 15,4

image

Migrated from internal repository. Originally created by @EvanKirshenbaum on Feb 16, 2023 at 10:15 AM PST. Closed on Feb 17, 2023 at 4:06 PM PST.
EvanKirshenbaum commented 5 months ago

This issue was referenced by the following commits before migration:

EvanKirshenbaum commented 5 months ago

My questions to him:

No problem. This will be a lot easier when I can get the board description language in (#122). (It'll just be a matter of editing/adding a text file.)

Just to be clear what you're asking, though:

  1. You only want this to apply with Yaminon. Or is it the same for Wombat?
  2. Do you want me to leave the ports where they were for Bilby/Joey?
  3. Would you like an overriding --hole x,y​ command-line argument to make it easier to move them?
  4. I can easily change the drop size and give you a --glass​ or --plastic​ argument. Which would you like to be the default?
  5. You say that this if for Yaminon, but you only have a port on the bottom. Do you want a mirrored one on the top?
    1. If so, is it okay if the top one is #1​? I can force them to be in the other order, but by default, they'll be numbered top down, left to right.
Migrated from internal repository. Originally created by @EvanKirshenbaum on Feb 16, 2023 at 10:16 AM PST.
EvanKirshenbaum commented 5 months ago

My response to his responses:

Just to be clear on how to deal with the holes:

V1 has a single hole at (15,3).
V2 has two holes, #1 at (6,16) and #2 at (6,4).
    Or do you want me to match your picture and put #1 at the bottom, with #2 at the top.
    Or should I try to figure out how to treat them as a single hole and prompt twice (in some order) to add and remove fluid when asked?

While we're on clarifications:

The glass/plastic distinction only applies to V2 and only affects the drop size. 
    That is, the well capacities are the same regardless of lid type.
All V2 wells have the same capacity (15uL), while V1 wells can hold 30uL on the left and 15uL on the right.

Mike:

This all looks right. We can use your convention for numbering. I'll document what you do. However, there is actually a hole physically at 6,10 as well on V2, but only Bilby can access this. I'll send you a clean view of all if that later today. As for yaminon droplet extraction, it probably makes sense to treat as one hole and when prompted to extract the user needs to know to check both!

And yes, your are right. Glass or plastic have the same max volume on V2 or 15ul for both left and right.

Me:

As for yaminon droplet extraction, it probably makes sense to treat as one hole and when prompted to extract the user needs to know to check both! 

I guess that works as long as your expectations is that the user is only going to expect the display to accurately reflect the bottom of the board and that the top will be an implicit mirror and will never have any modeled fluid in it (wells or pads).

If this is the case, then you are correct that we can only talk about using the bottom holes and expect the user to know that they need to mirror the requested actions on the top holes (and wells, too). It will be important to stress to them that when they are prompted to add or remove liquid and then hit return, they have to do it to both parts before they hit return, because as soon as they do, the electrodes will start changing.

If we actually want to model both halves, either Thylacine can prompt twice (assuming that you're going to be dealing with the same liquids in the same quantities on both) or the programmer needs to refer to both. The former probably isn't too hard, and the latter would allow more complex protocols, but they're probably trickier to code than your users are willing to deal with. I can give you a command-line argument to say whether you're using the bottom (or, I guess, top) only, whether they're doing the same thing, or whether they're decoupled, but I might not get to that immediately.

Migrated from internal repository. Originally created by @EvanKirshenbaum on Feb 17, 2023 at 2:48 PM PST.
EvanKirshenbaum commented 5 months ago

Basic board layout changed for both V1 and V2:

Also, based on Mike's slides, you can now use heating zone as a synonym for heater.

Still not done:

  1. Adding --holes parameter for dynamic hole placement.
  2. Mirroring pipetting actions (#251).
    Migrated from internal repository. Originally created by @EvanKirshenbaum on Feb 17, 2023 at 3:15 PM PST.
EvanKirshenbaum commented 5 months ago

--holes and --[no-]default-holes are now supported.

Pipettor mirroring (#251) is still not there, but I'm going to close this one.

Migrated from internal repository. Originally created by @EvanKirshenbaum on Feb 17, 2023 at 4:06 PM PST.