Affordable Custom Automated 25-Microplate Transfer System
By Mike Fussell, Alex Canan
Published on Feb. 25, 2025

The benefits of lab automation are well-established: higher throughput, increased walk-away time, and greater accuracy, consistency, and reproducibility. While these advantages are often realized within individual sample preparation stations, the manual transfer of samples between stations limits the time-saving benefits of high-speed equipment and increases the risk of human error. Comprehensive, off-the-shelf automation solutions exist, but they can be expensive and often require that all lab equipment be sourced from a single vendor, creating integration challenges for labs with diverse equipment.
This article explores an alternative approach, detailing the development of an automated 25-microplate loading system for our Nucleus® automated microscope. We demonstrate how a combination of off-the-shelf and custom hardware, along with freely available software, can achieve effective and surprisingly practical automation. This modular, cost-effective solution, built with plug-and-play motion devices and readily achievable customization, can also be easily expanded to incorporate additional sample preparation stations, such as labeling, barcode scanning, centrifugation, and incubation.
Designing a Cost-Effective and Customizable Solution
Our goal was to automate a protocol where 25 pre-prepared 96-well plates containing cultured cells and covered by lids had undergone experimental treatment and incubation. These plates needed to be imaged using fluorescence microscopy and then returned to an incubator. The system needed to be both compact and cost effective.
Building a functional system required both the hardware for plate movement and the software for controlling these movements. This article focuses on the design and implementation of the automated loading system itself. For more information on automating microscopy and sample preparation, Zaber offers numerous resources on this topic. Preparing and imaging the samples is beyond the scope of this article.
Plate Transfer Workflow
To automatically transfer and scan 25 microplates with no human intervention, we designed a system incorporating two plate stackers and 2 plate transfer subsystems.
Motion Hardware & Control Software
To save time and effort, we chose linear and vertical positioning devices from Zaber’s plug-and-play X-series for their built-in motors, encoders, and controllers. These modular devices share a common API, control and configuration software, and offer multi-language support. We chose Python as the scripting language for its readability. Zaber’s Python API is thoroughly documented and is supported by extensive documentation and example/sample code for rapid device programming.
Zaber's open approach to integration stands in contrast to many life science instrument manufacturers who restrict integration with third-party hardware and software. This open approach allowed us to easily integrate a Mecademic Meca500 6-axis robot arm for loading and unloading plates from the microscope. The arm's six degrees of freedom enable it to handle a variety of consumables and vessels within diverse equipment, including liquid handlers, plate stackers, and plate readers.
The high repeatability of Zaber’s devices means that they can be trusted to always arrive within a few μm of the same position every time. This greatly simplifies the control of the system as external feedback from cameras or other sensors isn’t required.

- A pair of custom plate stackers hold new plates to be imaged and store plates once imaging is complete. The input stacker dispenses new plates and their lids which are moved to position on the way to the microscope for scanning. After the plate is scanned, this subsystem accepts the imaged plate and adds it into the output stacker.
- To raise and lower plates in and out of the plate stacker, the X-VSR vertical stage was selected for its high thrust to easily lift a full stack of 25 plates.
- To position the vertical stage, the X-LSQ-E linear stage was selected for its precision, low cost, and open unobstructed platform.
- The X-VSR mounts easily to the carriage of Zaber linear stages as they share a common mounting hole pattern.
- The plate holder on the vertical stage was 3D printed. STL files are available here.
- List price for Zaber standard products: $7,765.
- Estimated price for custom plate stackers (as shown): $15,000

- To pick up the plates and load them on and off the microscope, we chose the Meca500 arm for its 6 degrees of freedom and Python API to enable seamless, coordinated motion scripting with the Zaber devices. To extend the range of the arm, the parallel drive configuration Zaber X-LRQ-E linear stage was selected because its compact size fit the space constraints of a typical bench-top system.
- The gripper fingers for the Meca500 arm were 3D printed. STEP files are available here.
- List price for Zaber standard products: $5,063
- Contact Mecademic for Meca500 pricing: Contact form.
Custom Plate Stackers
Finding affordable, stand-alone plate stackers proved surprisingly difficult. While integrated plate stackers exist within larger systems, they are typically not available for individual purchase. To overcome this challenge, we collaborated with Zaber's custom engineering team.
The team designed a plate stacker system (Fig. 3) consisting of two towers to hold 25 plates each and a base for dispensing and receiving plates. Plates are loaded manually from the top. The towers containing the plates are removable making it easy to transfer all 25 plates in and out of an incubator.
The mechanism in the base for dispensing and receiving plates is made up of machined holders, actuators, and an X-SCA4 process controller. As the controller uses the same control protocol and Zaber Motion Library APIs as the other Zaber devices, integration was straightforward. See Pro-Tips section below on managing the plate lids.

Figure 3: Stacks of plates can be loaded and unloaded in seconds by inserting or removing the towers. The controller and actuators which operate the plate dispensing and receiving mechanisms are integrated into the base.
Control Software
To automate the plate handling sequence we used the Zaber Motion Library API for the Python programming language. We selected Python as the code is easy for humans to read and understand, making it a great language for people who aren’t necessarily professional programmers.
The Zaber Motion Library API is comprehensively documented and backed up by a library of useful example code and includes an easy to follow getting started guide. To control the Mecademic arm, we used their Python API, enabling seamless coordination of Zaber and Mecademic devices in the same code. Threading was implemented to speed up the system by enabling one plate to be read on the microscope while the next one is picked up from the plate stacker. The Python code for this demo system is available here.
Pro-Tips
Slowing down the vertical stage during the approach sequence to the tower gives the best performance. Moving too fast during the exchange may cause the bottom plate or lid to fall. Speeds between 5 to 10 mm/s for these moves are recommended. For all other moves we moved at 40+ mm/s.
There can be small, but meaningful, dimensional differences between microplates from different suppliers. The plates and their lids can have different thicknesses and shapes (most noticeably in the lips that wrap around the bottom of the plates). We recommend testing the loading sequence positions to ensure the plates can be properly loaded and unloaded.
# move Z-axis slowly if there are plates loaded in the tower.
if plate_type == 'first' and tower_number == 2:
Z_axis.move_absolute(first_position_approach, MM)
else:
Z_axis.move_absolute(first_position_approach, MM)
Z_axis.move_absolute(first_position, MM, True, v_set.slow, MMS)
# when Z-axis is at the exchange point (1st position)
# (1) retract actuators
retract_stacker_actuators(tower_number)
# (2) move Z-axis to a second position
# (2a) loading --> 2nd pos = position where actuators can grab lid off of plate
# (2b) unloading --> 2nd pos = position where actuators can grab plate with lid
Z_axis.move_absolute(second_position, MM, True, v_set.slow, MMS)
extend_stacker_actuators(tower_number)
Z_axis.move_absolute(second_position_approach, MM, True, v_set.slow, MMS)
# (3) fully retract Z-axis
Z_axis.move_absolute(v.bottom, MM)
Selecting the correct gripping method and orientation for your plates will depend on how the plates are loaded and removed from your various systems. For example, the XY stage on the Nucleus MVR microscope has a spring load system for storing well plates and often multiwell plate grippers grip from the side. This is why we chose to grip from above.
Outcome & Conclusion
This project demonstrates that building a system for automated microplate dispensing, transport, loading, and storage is more accessible than many might believe. A wide range of plug-and-play devices with integrated controllers, supported by freely available software tools, enables the rapid development of highly reliable systems. Automating the plate transfer step between prep stations frees researchers to focus on their experiments, not just routine sample handling. While this example addresses a specific scenario, the same hardware and software framework can be adapted to a variety of lab automation use cases. The system's flexibility allows it to evolve alongside changing experimental needs.