Microsyringe System
This shows the start page of the UI, the left panel shows the destinations, which are Eppendorfs tubes (15 in total), represented by circles. The squares on the left panel are used for selecting entire row/columns, to make the UI more user-friendly. The right panel shows the sources, which are centrifuge tubes (6 in total).
At the bottom of the UI, there are 6 checkboxes, which are initially disabled. Selecting sources on the right panel will enable these checkboxes, and selecting these checkboxes will allow the user to enter different volumes for each source.
The GIF above shows the UI in action, upon selection, the destination and sources turn pink. The squares will turn black to indicate that an entire column/row has been selected.
After users confirm their source and destination selection, the UI brings them to the volume input page. Here, the user will input their desired volumes from each source, for each Eppendorf.
After the user clicks ‘Generate GCODE’, a success message will be shown, with the path of the file shown to the user.
Micropipette System
The start page of the micropipette system is similar to the microsyringe system. However, as the volume of the pipette is fixed, there are no checkboxes at the bottom panel.
After users confirm their source and destination selection, the UI brings them to the selection page. The checkboxes are by default all selected.
G-code Generation
As the machine needs step-by-step instructions of what to do, even very simple processes require many lines of G-code. For example, just to withdraw liquid from 2 sources into 5 Eppendorfs will already require almost 400 lines of G-code. Thus, the most important part of the GUI is to enable rapid and automatic generation of g-code files. This is done by implementing the sub-tasks in the process using basic programming concepts such as conditional statements and loops, and writing the output into a G-code file, which can subsequently be run by our machine.
This is the python code for the G-code generation for the syringe washing subtask. The comments show the subtask instruction, and the line of code directly after is the implementation. In general, the GUI saves a lot of time and effort on the user’s part, as they can make the machine do what they want without having to write the G-code manually themselves.