Flow Chemistry

Croatt Group DIY Flow Chemistry Setup – UNC-Greensboro

Our flow chemistry setup can be broken down into four basic areas:  1) Syringe Pumps, 2) Electronics, 3) Tubing, and 4) Code.  These four areas are summarized below with links to assembly instructions.

Summary of Parts

Syringe Pumps

The syringe pump is comprised of a 3D printed chassis & pushing block (.stl files linked below), stepper motor, nut & bolt, linear coupler, 2 steel support rods, and 2 ball bearing bushings.  The assembly instructions are later in this document.  The stepper motors are essentially the heart of the syringe pumps. Stepper motors allow the operator ease of use when dictating the flow of the system. Depending on the motor, there is a number of steps per turn, and a number of turns equals volume (e.g. 16 steps = 1 turn, 31.33 turns = 1 mL, therefore 501.28 steps = 1 mL).

Building the Syringe Pump


The stepper motor of the syringe pump needs to connect to various electronic components to be operated.  The motor controllers provide the interface between the Arduino and the stepper motor. They also provide configurations for current and torque of the system.

  • Torque & Current Settings – These are both set on the motor controller. Current setup is at 1 Amp (Sw1 & Sw2=0 Sw3=1) and torque setting is 20% (S5, S6=1). The excitation state and decay (S1-S4) are all kept at 0. These settings can be adjusted, refer to the chart on the motor controller to adjust torque and current settings.

A power supply unit (PSU) is needed to apply power to the motor controllers as well as the stepper motors. The syringe pumps can be run using a 24V PSU without the need of voltage regulators. Caution: If the PSU is higher than 32V, voltage regulators are typically required since the motor controllers’ tolerance is approximately 32V. More than 32V will possibly cause damage to and failure of the motor controllers. A plug is typically not included with the PSU so you may need to install a 3 prong power cable.

The Arduino board is the control center. It stores and runs the code. Your computer will interface with the Arduino by a USB cable in order to operate the syringe pumps via the motor controllers.

Wires, connectors, & jumpers will bring ease to the wire setup. The Electrop brand wire connectors will fit with the plugs from many available stepper motors and will minimize soldering. The wiring setup is described later in this document.

Connecting the Electronics


The tubing serves as the reaction vessel. A separate link will give some specifics based on prior suggestions from Dr. Tim Jameson from MIT.  Key features of the tubing include the tube’s internal diameter and T-joints.  Mixing is much better for T-joints than Y-joints, so depending on the desired outcome, choose the joint wisely.

Designing and Connecting the Tubing

Arduino Code

The code for the Arduino determines the rate and time or rate and volume that each individual syringe pump operates.  This is modified using the serial monitor for the Arduino via a computer plugged into the Arduino.  A modification currently underway will use a spreadsheet to generate an input for the serial monitor.

Arduino Code Options