
| Authors | Bas Wijnen Emily J. Hunt Gerald C. Anzalone Joshua M. Pearce |
|---|---|
| Location | Michigan, USA |
| Status | Designed Modelled Prototyped Verified |
| Verified by | MOST |
| Making instructions | https://github.com/mtu-most/franklin |
|---|---|
| Hardware license | CERN-OHL-S |
| Certifications | Start OSHWA certification |
This article explores a new open-source method for developing and manufacturing high-quality scientific equipment suitable for use in virtually any laboratory. A syringe pump was designed using freely available open-source computer aided design (CAD) software and manufactured using an open-source RepRap 3-D printer and readily available parts. The design, bill of materials and assembly instructions are globally available to anyone wishing to use them. Details are provided covering the use of the CAD software and the RepRap 3-D printer. The use of a (partly open-source) Raspberry Pi computer as a wireless control device is also illustrated. Performance of the syringe pump was assessed and the methods used for assessment are detailed. The cost of the entire system, including the controller and web-based control interface, is on the order of 5% or less than one would expect to pay for a commercial syringe pump having similar performance. The design should suit the needs of a given research activity requiring a syringe pump including carefully controlled dosing of reagents, pharmaceuticals, and delivery of viscous 3-D printer media among other applications.
Note: This page describes the mechanical build and software installation. The paper describes the electronics as it was originally implemented. This method is not maintained anymore. It is now recommended to use a 3-D printer controller such as a RAMPS or Melzi and Franklin to control the device. The old method is detailed in the Discussion tab of this page.
This is a description for using Franklin to control the device. Latest version available for free Github.
(The paper describes the electronics as it was originally implemented. This method is no longer maintained. It is now recommended to use a RepRap 3-D printer controller such as a RAMPS or Melzi, which you can pick up online and Franklin to control the device. The original instructions are available in the Discussion tab.)
The motor must be connected to the control board on the terminals that are intended for the first axis (normally called X). In Franklin, load the profile for the board you have, then set up the profile and calibrate the pump:
Pull the syringe out slightly past a big marker. Then using tiny steps, push the syringe to the bigger marker so the plunger is exactly on the mark. (Because of backlash, you want to do the entire procedure with pushing only.)
Click the home button to set the position to 0.
Push it further until you reach another marker (larger distance is better). Make sure to do small steps at the end, in order to make sure you do it by pushing only.
Record the current position.
Divide the reported number of mm times the coupling by the number of milliliters between the markers. This is the correct Coupling value for this syringe.
The pump is now ready to use. You can use the x position entry to move it manually, or upload G-Code which moves the X coordinate to move it in a pre-programmed pattern. A simple G-Code example is:
G91 ; Use relative positioning.
G1 X10 F600 ; Push 10 mL at 600 mL/min (10 mL/s).
G1 X1 F120 ; Push 1 mL at 100 mL/min (2 mL/s).
G4 P500 ; Wait 500 ms.
G1 X1 ; Push another mL at the same speed.
G1 X10 F600 ; Repeat.
G1 X1 F120
G0 X-5 ; Pull back 5 mL at maximum speed.
The minimum pump amount is a single step of the motor; how much that is depends on the size of the syringe. Here the lead screw has a pitch of 0.8mm and the motor does 3200 microsteps per revolution, so one step is a plunger movement of 0.8mm/3200=250nm. The cross section of a 25ml syringe is around 4cm², so one step is the product of those, which is 0.1mm³=0.1μL.
There is no minimum value for the speed that the pump can go, but if you get near the step size, the flow will be in noticeable steps instead of continuous. For example, if you want 1μL/min, it will do one step every 6 seconds.

| Authors | Joshua M. Pearce, Bas Wijnen |
|---|---|
| License | CC-BY-SA-3.0 |
| Organizations | MOST, MTU |
| Cite as | Joshua M. Pearce, Bas Wijnen (2014–2025). "Open-source syringe pump". Appropedia. Retrieved October 3, 2026. |