Salk Lyumkis Laboratory Liquid Transfer Operation Handler (SLLOTH) Rev1

About
The SLLLOTH is a custom built liquid handler developed by Evan Lum (myself) at the Lyumkis Lab, LOG-L, (https://lyumkis.salk.edu/) at the Salk Institute for Biological Studies (https://salk.edu/). It aims to undercut costs significantly compared to commercial options, and beat most open source DIY projects on cost as well. The machine is intended to automatically complete laborious and repetitive laboratory processes by running simple, user-written scripts.
SLLLOTH took loose inspiration from the following projects:
- OTTO Liquid Handler (https://openliquidhandler.com/)
- Michele Wiseman’s Liquid Handler (https://mswiseman.github.io/gentlabottobot/)
- OpenTrons Liquid Handlers (https://opentrons.com/)
SLLLOTH’s main design principle is to leverage existing technology, adapting it to the needs of a biology lab, instead of developing expensive custom hardware.
Significant Hardware Components
SLLLOTH has many custom and off-the-shelf parts in use throughout the design, but some of the most significant physical systems are listed below.
Creality Ender 5 Plus Frame
One of the driving design choices was to use an off-the-shelf 3D printer for the XYZ motion system for SLLLOTH. Older V-Slot driven designs, like the Ender 5 Plus, offer a more open (both literally and figuratively) platform to develop and modify compared to modern enclosed coreXY machines. Ultimately, the Ender 5 Plus in particular was chosen due to the great community support around Creality machines, its use of a bed for the Z axis, rather than the Y, its very large usable build plate area, and low cost. As these machines aren’t sold in a lot of retail channels anymore, this one was picked up secondhand from leftover new stock of these machines.
SKR Pro 1.2 w/ Marlin
For control, the machine uses an SKR 1.2 Pro board running a customized version of Marlin 2.0. The choice of board came down to the ease of modification and expansion on the SKR Pro lineup, as they allow for countless motors, sensors, and other expansion parts. The board runs Marlin 2.0, as it’s fast, easy to customize, and very widespread. Marlin allows SLLLOTH to read GCode as a 3D printer would to execute movements and commands.
Toolhead

The toolhead uses a NEMA-11 stepper motor based linear actuator to interface with standard handheld lab pipettes. Handheld pipettes offer the advantages that they do not need to be purchases specifically for SLLLOTH, they’re already calibrated to be precise, and lab members are very closely familiar with them.
Eppendorf Research Plus pipettes of various volumes can be used on SLLLOTH. They are interchangeable by loosening the clamp holding them in and replacing them.
The toolhead motor is attached to E0, replacing the extruder on the machine. It’s set to allow cold extrusion in firmware to accommodate this wiring specification.
Ejector
To eject pipette tips another linear actuator is mounted on the frame. It has the capability of pressing the “eject” button on the pipettes, dropping pipette tips into a waste collection container.
The ejector is physically wired to E1, but configured to use the “A” axis in firmware. This configuration simplifies GCode generation.
Software
SLLLOTH takes in GCode commands, and as such needs a way to write them cleanly. To achieve this, a Python API was written which can convert simple python scripts into GCode files for Marlin to read and execute. The API allows users to configure “equipment” items such as plates, test tubes, beakers, pipette-tip-boxes, and among other things, using custom .json config files. Users can then load the configurations they need as objects in a Python script. On runtime, the Python scripts will communicate with the API to turn commands like “dispense 10ul at well (0,0) at plate1”:
generator.add_command(plate1.dispense_well, (0, 0), 10.0))
into long strings of GCode commands. With this system users can leverage pythons loops and conditionals to make simple yet powerful scripts.
Motion
SLLLOTH positions itself using limit switches for axes. A notable change from standard homing processes is that the Z zero height is set with the pipette tip relative to the vertically moving bed, rather than with the bed relative to the frame. To achieve this, the Z limit switch is moved to the bed, and the bed raises its limit switch into the pipette tip to home.
Furthermore, for equipment safety, the API generally hides “unsafe” movements from the user. Although they are accessible for advanced users, limiting unsafe movements decreases the possibility of scripting bugs breaking the machine significantly. “safe” movements are ones where all horizontal motion only occurs above all of the equipment set up on the plate, preventing the pipette tip from knocking over equipment.
Temperature Control
Temperature control for heating can be achieved with the use of the heated bed on the Ender 5 Plus. When the machine is in a room temperature space it can heat up equipment on its heated plate effectively.
Cooling is not built into the machine, however it is designed to operate effectively in cold temperratures, and it is currently situated in 5°C the cold room at LOG-L.
GitHub Repositories
Github Repositories for different aspects of the project are available here:
- CAD and parts files: https://github.com/EvanLum/SLLLOTH-CAD-Models
- GCode generator API: https://github.com/EvanLum/SLLLOTH-GCode-Generator
- Custom Marlin configuration: https://github.com/EvanLum/SLLLOTH-Marlin
Enclosure
SLLLOTH comes with an enclosure. It’s a simple box made of transparent 5mm thick acrylic with a door on the front connected with some hinges. Anyone trying to replicate this build will likely be able to come up with a different custom solution to make an enclosure. For LOG-L this option made sense to fit underneath shelving in the lab’s cold room.
Acknowledgements
I’d like to acknowledge all members of the Lyumkis Lab for assisting with the development of SLLLOTH. Their input was invaluable for understanding the needs of a lab setting, and for offering suggestions and feedback through the development process. Equipment from the University of California San Diego Makerspace was used to manufacture parts. Funding for this project was graciously provided by LOG-L.