Programmable Air is designed with maker friendliness in mind. What this means to me is cost effectiveness, hackability, and making the mundane seamless. I started by researching the cheapest air pumps, valves, and pressure sensors out there. I ordered a bunch of them and played around until I found the best bang for buck components that work well together. 

I'm still testing and redesigning the project but the main idea has set. There will be a central control board with a microcontroller and two air pumps. The air pumps I use are Aiyima brand medical booster pumps. They can generate vacuum and high pressure air as well. So, the system is just as compatible with high pressure as vacuum. Although, the pump really shines at generating vacuum. 

Valve boards can connect to the master board by snapping on to connectors on the sides. Up to four valve boards can connect to a master board, one on each side. Each valve board has three valves that can be controlled individually. This gives  full control of a air channel, allowing me to push high pressure air, pull vacuum or vent to atmosphere. The valve boards will be powered by the master board and will have no micro-controller. 

IO boards can snap on to any unused connectors for the valve boards and provide buttons and led feedback. Alternatively a perf board can be attached to the unused connectors to provide pin breakouts and connect to other peripherals. 

Still not convinced? Slidedeck

What's wrong with the current solutions?

Pneuduino: link

Not available for purchase. Potentially fallen out of development(last commit on github was about two years and the primary engineer has graduated out of the program.)

Fluidic control system: link

Truly designed by researchers for reserchers. Ugly. Complicated to setup. Needlessly expensive. BOM

Methods of potentially reducing cost:

The weakest link in this setup however is the mess of jumper cable connections. There is no justifiable reason for a beginners kit to be this complicated to setup especially when the cost can be reduced simultaneously by making the setup into a PCB.

Let's start making!


The common pressures are of the range -0.5 atm to 2.5 atm. Ideally we'd want to work in this entire range. Ideally, the pressure profile would be editable over a web interface, without any software/driver installation.

Learning basic fluid mechanics and the lingo of the field

Choosing a pressure sensor is tough! There's far too many choices and every datasheet seems to have come from a different universe. Who uses hectoPascals?! Here's some bare minimum info you need before searching for sensors:

Minimum Viable Product

The problem to be solved here is reducing cost without compromising on function. To reduce cost, component specifications have to be matched. The max pressure deliverable by the motor should be close to the pressure limits of the sensor. Given dozens of choices for sensors, motors and valves this is not an easy exercise. Especially, when we're aiming at a moving target specification.

To make life easier, I decided to go for following minimum specifications

Evaluating off the shelf components

ItemInner Dia EqvVoltageLinkCost per itemRemarks
Similk aquarium +pump3/16"6VAmazon4$
DIminus aquarium +pump3/16"6VAmazon4.5$
Medical -pump3/16"12VAmazon9$
Square Medical -pump3/16"12VAmazon11$Low stock
Ohaha tube connectors3/16"N/AAmazon8$/set of hundred connectors
Aquarium -pump3/16"5-12VAmazon10$
Pink-day -pump3/16"12VAmazon5$Slow shipping
Woolf -pump3/16"3-6VAmazon4$Slow Shipping
Valve 2way3mm5VAmazon7.5$
Omron +-pressure sensor3mmWheatstoneDigiKey8$Needs HX711 or INA125 to work with arduino
3 way valve3/16"12VElecrow2.5$
2 way valve3/16"12VMPJA2.95$Reused components. Not scalable.

Choice of pressure sensor: 2SMPP03

The most expensive component in the entire setup is a pressure sensor. Since one pressure sensor is required for every pneumatic channel, the cost scales linearly with number of channels. Pressure sensors that work in <-0.5 atm to >+0.5 atm range are relatively expensive since few large industries demand such a sensor. The cheapest such sensor I could find is 2SMPP03 by Omron electronics. It is priced at <7$/per unit for 5 units and while it needs additional circuitry to work, the effort is well worth it. The cheapest sensor that works standalone is at least 30$/per unit at 5 units. The rest of the system has to be designed around this part as this has the largest cost savings associated with it.