Graphical abstract
Keywords: Dual syringe pump, Push–pull, Continuous flow, 3D-printing
Abstract
Syringe pumps are very useful tools to ensure a constant and pulsation-free flow rate, however usability is limited to batch processes. This article shows an open-source method for manufacturing a push pull syringe pump, valid for continuous processes, easy to build, low-cost and programmable.
The push–pull syringe pump (PPSP) is driven by an Arduino nano ATmega328P which controls a NEMA 17 in microstepping via the A4988 stepper driver. The Push-Pull Syringe Pump setup is configurable by means of a digital encoder and an oled screen programmed using C ++. A PCB was designed and built to facilitate the assembly of the device. The continuous flow is guaranteed by four non-return valves and a dampener, which has been sized and optimized for use on this device. Finally, tests were carried out to evaluate the flow rates and the linearity of the flow. The device is achievable with a cost of less than 100 €.
Specifications table.
| Hardware name | Open-Source Push-Pull Syringe Pump (PPSP) |
| Subject area |
|
| Hardware type |
|
| Open-source license | Creative Commons Attribution-Share Alike 4.0 International License (CC-BY-NC-SA 4.0) |
| Cost of hardware | 70 € |
| Source file repository | https://doi.org/10.17632/75w37bsh8d.1 |
Hardware in context
Syringe pumps are devices in use in all those processes in which it is necessary to offer maximum precision for the delivery of known volumes of liquids, examples are given in [1], [2]. The simple principle of operation and the easiness of use compared with the high costs that these devices have on the market, justify the proliferation of Open-Source projects. Starting from basic models that provide for the movement of a single syringe [3], [4], [5], [6], [7], more complex models have been proposed, in which the movement of two independent syringes is carried out [8], [9]. Other configurations have been described for controlling several units simultaneously [10]. Open-source projects deals also with syringe pump with specific purposes, such as the touch screen syringe pump proposed in [11] useful to replace manual lysis for generating in vitro translation extracts, or the Poseidon Syringe pump[12] used in conjunction with a microscope. Another example is given from Darling et al. [13] in which a syringe pump able to host syringe of different size, has been replaced at the extruder of a 3D biomaterial-printer. With the advance of technological progress and the introduction of open-source microcontrollers such as Arduino, controlling sensors and actuators is nowadays less difficult. Furthermore, with the spread of 3D printing, prototyping no longer suffers from the long waiting times necessary for manufacturers.
Although the syringe pumps described in the literature could be used, in duplicate, to operate in continuous mode, it is useful to note that this approach is not trivial and not economical advantageous. Apart from the use of “one-way kits” (consisting of non-return valves i.e. https://www.zabdiresources.com/p-dkit-dual-pump-plumbing-kit) and a flow linearization system, it is necessary a synchronization between the two individual syringe pumps, as well as it is necessary to completely duplicate all the syringe pump pieces (i.e. molded parts, motors, drivers).
The development of open-source continuous syringe pumps could facilitate the use of processes that require maximum linearity of the flows, such as microfluidic and microfluidic-like processes for the formation of pharmaceutical nanocarriers [14], [15], [16]. In fact, the elimination of any fluctuation could be a key element for the investigation of how much the relationship between the flows involved affects quality and size of the nanoparticles.
Therefore, inspired by the publications offered by the network, having in mind the need to guarantee maximum linearity in continuous flow application, the aim of this project was to design, build and test a low-cost push–pull syringe pump for continuous flow applications. By using 4 non-return valves, a continuous flow was guaranteed and with the use of a dampener downstream of the two outlets, the oscillation was dampened, making the flow homogeneous even at high flow rates. The PPSP has been calibrated to work both in micro-step (1/4 step) and in full-step (where greater torque is needed) and has been made programmable and stand-alone to be versatile for laboratory purposes. To facilitate assembly and optimize volumes, a PCB has been designed.
Hardware description
The PPSP is mounted on a 450x50x4mm Plexiglas plate, a gasket has been glued on one side of the plate with the aim of both reducing vibrations due to stepping and improving adhesion. On the other side of the plate the 3D printed supports are fixed, precisely: the “Motor Holder & Electrical Cabinet” that serves to give stability to the stepper motor and contain the electronics; the two “Syringe Support” that serve to keep the body of the syringes still and in position.
All the three supports keep two 8 mm smooth bars still and locked on which the “Plunger Mover” is free to move between the two limit switches. The “Plunger Mover”, by means of a flange, is moved by a NEMA17 motor piloted in micro-stepping and connected to a T8 worm screw.
A normal syringe pump on the market costs thousands of euros, a price that tends to double or even triplicate for push–pull devices, moreover in the Open-Source panorama a device has never been presented that would make the flow uninterrupted and linear.
Design files
CAD file and 3D-printing
All the pieces were made with the help of SOLIDWORKS 2017, the STL files were generated and prepared for printing using Ultimaker Cura 4.11.0 Software and made in polylactic acid (PLA) using Anet A8 printer. The files are available at the following repository: https://doi.org/10.17632/75w37bsh8d.1.
The Plunger Mover (Fig. 1, A) is the heart of the System, it is a piece that is moved by the rotation of the motor, slides on two smooth bars and, by blocking the plungers, guarantees the periodic loading and unloading of the syringes.
Fig. 1.
3D printed part of PPSP A) Plunger Mover; B) Screen Holder, C) Motor Holder and Electrical Cabinet; D) Syringe Support; E) Lateral Syringe Holder; F.1) Plunger Holder Front; F.2) Plunger Holder Back; G) Top Syringe Holder.
The Screen Holder (Fig. 1, B) is designed to support the screen and to cover the electronics and cables in the cabinet, leaving easy access to the system's USB port.
The Motor Holder & Electrical Cabinet (Fig. 1, C) is the main part of the system, it contains the PCB with driver and microcontroller and the NEMA17 motor is fixed to it
The Syringe Support (Fig. 1, D) is the piece that holds the syringe body fixed while the plungers are moved.
The Plunger Holders (Fig. 1, F.1 and F.2) are the pieces that keep the plungers fixed to the plunger mover.
The Lateral Syringe Holder (Fig. 1, E) and the Top Syringe Holder (Fig. 1, G) are pieces that hold the syringe body fixed together with the Syringe support.
Design files summary
(See Table 1)
Table 1.
Design files summary.
| Design file name | Qnt. | File type | Open source license | Location of the file |
|---|---|---|---|---|
| Plunger Mover (Fig. 1, A) | 1 | STL | CC-BY-NC-SA 4.0 | https://doi.org/10.17632/75w37bsh8d.1 |
| Screen Holder (Fig. 1, B) | 1 | STL | CC-BY-NC-SA 4.0 | https://doi.org/10.17632/75w37bsh8d.1 |
| Motor Holder & Electrical Cabinet (Fig. 1, C) | 1 | STL | CC-BY-NC-SA 4.0 | https://doi.org/10.17632/75w37bsh8d.1 |
| Syringe Support (Fig. 1, D) | 2 | STL | CC-BY-NC-SA 4.0 | https://doi.org/10.17632/75w37bsh8d.1 |
| Lateral Syringe Holder (Fig. 1, E) | 2 | STL | CC-BY-NC-SA 4.0 | https://doi.org/10.17632/75w37bsh8d.1 |
| Plunger Holders (Fig. 1, F.1 and F.2) | 2 | STL | CC-BY-NC-SA 4.0 | https://doi.org/10.17632/75w37bsh8d.1 |
| Top Syringe Holder (Fig. 1, G) | 2 | STL | CC-BY-NC-SA 4.0 | https://doi.org/10.17632/75w37bsh8d.1 |
Circuit diagram
The schematization of the circuit diagram is provided at the following repository: https://doi.org/10.17632/75w37bsh8d.1. The Arduino Nano board (rev 3.0) is the microcontroller used for the PPSP and it is powered directly on the VIN pin (and on the GND) from the DC connector (to which a 9 V DC, 1000mAh power supply must be connected).
The same GND and the 9 V are connected also to the driver A4988 at the specific pins (GND and VMOT). Between the positive (9 V) and the ground (GND) poles of the power supply, a capacitor (100 µF – 50 V) is placed, which has the purpose of stabilizing the current that reaches the driver, protecting the driver from noises caused by other parts of the hardware, and protecting other parts of the hardware from voltage drops caused by the driver.
The following parts are connected to the microcontroller: the 0.96” OLED screen (SDA on A4 and SCK on A5), the digital encoder (SW on D6, DT on D5 and CLK on D4), the two limit switches (for which a normally opened configuration and a 10 kΩ pull-down resistor are used) are connected to controller pins D10 and D9.
The A4988 pins 1A, 1B, 2A, 2B connect the stepper motor to the circuit; the DIR and STEP pins (connected to D2 and D3 respectively) are used to control the position and the steps of the motor; the SLP and RST pins are connected to each other (and to pin A1) and are used to disable the motor when the pump is put on pause (useful for limiting the consumption of electric current and delaying the deterioration of the internal components); finally the pins MS1, MS2, MS3 (connected to pins A6, A3 and A2 respectively) are used for microstepping control. The VDD pins of the various components are all connected to the 5 V of the microcontroller, in the same way, the GND pins of all the components are shared with the GND of the microcontroller. The pin-out of the microcontroller is reported in Table 2.
Table 2.
Microcontroller pin details.
| Microcontroller’s Digital(D)/Analogic(A) pins | Component pin |
|---|---|
| A1 | Sleep-Reset A4988 |
| A2 | MS3 A4988 |
| A3 | MS2 A4988 |
| A4 | SDA Oled Screen 0.96″ |
| A5 | SCL Oled Screen 0.96″ |
| A6 | MS1 A4988 |
| D2 | Dir A4988 |
| D3 | STP A4988 |
| D4 | DT Encoder |
| D5 | CLK Encoder |
| D6 | SW Encoder |
| D9 | Limit switch 2 |
| D10 | Limit switch 1 |
PCB design
The Gerber files of the PCB are available at the following repository: https://doi.org/10.17632/75w37bsh8d.1 (See Fig. 2).
Fig. 2.
PCB specify. TS) Top Silk; TC) Top Copper; TD) Drill position from Top; BS) Bottom Silk; BC) Bottom Copper; BD) Drill position from Bottom.
Software and firmware
The software was written in C ++ language and it was implemented on the microcontroller using Arduino IDE. The code is available at the following repository: https://doi.org/10.17632/75w37bsh8d.1.
Bill of materials
(See Table 3).
Table 3.
Bill of materials.
| Designator | Component | n° | Cost unit [€] | Total cost [€] | Source of Materials | Material type |
|---|---|---|---|---|---|---|
| M2x8mm Countersunk metric screw | M2x8 | 4 | 0.10 | 0.40 | https://tinyurl.com/2p95n7n6 | Metal |
| M2X2mm Nut | M2x2 | 4 | 0.10 | 0.40 | https://tinyurl.com/2p9f9db6 | Metal |
| M3x10mm Countersunk metric screw | M3x10 | 9 | 0.10 | 0.90 | https://tinyurl.com/3ddwc6nb | Metal |
| M3x16mm Countersunk metric screw | M3x16 | 8 | 0.10 | 0.80 | https://tinyurl.com/2p8fbmcx | Metal |
| M3x20mm Countersunk metric screw | M3x20 | 4 | 0.10 | 0.40 | https://tinyurl.com/5cxh7ek9 | Metal |
| M3x25mm Countersunk metric screw | M3x25 | 4 | 0.10 | 0.40 | https://tinyurl.com/3d32b4zn | Metal |
| M3x35mm Countersunk metric screw | M3x35 | 2 | 0.10 | 0.20 | https://tinyurl.com/4be34d9d | Metal |
| M3x40mm Countersunk metric screw | M3x40 | 2 | 0.10 | 0.20 | https://tinyurl.com/53pjfc8p | Metal |
| M3x2.2mm Nut | M3x2 | 29 | 0.05 | 1.45 | https://tinyurl.com/4j5278dz | Metal |
| M3x10mm Self-tapping screw | ST3x10 | 7 | 0.10 | 0.70 | https://tinyurl.com/2p98r7pf | Metal |
| M3x9mm Washer | MW3x5 | 4 | 0.10 | 0.40 | https://tinyurl.com/seafdn74 | Metal |
| Steel smooth rod D = 8 mm | MC-01 | 2 | 2.00 | 4.00 | https://tinyurl.com/ycv2w7mz | Metal |
| T8x350mm threaded rod + threaded brass flange | MC-02 & MC-03 | 1 | 9.99 | 9.99 | https://tinyurl.com/2p85jc59 | Metal |
| P-type self-adhesive gasket | PL- 01 | 1 | 1.00 | 1.00 | https://tinyurl.com/2p8v2wda | Metal |
| Plexiglas slab (450x50x4mm) | PL-02 | 1 | 1.00 | 1.00 | https://tinyurl.com/3trze2bd | Polymer |
| connector joint 5–8 mm | MC-04 | 1 | 1.39 | 1.39 | https://tinyurl.com/bdecdhrm | Metal |
| Syringe | PL-03 | 2 | 0.58 | 1.17 | https://tinyurl.com/2p97dkha | Polymer |
| Self-lubricating plastic bearing (ID = 8 mm OD = 15 mm) | MC-05 | 2 | 1.12 | 2.25 | https://tinyurl.com/bdfkmzws | Polymer |
| One-way valve | FD-01 | 4 | 1.64 | 6.55 | https://tinyurl.com/w3ac228w | Polymer |
| Silicon Cap | FD-02 | 1 | 0.2 | 0.20 | https://tinyurl.com/4mvp3xkr | Polymer |
| Tubes (different dimensions) | FD-03 | 2 | 0.3 | 0.60 | https://tinyurl.com/4mvp3xkr | Polymer |
| Y fitting 3–4 mm | FD-04 | 3 | 0.10 | 0.30 | https://tinyurl.com/4mvp3xkr | Polymer |
| T fitting 3–4 mm | FD-05 | 1 | 0.10 | 0.10 | https://tinyurl.com/4mvp3xkr | Polymer |
| Tube reduction 8–3 mm | FD-06 | 1 | 0.10 | 0.10 | https://tinyurl.com/4mvp3xkr | Polymer |
| Cable ties | FD-07 | 22 | 0.02 | 0.44 | https://tinyurl.com/4fdt9tay | Polymer |
| Hose clamps | FD-08 | 2 | 0.50 | 1.00 | https://tinyurl.com/2p84rb8c | Metal |
| Electronics | ||||||
| Elegoo nano ATmega328P | EL-06 | 1 | 4.66 | 4.66 | https://tinyurl.com/2ckf6kk8 | Electronic |
| Quimat Nema 17 stepper motor 1.7A 0.59Nm | EL-10 | 1 | 15.00 | 15.00 | https://tinyurl.com/vt6ec5m7 | Electronic |
| Stepper driver A4988 | EL-07 | 1 | 1.60 | 1.60 | https://tinyurl.com/muy64ncc | Electronic |
| Oled screen 128x64 0.96″ | EL-11 | 1 | 4.00 | 4.00 | https://tinyurl.com/2u8kh8n7 | Electronic |
| Digital Encoder | EL-09 | 1 | 1.40 | 1.40 | https://tinyurl.com/4hjbcv4c | Electronic |
| Stop sensor | EL-12 | 2 | 1.16 | 2.32 | https://tinyurl.com/yckuz6yz | Electronic |
| DC plug in power supply 5.5 mm | EL-03 | 1 | 1.00 | 1.00 | https://tinyurl.com/4w98ekay | Electronic |
| 10KOhm Resistor | EL-02 | 2 | 0.20 | 0.40 | https://tinyurl.com/m5zkbtxw | Electronic |
| 100 V electrolitic condenser | EL-01 | 1 | 0.20 | 0.20 | https://tinyurl.com/m5zkbtxw | Electronic |
| male pin | EL-04 | 1 | 0.20 | 0.20 | https://tinyurl.com/m5zkbtxw | Electronic |
| Female pin | EL-05 | 1 | 0.20 | 0.20 | https://tinyurl.com/m5zkbtxw | Electronic |
| Wires | EL-06 | 1 | 1.00 | 1.00 | https://tinyurl.com/m5zkbtxw | Electronic |
| PCB | EL-08 | 1 | 2.20 | 2.20 | https://tinyurl.com/3nfxwzjm | Electronic |
Build instructions
Additional instruments, devices, and materials:
Screwdrivers, calibrated pipettes, graduated cylinders, pliers, Soft Tip Hammer, Screwdriver, Drill, Soldering Iron, Tin, Multimeter, some 2 mm Self Tapping Screws for PCB Fixing, Hot Glue, Lubricating Oil.
Preparation of electronic components
The PCB (El-00) was designed by our Research Group and built by PCB-Way (www.pcbway.com, website through which, by uploading the gerber files provided in the supplementary materials, it is possible to order PCBs for this project), the characteristics are listed below:
-
•
Dimensions = 46.8 × 46.8 × 1.6 mm,
-
•
Material = FR-4 (TG 130–140);
-
•
Finished copper = 1 oz.
-
•
Layers = 2;
-
•
Surface finish = HASL with lead;
Additional information: The tracks directly connected to 9 V DC, as they carry loads of the order of Ampere, have been oversized (70mils) to avoid overheating problems.
Mount the PCB
-
•
Solder the 47uf (100 V) electrolytic capacitor (EL-01), the 10kOhm resistors (EL-02) and the connector for the 9 V-DC (EL-03) using the appropriate holes
-
•
Solder the female pins (EL-05) (15x2 Arduino board, 8x2 Stepper Driver A4988, 4x1 Oled Screen 128x64px) and the male pins (EL-04) (4x1 NEMA17 motor, 2x2 Limit switches, 5x1 Digital Encoder)
-
•
Insert Microcontroller (EL-06), Stepper Driver A4988 (EL-07) in the female pins paying attention to the indications on the PCB face (see Fig. 3)
-
•
Fix PCB (EL-08) to the internal wall of the Motor Holder & Electrical Cabinet, insert the encoder (EL-09) in the side of the same piece and fix it with the nut (Fig. 4).
-
•
Fix the Oled screen (EL-11) to the Screen Holder using M2x8 pins and nuts (M2x8 and M2x2) (Fig. 4).
-
•
Fix the PCB using hot glue or 2x10mm self-tapping screws.
-
•
Connect the NEMA17 (EL-10) motor by passing the wires through the rear hole of the Motor Holder and Electrical Cabinet, connect the screen and encoder using FF wires and connect free FM wires on the corresponding pin-headers, close the cover by passing these cables through the rear hole. Of the piece.
Fig. 3.
PCB assembly.
Fig. 4.
Motor Holder & Electrical cabinet and Screen Holder Assembly.
Preparation of NEMA17 with A4988 stepper-driver
If the motor current is not tuned, it may happen that the motor doesn’t move correctly and starts pulsating. To adjust the input current to the NEMA17 motor it is necessary to calibrate the A4988 stepper driver using the potentiometer on-board mounted. The A4988 allows you to set a target current by adjusting Reference Voltage (Vref) turning the potentiometer present on board [17].
In our case, having a 1.5A NEMA17 motor (considering a real maximum load equal to 80% of the theoretical maximum load) and an A4988 driver with a 0.1 Ω sense resistor, we calculate [17], [18]
The actual value of Vref can be calculated using the formula [17], [18]:
Using a multimeter, measure the voltage at the top of the potentiometer head and at any ground point on the board, or alternatively, measure the current flowing in one of the motor cables downstream of the driver. Using a multimeter, measure the voltage at the top of the potentiometer head and at any ground point on the board, or alternatively, measure the current flowing in one of the motor cables downstream of the driver. Useful guides are given in [17], [18].
It is suggested to use the “sleep” pin on the A4988 driver to limit the current consumption and therefore limit the overheating and wear of the electronic components crossed by high loads, in this way, the power request goes from about 8 W to about 0.2 W when the pump is paused.
Preliminary operations
-
•
Cut and drill the Plexiglas sheet, calibrating the distance between the holes according to the size of the used syringes, the cut can be made using a circular saw (e.g., Dremel), while the holes can be drilled with a drill and a 3 mm bit, alternatively a perforated sheet of any material can be used
-
•
Insert the 3 mm nuts (M3x2) fully and in each orifice provided on the 3D printed pieces.
-
•
Fix the limit-switches (EL-12) using self-tapping screws 2x10mm (ST2x10) on the sides of the Syringe Support marked with holes (Fig. 5).
-
•
Fix the syringe body to the two Syringe Supports using Lateral Syringe Holder and M3x16mm pins, Top Syringe Holder and M3x20mm pins (Fig. 5).
-
•
Fix the threaded flange (MC-03) to the plunger mover using M3x16mm pins and nuts (Fig. 6).
-
•
Insert self-lubricating bearings (MC-05) in the dedicated holes and fix their position with M3x25mm pins (Fig. 6).
-
•
Position the two syringes (PL-03) and fix the plungers to the Plunger Mover using the Plunger Holders.
Fig. 5.
Syringe Support assembly.
Fig. 6.
Plunger mover assembly.
Global assembly
-
•
Fix the 5–8 mm connector joint (MC-04) to the NEMA17 motor and fix the T8x350mm threaded bar (MC-02) to the connector by tightening the side screws (Fig. 7).
-
•
Fix the motor to the Motor Holder and Electrical Cabinet using M3x25mm pins (Fig. 7).
-
•
Insert the 8x400mm smooth bars (MC-01) into the dedicated holes on the Motor Holder and Electrical Cabinet (Fig. 7).
-
•
Insert by sliding, in sequence, the first Syringe Support, Plunger Mover and the second Syringe Support (as seen in Fig. 8 the limit switches must both face towards the center).
-
•
Lubricate the stroke of the Plunger Mover
-
•
Connect the two limit switches by soldering (or using FASTON terminals) and wires by passing the cables adjacent to the lower face of the Plexiglas. The limit switch closest to the PCB is connected to D9 while the farthest to D10
-
•
Glue the P-type self-adhesive gasket (PL-01) along the sides in the lower part of the Plexiglas sheet.
Fig. 7.
Mechanical assembly.
Fig. 8.
Support assembly.
In this work 10 mL syringes (L = 12 cm, D = 1.3 cm) have been used as a reference, and calibration has been carried out on these syringes. However, during the building phase, a different type of syringe can be chosen, but it will be necessary to recalibrate the instrument following the procedure outlined in the manuscript.
Fluid-dynamic piping preparation and assembly
To ensure flow continuity, 4 one-way valves (FD-01) were used connected as shown in Fig. 9.
Fig. 9.
a. Schematization of the piping; b. top view of the pump with the tubing; c. focus on the connection of the dampener (in-line mounting, inlet from below) and of the 2 one-way valves.
The system globally provides 2 inlets and 1 outlet. The flows coming out of the syringes, after being joined (by means of a Y junction FD-04), are sent to a damping area where there is a dampener. The dampener is composed of a silicone tube (OD = 10 mm, ID = 8 mm, L = 50 mm), a silicone cap (FD-02), and two metal hose clamps (FD-08), to tighten both the cap and a reduction (8–3 mm) which is connected to a T-junction (FD-05) and downstream of which there is a necking. The purpose of the dampener is to regulate the flow where there are spikes, it acts as a reservoir, which pours its contents when the pressure drop allows it.
Software setup
To write and implement the software Arduino IDE was used equipped with the U8g2lib library for the management of the OLED screen. The sketch is divided into 5 tabs, in the main one, named PPSP_Software (supplementary materials) runs the main loop, the other 4 are additional functions, one for the autohome function at startup, one for screen management and two others for the management of the digital encoder. The NEMA17 is driven in ¼ step (microstepping), the power supply voltage is 9 V DC and is supplied by a 220 V AC – 9 V DC (1000 mA) transformer.
Autohome
The first operation carried out by the pump at the start up is the autohome, the code is placed inside the autohome function (“Autohome.ino”). The motor moves the Plunger Mover until it reaches the first limit switch. At this point the rotation is reverted and the Plunger Mover is moved until it reaches the second limit switch. While doing this movement the number of steps necessary to move from one switch to the other (full stroke) are recorded. These steps will be used to control the position of the Plunger Mover in the normal operation of the pump.
Pumping control system
After the autohome, the position of the Plunger Mover is known. At this point, by using two for loops, it is possible to control the movements of the Plunger Mover. In particular, a for loop moves the Plunger Mover from right to left, by sending digital HIGH and LOW signals to the driver of the NEMA motor, interspersed by a certain delay. The other for loop moves, in a similar way, the Plunger Mover from left to right. The delay between HIGH and LOW signals is function of the flow rate set by the user, that is in millisecond for low flow rate and in microseconds for high flow rates (this choice is performed in the “Start_selection.ino” function). The whole control logic is present in the “step_function.ino”.
User interface
The other part of the software has been developed to allow an easy interface between the pump and the human action. In particular, the file “Msg_to_Oled.ino” contains the code necessary to show on screen the flow rate and a command to pause or restart the pump. The interaction between the pump and the user is performed by a digital Encoder whose logic of control is reported in the “Encoder_sel.ino” function.
Operation instructions
The pump will be started with the connection of the power plug, at each start the system will perform an AutoHome to re-evaluate the position and distances (the maneuver is valid even if the pipes are empty), at the end of the auto-home process the pump will remain stationary while waiting for commands, a menu will appear on the screen (an example is given in Fig. 10) in which it will be possible to choose the flow rate in a range that goes from 0.5 to 500 mL/min and then start the system.
Fig. 10.

Main menu screen representation.
In the main menu it is possible to set the range by navigating between the values of hundreds, tens, units and tenths shown on the screen, which are highlighted by rotating the encoder clockwise (right) or anticlockwise (left), by pressing the switch of the encoder, on the other hand, it is possible to modify the selection.
Positioning on “start” and pressing the encoder switch, the pump is started and will deliver the set flow rate. While the pump is running, by pressing the encoder switch, the pump will stop, and it will be possible to set a new flow rate
In the enclosed software the calibration was carried out with 10 mL syringes and ¼ step in micro-stepping modes with a Nema17 1.5A.
Validation and characterization
Calibration
NEMA17 has been programmed to carry out one step (or ¼ of step) every time interval Δt which is defined each time by the chosen flow rate: the greater the flow rate, the lower the Δt that will elapse between two consecutive steps. In Fig. 11 the experimental calibration curves obtained for high and low flow-rate are reported. At fixed delay step-step the output of the pump was collected for a certain amount of time and measured, the flow rate was calculated as the ratio of the volume and the time of collection of the sample. In particular for high flow rate () (5–500 mL/min or equivalently Δt 0–1000 μs) the relation between flow rate (mL/min) and Δt (in μs) is , whereas for low flow-rate (0.5–5 mL/min) the relation is .
Fig. 11.
Calibration line: a. relationship between volumetric flowrate [mL/min] and delay between two consecutive steps in microseconds (for high flow-rate); b. relationship between volumetric flowrate [mL/min] and delay between two consecutive steps in milliseconds (for low flow-rate).
Pump calibration took place by correlating the delay set between one step and another and the volumetric flow rate, the latter was obtained by measuring the volume delivered (through graduated containers) and dividing this value by the metered delivery (through chronometer). Two calibrations were carried out, one based on microseconds, and one based on milliseconds, the differentiation was necessary for the low flow rates, where the delay between one step and the other is much greater, and, since the use of micros is reliable in a range from about 3 to 16000 µs [19] it was decided to operate with the milliseconds to avoid instability problems.
Dampener effect evaluation
As mentioned, the dampener is used to dampen any fluctuations in the volumetric flow; the presence of a compressible fluid such as air inside a closed volume and placed through a tree-way fitting along the line where the flow to be damped streams, acts as a shock absorber by accumulating liquid when the piping is under pressure, and giving up a flow rate when pressure drops are recorded in the piping. When making a dampener, it is necessary to consider the operating pressure, the desired percentage of damping, parameters that will define the volume of the dampener itself. In our work a dampener without a separating membrane was created, for the dimensioning the law of the adiabatic transformation was used: , where and are the atmospheric pressure and the total volume of the dampener; is the working pressure; is the volume of the compressed gas above the liquid level inside the dampener during normal operation of the pump; is the pressure recorded during the switch between the two syringes and is the volume of air present in the dampener at the switch (Fig. 12).
Fig. 12.
Operating dampener example.
Considering that the more it is necessary to reduce a pulsation, the closer the value of must be to : i.e. , so as to have a damping factor equal to 5%, . Considering that (see Fig. 12) and combining these considerations with the adiabatic transformation , it is possible to obtain the equation to estimate the volume of the dampener:
Equation 1. Dampener volume estimation
It is fundamental to know the , which is a characteristic of the pump. To estimate its value, in this work an analog pressure transducer was connected after the dampener, measuring the pressure inside the system at 10 different flow rates. Knowing that for air the expansion coefficient is , and using the the maximum () and minimum () pressure values it was possible to estimate the damping factor (). Knowing the volume of the dampener used, from Eq. 1 it was possible to calculate at the different flow rates. The values obtained are reported in Fig. 13, along their fitting with an exponential function that allows to calculate the characteristic of the pump at different flow rates:
where A = 0.421 mL, B = -0.445 mL, C = 144.883 mL/min
Equation 2. Equation to relate theto the volumetric flowrate (coming from fitting of experimental data)
Fig. 13.

Experimental data fitting to correlate to the flowrate.
As it can be seen from Fig. 13, at flow rates lower than 20 mL/min the is very small, meaning that there is no need to install a dampener in the systems. When the flow rate increases, the inertia of the system at the switch produces higher value of , in other words the flow at switch is not constant, and the use of a properly sized dampener is needed.
Obviously, in order to have the effect of the dampener, a minimum pressure must be recorded in the piping which can be estimated starting from the consideration that, at the moment of minimum pressure in the dampener there must be liquid for at least 20% of the total volume of the dampener, i.e. , from this, considering that , substituting in the formula of the adiabatic transformation we obtain:
Equation 3. Equation for the estimation of the minimum working pressure (to obtain an effective damper effect
When designing the volume of the dampener without membrane (bladder) it is convenient to work, if it is possible, at the minimum pressure to assure the functioning of the dampener and its smallest volume. Is the downstream does not produce a sufficient back pressure, so that , a concentrated pressure drop (such as a restriction or a needle valve) should be installed downstream the dampener.
Fig. 14 shows a demonstration of the damping effect by comparing the pressure recorded on the pump delivery, at the flow rate of 300 mL/min, without and with three dampeners of different sizes (the pressure was measured by connecting an analog pressure transducer downstream of the dampener and an Arduino MEGA 2560 board).
Fig. 14.

Demonstration of the dampener effect on a flowrate of 300 mL/min tested in 4 different configurations: without dampener-black line, Small Dampener (Vs = 2.35 cm3)-blue dashed line, Normal Dampener (Vn = 4.7 cm3)-red dotted line, large dampener (Vl = 9.4 cm3)-green point dashed line. (For interpretation of the references to colour in this figure legend, the reader is referred to the web version of this article.)
When a dampener of a certain volume is installed on the line, the Eq. (1) can be used to estimate the damping factor () once the working pressure and the flow rate (so that from Eq. (2)) are known.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License CC-BY-NC-SA 4.0. This type of license permits to copy and redistribute the material in any medium or format, or to remix, transform, and build upon the material. It is mandatory to give appropriate credit, provide a link to the license, and indicate if changes were made. It should be done in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. It is not permitted to use the material for commercial purposes. If remix, transformation or build upon the material are made, it is mandatory to distribute the new contributions under the same license as the original. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/.
CRediT authorship contribution statement
Marco Iannone: Data curation, Software, Methodology, Investigation, Writing – original draft, Visualization. Diego Caccavo: Conceptualization, Investigation, Validation, Writing – review & editing. Anna Angela Barba: Supervision, Writing – review & editing. Gaetano Lamberti: Supervision, Writing – review & editing.
Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Biographies

Marco Iannone is an industrial engineer who collaborates with the DIIN (Industrial engineering department) and DIFARMA (Pharmacy department) of the University of Salerno (Italy) in the role of research fellow. In 2019 he obtained his master's degree in chemical engineering (cum laude) with a thesis whose experimental part was conducted at the pharmaceutical science department of Utrecht University (the Netherlands). His research commitments concern controlled release nanoparticulate systems in the pharmaceutical field and the prototyping of innovative laboratory and industrial devices.

Diego Caccavo is a postdoc fellow at the University of Salerno. He received his PhD in Industrial Engineering from the University of Salerno in 2017, which focused on the analysis and modelling of the behavior of hydrogels. In the 2013, he received his MSc in Chemical Engineering (Summa Cum Laude, awarded by AIDICGRICU and Rotary International D2100) from the University of Salerno with a thesis partially developed at the Chalmers University of Technology (Sweden). His main research activities concern the analysis and modelling of hydrogel-based systems’ behavior for biomedical and agro-food applications; the design of liposomes-based products and the development of new devices and chemical processes

Prof. Anna Angela Barba, PhD, is a chemical engineer. She teaches Industrial Pharmaceutical Plants at the Department of Pharmacy, University of Salerno, Italy. Her research activities are focused on the development of nonconventional techniques, involving microwave energy and ultrasonic energy, in the production of active molecule delivery systems and in agro-food treatments. The results of her scientific activities are reported in numerous articles published in international journals (over 80), in national technical journals, in communications at international and national conferences (over 100), and in books/monographs (over 20). An overview of her research group is available on the web site www.gruppotpp.it.

Prof. Gaetano Lamberti, PhD, is a chemical engineer, and he teaches Transport Phenomena at the Department of Industrial Engineering, University of Salerno, Italy. His research interests are focused on the applications of transport phenomena in pharmaceutical/biomedical sciences, as well as in food science, and on polymer transformation processes, with special emphasis on flow induced crystallization. The results of his research and an overview on his research group are summarized on the web site www.gruppotpp.it. Gaetano Lamberti is the single author or a co-author of more than 110 papers published in international journals on these subjects.
References
- 1.Booeshaghi A.S., Beltrame E.d.V., Bannon D., Gehring J., Pachter L. Principles of open source bioinstrumentation applied to the Poseidon syringe pump system. Sci. Rep. 2019;9(1):12385. doi: 10.1038/s41598-019-48815-9. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 2.LeSuer R.J., Osgood K.L., Stelnicki K.E., Mendez J.L. The Open Millifluidic Inquiry System for small scale chemical synthesis and analysis. HardwareX. 2018;4:e00038. [Google Scholar]
- 3.L.M. Amarante, et al., An open source syringe pump controller for fluid delivery of multiple volumes. eneuro, (2019); 6(5): ENEURO.0240-19.2019. [DOI] [PMC free article] [PubMed]
- 4.Baas S., Saggiomo V. Ender3 3D printer kit transformed into open, programmable syringe pump set. HardwareX. 2021;10:e00219. doi: 10.1016/j.ohx.2021.e00219. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 5.D. Chepelyansky, et al. Syringe pump. 2017; Available from: http://www.mass-spec.ru/projects/diy/syringe_pump/eng/#link_ref.
- 6.D. Florian, Syringe Pump - Automatic dispensing of liquids. 2016; Available from: https://www.drdflo.com/pages/Projects/Syringe-Pump.html.
- 7.M.P. Croatt, Syringe pump. 2018; Available from: https://chem.uncg.edu/croatt/flow-chemistry/building-the-syringe-pump/.
- 8.W. Patrick, T. Levy, C.-W. Wang. Open source syringe pump. 2013; Available from: http://fab.cba.mit.edu/classes/863.13/people/wildebeest/projects/final/index.html.
- 9.Wijnen B., Hunt E.J., Anzalone G.C., Pearce J.M., Gilestro G.F. Open-source syringe pump library. PLOS ONE. 2014;9(9):e107216. doi: 10.1371/journal.pone.0107216. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 10.Akkoyun F., Ozcelik A. A simple approach for controlling an open-source syringe pump. Eur. Mech. Sci. 2020;4:166–170. [Google Scholar]
- 11.Garcia V.E., Liu J., DeRisi J.L. Low-cost touchscreen driven programmable dual syringe pump for life science applications. HardwareX. 2018;4:e00027. doi: 10.1016/j.ohx.2018.e00027. [DOI] [Google Scholar]
- 12.A.S. Booeshaghi, et al. Poseidon: Open source bioinstrumentation. 2019; Available from: https://github.com/pachterlab/poseidon. [DOI] [PMC free article] [PubMed]
- 13.Darling C., Smith D.A. Syringe pump extruder and curing system for 3D printing of photopolymers. HardwareX. 2021;9:e00175. doi: 10.1016/j.ohx.2021.e00175. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 14.Lim J.-M., Swami A., Gilson L.M., Chopra S., Choi S., Wu J., Langer R., Karnik R., Farokhzad O.C. Ultra-high throughput synthesis of nanoparticles with homogeneous size distribution using a coaxial turbulent jet mixer. ACS Nano. 2014;8(6):6056–6065. doi: 10.1021/nn501371n. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 15.S. Bochicchio, et al., Nanoliposomes Production by a Protocol Based on a Simil-Microfluidic Approach, in Advances in Bionanomaterials: Selected Papers from the 2nd Workshop in Bionanomaterials, BIONAM 2016, October 4-7, 2016, Salerno, Italy. 2018, Springer International Publishing: Cham. p. 3-10.
- 16.Barba A.A., et al. Produzione di vettori nano-liposomiali incapsulanti ferro altamente biodisponibile con tecnica in continuo. Eng4Life. 2017 [Google Scholar]
- 17.Brázio, J. Tuning of NEMA current. 2019; Available from: https://ardufocus.com/howto/a4988-motor-current-tuning/.
- 18.Klements, M. How to correctly set the motor current limit on an A4988 stepper motor driver. 2020; Available from: https://www.the-diy-life.com/how-to-correctly-set-the-motor-current-limit-on-an-a4988-stepper-motor-driver/.
- 19.Arduino. delayMicroseconds. Available from: https://www.arduino.cc/reference/en/language/functions/time/delaymicroseconds/.












