A general purpose pump programming system is provided with Fta32 systems incorporating a motor driven dispense pump. The program is entered in a table on the Pump | Syringe tab. You have several choices as to how to start the program. The completion of acquisition of a Movie will stop the program, if the program has not already completed itself. The program allows you to pump at various rates, in both directions, and to have periods of time while the pump rests and does nothing. Generally speaking, the program is used to make oscillating drops, but it can be used for transient, one-time waveforms also. Finally, you may enter values you compute yourself, or use a macro to simulate common waveforms.
Table Rows and Columns
Each row of the table is one "step". The pump will run at a constant rate during this step, but that rate may be zero. Each row or step is given an indexed number, starting at 1, to identify it.
The volume column is the amount to pump, in microliters, during the step. The volume may be zero. Negative volumes aspirate, or pick up. The volume may be a fraction of a microliter, but see the caution below.
The time column is the duration of the step, in seconds. The time value should not be zero.
There are practical limitations to what the pump can do. Please observe the following:
Volume: Each syringe has a minimum dispense volume which is determined by the resolution of the stepper motor in the pump. For a 10cc syringe, this is about 0.1 microliters. Smaller syringes have proportionally better resolution. If you request a volume similar or less than the pump's resolution, the actual volume will vary (it will be some multiple of the resolution) and the actual duration of the step will be significantly less. In this case, you should use a smaller syringe. See FTA200 Pump Resolutionb for a thorough discussion of pump resolution.
Time: Each step's command set to the pump takes about 25 milliseconds. If you program very short durations, you will see this overhead and your actual time will be longer than you requested. Avoid step durations less than 100 milliseconds.
Video Frame Rate: Fast Movie rates, or cameras (such as USB 2) that require significant CPU time, can slow the pump because the pump program, and the commands to the hardware, do not get serviced when they should. If your program runs much longer than expected, slow down the Movie capture rate, or try the program without capturing a Movie and see if the timing is better. You can check your CPU useage by running Windows Task Manager (CTRL-ALT-DEL) and clicking the Performance tab.
Loop and Time Control
The program will always make at least one pass through the steps, starting at the firts and ending at the last. It can make additional passes though portions if the "Loops to do" value is set greater than 1. The pump program has two values you set and two you can observe:
Loops to do: If you want the program to repeat all, or sections, to form an oscillating drop, enter the count here. The check is done at the completion of the last step. A value of 0 or 1 results in exactly one traverse of the loop. The program always ends on the last step, when there are no more loops to do.
Loop starts at step: You can have the loop start its repeating (if "Loops to do" > 1) at any step, including the first. If you select a later step, the first steps form a "preamble" that is executed only once.
Loops done: This is a real time count of the completed loops.
Elapsed time for loop: This is the actual time required to complete the most recent full loop. It will vary slightly each time you go through the loop because Windows timing is not exact. In a well-constructed program, though, it can be within 100 milliseconds of your desired value. You can tweak your step time values to make it come very close overall.
Starting the Program
Checkboxes in the Pump setup frame allow you to manually start the program now (right now!) or when the Movie capture Run starts.
The waveform generator computes step volume and time values for common waveforms. It fills in the pump program table for you.
See also Pump Programming.