The DOT rebuild

The current production method for the PAD cards is to apply the reagents to each individual card by hand. The regents are placed in a microwell plate with 96 wells at a pitch of 9mm and a hand stencil is used to deposit the chemicals. This process is repeated twice with the different reagents as the pitch of the PAD cards is 4.5mm, i.e. designed for a 384 microwell plate. For the Neural Network project we would like 5-10,000 cards to train with so we are looking at easier (and more precise) production methods

Raw Materials

Prof. Frank Collins donated a Biomek FX robotic liquid dispenser (DOT) to Prof. Lieberman, however is was found to be too inaccurate for the intended purpose. The accuracy problem is exacerbated by the variation in position of the deposited wax layer on the PAD cards, the robot currently has no vision to correct for this. This page describes the Biomek FX rebuild and conversion.

Biomek FX (DOT)

Biomek FX Liquid Dispenser (DOT)

Rebuild Philosophy

Inspection of the robot showed that the control system was based on servo motors with linear encoders. Since the complete system, including the PC software, was proprietary with no access to source code we could not guarantee success for the project by simple modification. We decided to remove the control system entirely and replace it with a stepper motor system and produce our own user software. Fortunately, the explosion of the home 'maker movement' has led to some very sophisticated CNC G-code software being available which could be adapted to our needs without an extensive development effort.

Servo motors, Z axis.

Areas in which we needed to make engineering decisions

  • The drive system, motor types
  • The control system, microprocessor and firmware
  • The vision system, type of camera and interface
  • The 'User software', language and platform
  • The platform, to hold the PAD printed sheets

The drive system

The majority of CNC systems use stepper motors in an open feedback loop. This is cost effective and the positions are guaranteed by the discreet step nature of the motors. The disadvantage comes from the  open loop design as any missed steps will not be accounted for. As long as the system has sufficient torque this should not be a problem.

Initial choice was to use NEMA 17 motors, with 0.5Nm torque, as the largest we believed would fit into the robot, for all axes. Initial tests indicated the power was marginal for the X axis but, with the room available, we were able to substitute a 2Nm NEMA 23 motor. Once the rebuild had begin it became clear that the NEMA 17 motors would not fit into the Z axis and dispensing head space. For the Z and A (liquid dispensing) we chose NEMA 14 motors with torque of 0.4Nm. This worked well for the A axis but the mass of the head meant that the NEMA 14 could not lift the Z axis. Since space was at a premium we chose a NEMA 14 with a 5.18:1 planetary gearbox, giving 2Nm of torque. Finally, tests on the Y axis showed significant overrun due to the inertia. This was traced back to the controller reducing the holding current after the move, but an easy fix was to replace the NEMA 17 with a NEMA 17/5.18:1 gearbox, again with 2Nm holding torque.

Images of the Y axis motor (left), X axis (center), A axis (right).

To install the alternative drive system various parts needed to be either modified or machined from scratch. A CNC mill and lathe were available and the parts can be seen in the image below.

Machined and modified parts for the rebuild.

The control system

There are two possibilities for the control system, PC based or a dedicated microcontroller. The disadvantage of the PC based system is that it must have a Real Time kernel so that the timing is accurate. This limits it to specific versions of Linux which are not particularly up to date and do not get security patches very often. The dedicated microcontroller is an attractive option but most open source examples are based on the ATMEGA series of microprocessors. These have limited power which, in turn, limits the maximum pulse rate for the motors to around 10-20k. Recent activity had seen the popular 'TinyG" code ported to the Arduino Due, with a Cortex M3 ARM chip that would allow frequencies up to 200k. We chose this project, G2Core, as it is still in active development and Open Source on GitHub.

Control system with Arduino Due lower LHS, stepper controllers are at the top and the relays are in the center.

The vision system

The vision system will use the Python/OpenCV software previously developed to detect the fiducials. The requirements are that it should be USB and should have manual focus in the range of 50mm. We chose the Leopard Imaging model LI-OV5640-USB-72. The liquid dispensing head has two protection brackets that we will attach the camera to. In addition we will mount a cross-hair laser module for calibration and measurement purposes.

Vision system showing laser lower, camera upper in LHS and center images and installed on head, RHS image.

The 'User software'

The controlling software is based on the Python SaltPAD OpenCV software but using QT5 as the GUI.

The platform

The Biomek FX uses an array of ALP modules, each designed to hold a microwell plate. Since we need to deposit on Legal Letter size sheets we will replace the first three rows of ALP with a 13x43 inch Aluminum plate mounted over the ALP positions. This plate will be fitted with an Acrylic sheet to protect the Aluminum and allow a vacuum hold down grid to be machined into its surface.

The Build

The DOT rebuild consisted of removing the servo motors and control system. The high power 36 volt power supply was retained, the stepper motor drivers having an upper limit of 40 volts. The pneumatics were also retained (consisting of a regulator and pressure doubler) as they are required for the nozzle loading process. Both pneumatics and power supply can be seen in the RHS compartment in the image below.

DOT stripped ready for the installation of the new control system.

The new control system was installed in the LHS compartment after the new motors were installed. We had to add an additional 'drag chain' to convey the motor/sensor head wiring to the Y axis. All of the original optical limit switches were used with the new control system, and additionally provide the homing/calibration function. The G2core code was modified to provide additional inputs for sensors and outputs for relay control.

Rebuild showing new control system and platform.

One of the most challenging aspects of the rebuild was the nozzle loading method that the robot employed. This consisted of a microprocessor/pneumatic scheme that latched onto the dispensing head and forced the nozzles onto the head receptors. Our approach was to remove the microprocessor control and take the sensor/solenoid wiring back the Arduino Due. The solenoids can then be controlled by the relay board and the optical sensors read directly. This proved to be successful once the pneumatic regulation system was understood, this is controlled by a pair of solenoid valves.

The pneumatic nozzle loader after rewiring.

DOT shows signs of life

After initial calibration DOT was able to pickup and drop nozzles.

First liquid deposition

The A-axis operates the 96 nozzle head to deposit liquid and dump the nozzles. This appears to work, the only current issue is that the sheet of PADs was not flat and acted like blotting paper when the nozzles came into contact with it. Our expected clearance is 0.5mm and we plan to machine a vacuum hold down into the acrylic part of the table to solve the problem.

Depositing liquid (vegetable dye) onto sheets of PAD cards.