Fluid Transfer
It was at Amont à Aussois that we had met that night to sleep by the fireside.
Credits: Estelle Vincent
Credits: Estelle Vincent
How to transfer fluid ?
As the kit performs a biological analysis, at some point, fluid transfer will be needed to move a specific reagent to another compartment. That is why we designed a system that delivers a precise quantity of reagents at a given time. While observing syringe pumps in a lab specialised in microfluidics, we had an idea: recreating the principle used in these syringe pumps, in a 3D printed structure, controlled by an Arduino Card. Reaching the same accuracy than the existing devices is essential even though it might be challenging.
Figure 1: Exploded view of the syringe pump
Building the 3D structure
Hand-made 3D syringe pump is well documented on communitary makers websites as instructables [1]. This work has been a great basis to help us come up with our own syringe pump. They were designed in two parts: the pump body which supports the body of the syringe and the mobile part which carries the piston. These 2 parts are shown on the figure below.
Figure 2: Pump body and piston support
As small volumes need to be transferred from one compartment to another, syringes have to be narrow enough so small volumes can be associated with a significant piston movement. Once printed, holes and shell are polished to get rid of roughness so as to avoid friction. In fact, friction has to be avoided as much possible because it makes the translation of the mobile part into the pump body harder. Ideally, the device should be the smallest possible, this is why high torque step motor was not used since it takes too much space and power to compensate friction. For the same reason, oil impregnated brass bearing and iron shafts were used to guide the mobile parts as smoothly as possible [1]. Step motors were used since they don’t take much space, but the rotation of the step motor has to be converted into a linear motion. This is done by a leadscrew with a Acme thread, like the one shown on the figure below.
Figure 3: Lead-screw with a Acme thread
This type of thread allows a faster translation of the mobile part, for small and high accuracy step of the motor.
Control the step motor
More precisely, it is a 4 wires step motor 17HDC1220, powered in 12V that was used. This type of motor being very common, it is pretty convenient to use since it’s well documented and easy to find. It is easily controlled by a step motor driver A4988 and an Arduino card. The schematic of the circuit using the Arduino Card, the driver and the motor is the following.
Figure 4: Schematic of the step motor controlled by the Arduino Card
Step motor is a particular electric motor that divides a full rotation of its axis into a certain number of steps. This rotation is induced by the alignment of a permanent magnet in a magnetic field. The step motor 17HDC1220 is bipolar, which means that the magnetic field is generated by two coils that are alternatively powered, so the magnet smoothly rotates to follow the magnetic field orientation. This is illustrated below.
In theory, this kind of control would be possible using only the Arduino card, but since the driver makes the use of such stepper motor much easier, it was decided to keep both. As shown in the schematic of the circuit above, only two outputs of the Arduino card are needed [2]. The first one, named DIR, is a binary output (True or False) that switches the direction of the motor, clockwise or counterclockwise. The second one, called STEP, generates a Pulse Width Modulation (PWM). A PWM combines a square signal at a given frequency 480Hz and a duty cycle chosen by the user. A typical PWM is shown on the figure below.
Figure 5: Graph representing a PWM signal
As explained before, each step of the motor is induced by a rising edge at the input signal. It means that modifying the PWM’s duty cycle does not change the operating speed of the step motor. Given that, the control of the rotation is done by generating the PWM for a certain time, which is associated to a precise linear translation thanks to the transmission system.
Using an Arduino card also enables us to control the different fluid transfers through the smartphone. Thus, the application sends the right command at a given time to activate the pump.
Results
We built a simplified syringe pump made of basic material, which can be used to deliver very small amounts of reagents in a tank. This method allows each volume of reagents to be mixed in the tank at the right moment.
These syringe pumps have to be integrated in our SnapLab kit so the analysis can be done everywhere, even in remote places. The idea is to prepare the kit before it is used for an analysis. An additional shell was 3D printed so we could screw our pumps. This shell part is embedded on the top of the detection part. The step motors are then connected to both the Arduino card and the power supply used for the whole kit.
Figure 6: Modelling of the syringe pumps inserted into SnapLab kit
This method still comes with a biological insulation issue. The challenge is to associate two different parts without contaminating the compartments that are not supposed to be in contact with any biological material.
References
[1] http://www.instructables.com/id/3D-Printed-Syringe-Pump-Rack/
[2] Scheme of the driver A4988's circuit https://www.youtube.com/watch?v=-q9tl-hhHgY