Finally, I managed to produce our first open hardware project. The Microfluidics Controller allows us to drive 8 air pressure controllers and 8 air valves. For this we have two 4-channel Digital-to-Analog chips (MCP4728) that produce voltages from 0-5V as input for our air-pressure controllers. The air switching valves are driven using a darlington array (ULN2803). The supply voltage for the valves can be selected either through a barrel jack J1 or by connecting the Arduino supply voltage. We also added a barrel jack for the air pressure controller supply. Here is a picture of the assembled shield:
Above you can see a typical array of pressure controllers that are connected to a common manifold. As pressure controllers we use the MPV-1-P-FEE015AXL from Proportion-Air in Indiana. This particular pressure controller has an analog input of 0-5V to control the output pressure from 0-15psi. Similar pressure controllers are available for different pressure ranges (0-0.3psi up to 0-100psi). Since our DAC produces 0-5V it is important to chose the correct 0-5V command version. Also, since the flow through these valves is minimal chose the smallest inlet orfice size (0.013''). For low pressure you may need to adjust the settings of the valve to reduce oscillations (in typical microfluidics applications it is less important to reach the desired pressure quickly than to have constant pressure). The pressure controllers have a resolution of approximately 5000 pressure steps which matches well with the 12 bit DAC on our Arduino board.
The board can also control 8 air switching valves. We use them for turning on/off the pressure channels when we need quick delivery of pressure for stop and go applications. We also use them for PDMS valves that were introduced by Quake. If you need more valves just populate another MicroFluidicsController board with just the Darlington array. We typically use the Clippard ET-3M-12VDC valves (with exhaust) to drive PDMS control valves (You can also get an array of valves from Clippard that are connected to a pressure manifold EMC-08-12-XX where XX stands for the kind of valve that you need). For turning on/off we use valves without exhaust. The 12V supply for the switching valves is connected to the MicroControllerBoard through a designated barrel jack.