3D Printed Syringe Pump Arduino Based

Written by: admin@makezilla

Picture of 3D Printed Syringe Pump Arduino BasedCapture.PNGPhoto_preview_featured.jpg

Please vote for my project to see more DIY electromechanical systems!

I had an idea that it would be possible to make a high quality, precision syringe pump using 3D printed parts and various extras off of eBay for much cheaper than what is commercially available today. This could be beneficial for the home scientist, small budget limited labs, people wanting to experiment with 3D printing ceramics or chocolate, and really anyone looking for a fun project or a readily hackable low cost syringe pump.


As a comparison I spent around $120 on this project where the comparable NE1000 by ABC Scientific is $750 and does not have as many features or the ability to be custom programmed.

This project requires:

1. Access to a 3D printer with at minimum a print volume of 200 x 200 x 80 mm

2. Ability to solder a simple circuit

3. Limited programming experience with Arduino (Most of the code is already provided)

4. Access to a computer with administrator privileges (Or Arduino software already installed)

Step 1: Aquire the parts

Bill of materials:

1. All of the 3D printed parts found here:http://www.thingiverse.com/thing:1241526

2. 200 mm long 8 mm rod (Chromed is better if you can get it)

Quantity: 2 pcs

3. LM8UU Linear Bearings, Like this: http://goo.gl/Bnp6M4

Quantity: 2 pcs

4. 20x4 HD44780 Character LCD Display Module, Like this:http://goo.gl/7IUwGL

5. Round momentary push buttons, Like these: http://goo.gl/iyta4T

Quantity: 4 pcs

6. Limit Switch, like these: http://goo.gl/xObUWG

Quantity: 2 pcs

7. Stepper Driver, Like this one: http://goo.gl/iyta4T

8. Stepper Motor, like this one: http://goo.gl/hxdJjT

9. Arduino Uno (Or Clone, no judgment here for saving a few bucks) Like:http://goo.gl/La74EF

9. Nuts and Bolts

4x 20 mm M3 bolts

2x 80 mm M6 bolts

2x M6 Wing Nuts

2x 40 mm M5 Bolts

2x M5 Wing Nuts

Rod coupler (5mm to 3/8")

1 Roll of 22 AWG solid core insulated wire (Red and Black if you want, one color is fine though)

10. 3/8" 12 Acme Lead Screw (Also get a matching plastic flange nut). Part # 98935A817 at McMaster Carr

11. Electrical Components (See wiring diagram)

7x 10K Resistors

5x Low voltage drop diodes (1 volt or less will work)

Previously Stated Buttons and Limit Switches

A 12 V power supply capable of doing at least 3A, Like: http://goo.gl/2b5k4n

A female connector that fits whatever size power supply that you got

1 toggle switch, Like: http://goo.gl/rglbXE

a 10K Potentiometer, like: http://goo.gl/ysdQCY

12. Soldering Tools (An iron or gun, Prototyping PCB, A PCB Clamp, Small gauge Solder)

13. Super Glue and a hot glue gun

14. Any standard 10 ml syringe, glass or plastic

Step 2: Wire it all up

Picture of Wire it all upLCD_bb.png

Once everything is purchased and available you can start soldering it all up. I would start with the buttons, solder wires to the buttons but wait to solder them to the PCB until they have been pressed into place in the enclosure. Next solder all of the resistors and diodes to the PCB and connect them with wires according to the diagram. You can then solder wires to the PCB at the specified connection points on the circuit and attach them to the appropriate Arduino pins.

Connect the Stepper driver, Arduino, and the PCB together according to the pin diagram. The stepper driver and Arduino are particularly easy to connect because instead of solder they have a mix of screw and breadboard type connections.

Solder wires to pins 1-6 and 11-16 of the LCD module along with the potentiometer, see the circuit diagram for which wires go where.

Solder wires to the 12V power supply female plug and connect them to the stepper motor driver and the VIN and Ground pins on the Arduino Uno (This power inlet is regulated, so it wont hurt the Uno)

At this point if you are sure that everything is connected correctly you can power on the Arduino and adjust the potentiality so that the LCD is easily readable.

Step 3: Programming the Arduino

Picture of Programming the Arduino

Go ahead and get the latest version of the Arduino IDE from the Arduino website.


After installing the correct version of the software for your computer you can go to my GitHub page and download the Code for controlling the syringe pump. Feel free to fork the project and submit upgrades and more features!


Open the .ino file that you downloaded from GitHub and then in the upper left hand corner select the "Tools" menu and scroll down to the "Board:" section and select Arduino Uno from the drop down list.

(Optional )If you are familiar with programming in C, look over the code and edit the presets to your liking!

Disconnect the peripherals from the Arduino board or plug in the 12 volt power supply before plugging in the USB cable! You don't want to accidentally draw too much current from the USB port, potentially damaging it.

Once you plug in the USB cable to both your computer and the Arduino you can then flash the Arduino firmware by hitting the arrow button in the top left corner, this will start the program compiling and then, if there are no errors present, push the compiled code to the Arduino.

You have now successfully flashed the firmware to the pump!

Step 4: Physical Assembly

Picture of Physical Assembly20160117_104231.jpg20160117_104309.jpg20160117_104303.jpg569c007c2e7fb626c200154b.jpeg

1. Start with the Linear Bearings, press them into the 3D printed actuator. Next attach the plastic lead screw nut.

2. Slide the 8 mm rods into place pausing half way to slide the actuator with the linear bearings onto them. Make sure it is facing the right direction! If the linear rods are at all loose super glue the ends to the 3D printed part.

3. Attach the Stepper motor to the lead screw with the rod coupler.

4. Thread the lead screw into the actuator until the stepper motor is in place and then secure it to the 3D printed part with the four M3 bolts.

5. From the bottom of the syringe holder part thread the 80 mm bolts up through the end where the syringe is going to be clamped in place.

6. Press the buttons through the front of the enclosure (If you haven't already and make sure there are wires soldered on to them first)

7. Hot Glue The LCD Module to the enclosure. Two stripes of glue on each side seem to hold it great, also make sure the wires are soldered into it first! pins 1-6, 11-16. See the image of the LCD attached to the arduino for reference, the pins on the arduino will be different in our case but in theory that's how it is connected up with the addition that the last two pins are for the LED backlight.

8. Super Glue the two bottom 3D printed enclosure pieces together to form a single piece with the top open.

9. Finish soldering the buttons and attaching the last few connections to the Arduino, stepper driver, and PCB.

10. (Optional) Hot glue the Electronics to the enclosure so they don't move around and hot glue the pins into the Arduino so they don't come undone.

11. Slip the wires of the limit switches through the lattice of the top enclosure piece and solder them in place to the PCB. Also slip the smaller end of the USB cable through it and plug it into the Arduino.

12. Solder on the limit switches in the normally open state and then zib tie them to the 8 mm rod at the correct position that they are triggered by the pump actuator at the far travel limits.

13. Test that everything works

14. If everything seems to be working super glue the top onto the enclosure

15. You are now ready to stick a syringe on there and start pumping! No more computer required. You can edit the presets in the firmware to whatever you like to make things easier for you. It is completely hackable! I hope you like it!

More photos and videos coming soon!