Tip Efficient Worklists

Hello lab automation forums!

I’m trying to use my tecan for variable serial dilutions.

I want to put in logic so the following happens:
Within a deepwell:

  • Pipette 30 uL from well A1 to well A2
  • Pipette 30 uL from well A2 to well A3
  • Pipette 30 uL from well A3 to well A4

Using the same tip for all the above. I want to do this in a worklist that’s generated from a csv, so these wells could potentially change depending on user input

Does anyone have any suggestions on how to do this? When converting a csv to gwl there’s always a tip change between each transfer

you are correct - the csv import function to create a gwl initiates a tip change after every dispense;
i would create an application to write the gwl file itself,
this way, you control every aspirate, dispense, multiples of the above and then introduce a W; when you’re ready to drop tips

if you already have a csv, you could import the volumes into an array; then use std commands for aspirate, dispense & control the volumes by passing the array values for each tip/well

happy to discuss more details on code examples, custom worklist generators

1 Like

Hey @Optimize , thanks for the response

Do you have an example of this by any chance? I haven’t had much luck using arrays in FluentControl myself, let alone using them for distribution. If I could do this I’d likely say goodbye to worklists in general

I’ve seen tools online for building custom gwls, such as robotools, but my experience with it is limited. If I could avoid it that’d be awesome

Writing GWL files is easiest with just a simple Excel file. You can either have a fancy macro in VBA or just concatenate cells to get the line that you need. From there you can paste the concatenated column into a new notepad file and save it as a GWL. That’s the quick and dirty solution, long term you might find that writing some VBA to write your GWL is beneficial.

The Tecan help files describe all the elements of a GWL file pretty well, but a good place to start is to open an existing (and working) GWL file in Notepad and then mirror that in your Excel file.

I’ve used arrays in Evoware for volumes, but I think you may find that they are good for volumes but not so good for specifying the destination well. You mentioned that the wells could change depending on user input, that could be problematic and using a GWL is definitely easier but I wouldn’t necessarily say that it’s better.


Indeed thanks for your response, I really am not sure how to specify within a gwl to not drop a tip and just re-use it however, do you have an example you could give me?


I don’t have an example right in front of me, but you drop tips using a “W;” line. There’s some “magic” around having multiple of 8 if I recall correctly but it’s been awhile and I’d have to just try it and see what happens on the actual instrument. I’m sure others can chime in with a working example.

But basically you can aspirate/dispense multiple times as long as you don’t have a W; line.




the “format” of worklist is below:
A;RackLabel;RackID;RackType;Position;TubeID;Volume;LiquidClass;Tip Type ;TipMask;ForcedRackType

basically, group each tip commands and initiate a tip replacement with a W; command e.g.


i’ve written worklists where you can aspirate/dispense 7, 8, 9+ times using the same tip (very application specific), with unique liquid classes for each step (to ensure accuracy/precision/droplet handling etc)

extend worklists to force specific tips for specific rows/columns in a plate

the documentation describes the file format pretty well - usability of worklists expands significantly depending on your use case

1 Like

I build all of my dynamic workflows around arrays. They’re super versatile and allow for more dynamic storage of data without declaring 15 variables of the same naming construction + I.

I’m kind of curious here but what are you trying to keep dynamic about it? Transfer volume? Number of dispenses? Starting well? Also have you tried their FCA Smart commands? You can control tip reuse and set literally all of the aforementioned.

Hey there Luis

I have variable source wells (from a single labware), variable volume transfers, variable destination wells. Currently I use a worklist created in gsheets and then have it convert to a gwl, but like I said this is pretty tip inefficient.

I haven’t found any smart FCA commands that can accomplish all the above simultaneously based upon user input, but maybe I’m looking in the wrong place?

maybe try the “transfer individual volumes” command
pass in a “csv” file with src well, dest well & volume
command lets you define tip type, pipette strategy

Source well index;Target well index;Volume [ul]

Could you post a sample of your worklist and we can see if it’ll accomplish what you are asking for?

As @Optimize said, Transfer Individual Volumes may work for you.

Tough to say without actually sharing what you want to do.