Introduction :
A syringe pump is a small infusion pump that gradually administers small amounts of fluid. During the course of ARE(Ateliers de Recherche Encadré - Supervised Research Project) at Sorbonne University(UPMC), our group was given the task to create a syringe pump from scratch.
Primary language: C++ / Arduino.
Principle :
 A syringe pump follows the principle of the Archimedean screw. This allows the syringe to be pushed forwards depending on the value of pression and volumetric flow rate that was chosen beforehand. Also, this allows the inserted fluid to be injected at a constant rate for a certain time.

 The most widespread use of syringe pumps is in palliative care. It administers analgesics such as painkillers, antiemetics and other drugs. This prevents medication levels in the blood from becoming too high or too low and allows us to avoid the consumption of multiple tablets. Syringe pumps can also be used to deliver IV medications over a certain time. Especially in the case of a medication that must be slowly inserted over the course of several minutes, this device saves staff time and reduces errors.

Composition :
 General Composition :
  - Syringe
  - Overall Support
  - Syringe Support
  - Electrical Part
  - Mechanical Part

 Electrical Composition :
  - Arduino Due
  - LCD(LiquidCrystalDisplay) Screen
  - Numeric Keypad (4 x 4 matrix)
  - Wires
  - Power Supply

 Mechanical Composition :
  - Stepper Motor 

Physical Aspect :
 For the calculation of the physical aspect, we defined volumetric flow rate of the medication placed in the syringe pump in milligrams of active substance(mass) per milliliter of liquid(volume). Knowing the volume of the introduced liquid and the time taken for the injection, we can determine the volumetric flow rate in milliliters per hour. We can modify the flow rate using the numeric keypad which has the function to change the pressure within the syringe.
  • Volumetric flow rate = Volume / Time = Velocity x Area
  • Volume maximum : 30ml, Diameter of Syringe(Ds) : 24mm
  • Velocity = Distance / Time, 8 turns of the screw of the syringe = 1cm, 1 turn = 1/8cm
  • Diameter of Nozzle(Dn) : 2mm
  • Dn x Vf = Ds x Vi, with Vf = Final Velocity and Vi = Initial Velocity

Mechanical Aspect :
 A translational motion with a chosen length and speed in necessary for the syringe pump to function. As a result, a stepper motor is used which is controlled by a keypad and a LCD screen. These components are connected to a microcontroller (Arduino Due) for it to work. The motor rotational movement is then converted into a translational movement through a system of "worm gear", a nut and a 3D printed piece. This piece will be attached to the pushed part of the syringe. The rest of the syringe is immobilized with other 3D printed pieces that are fixed on a rail with screws and nuts.

 The movement performed by the motor will be controlled by a code, that is transferred to the Arduino, which will ask the user to insert the volume and time to administer the fluid.
Thus, we have the following calculation :
  • For a screw measuring 1cm = 8 turns, 1 turn = 200 steps, thus 1cm = 1600 steps
  • Syringe with 10ml = 2.6cm, thus 1ml = 0.26cm
  • Finally 1ml = 1600 x 0.26 = 416 steps can be obtained
 (Modeling and Programing part : By performing tests, we can notice that we must add around 10 steps to the calculated value to have exactly 1ml. Therefore, we choose to use the value of 425 steps per 1ml.)
 After the user has selected his/her desired volume of fluid using the keypad and verified it with the LCD screen, the code carried out by the Arduino will multiply the inserted volume(ml) by 425 and turn the motor, which will push the movable part of the syringe.

Modeling & Programming :
 In this part, we focused on modeling and programming of the syringe pump. The modeling part allowed the assembly of various components of the device, as well as to 3D print the supports and to connect the components. Likewise, programing part allowed to components to function.

 A stepper motor(to push the syringe), a LCD screen(to display the volumetric flow rate), numeric keyboard(to insert desired values) and an Arduino Due are essential for the construction of a syringe pump.

 The program file of an Arduino Due needs to be downloaded to use it.
 Motor :
  Components :
Driver Pololu(model : DRV8825) for the Stepper Motor
   - Wires
   - Stepper Motor(model : NEMA 17 42HS4013A4 SUMTOR)
   - Universal Power Supply 12V
   - Capacitor 100μF 

 LCD Screen :
  The LCD screen(model: 1602) is connected to the Arduino using a breadboard and wires. A potentiometer is required for the LCD operation screen. The download of the <LiquidCrystal.h> file is required for the code to work.

  Components :

   - LCD Screen(model: 1602)
   - Potentiometer

 Numeric Keyboard :
  The numeric keypad (4 × 4 matrix) can be directly connected to the Arduino. The download of the <Keypad.h> file with the "" is needed and then it must be added to the library of the Arduino program.
 Support :
  Plastic Support :
   For the plastic support, the 3D printer was used. The ".stl"  files of the pieces have been found online.
       3D Printed Syringe Supports :
   .stl and .scad Files
  Wooden Support :
   The laser cutter was used to make the wooden support. The box was made with an online site called "Makercase" with the dimension of our syringe pump.

C++ / Arduino Implementation :
GitHub Code