LabBot3D-Pi - 50µl pipette loading, well fill, ejection example

    This simple example shows how to control an 8 channel pipette loading process that can be used for microwell plate liquid handling, using SBS standard 96 well plates. For this example, there are 8 plates, 1 pipette tip box and one reagent reservoir. The XY and Z motion are run using a 3D printer microcontroller (Azteeg X5 mini) running Smoothieware firmware. The software interface is based on HTTP POST/GET methods and the webserver that controls the robot is a RaspberryPi3.

The scheduler is a python script that processes submitted modified G-code using HTTP (POST/GET methods). Since this is a browser based interface, it is very easy to modify the user interface depending on the need. Unlike a conventional 3D printer microcontroller where the entire gcode file is submitted, the time it takes to run each line is calculated an submitted to the microcontroller after the preceding process is completed. This makes it possible to synchronize with other microcontrollers.

Attached is the macro used for this example for loading 50µl per well. The average measured volume for all 8 wells was 51.875µl, the steps per mm for this 8mm lead screw is 327 (smoothieware configuration file, extruder.hotend.steps_per_mm).

Shown is the technique where a time delay can be introduced by overwriting the calculated time to run per line (using the python script), this is done by using the "_(number)" syntax.