Programmable Air

A hardware kit to experiment with inflatable and vacuum based soft robotics.

Similar projects worth following
Experimenting with inflatables involves a lot of experimentation as a part of the design process. To do any repeatable experiments with inflatables, a programmable air source is required. Programmable Air a maker-friendly, cost-efficient programmable air source. It is cheaper and easier to use than anything else out there.

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:

  • Cheaper pump: The current pump at ~288$ is overpriced if not necessarily overspec'ed. I'm confident a replacement would be available for one tenth the cost.
  • Cheaper valves: High switching rate is not necessary for most applications. The current valves cost ~175$. An acceptable replacement would be this at ~10$. Since pressure is controlled by PWM of the valves, this may lead to some issues if these actuators can't be driven fast enough. Some slack can be made up for by adding a "capacitor" after the valve. But, if the actuation time is of the order of hundreds of milliseconds, I may need a different approach. One such approach can be servo driven drip knobs. Another approach could be a linear actuator driving a plate covering a slit
  • Get rid of the power boards: There's no need for a 24V in which then gets converted to 12V and 5V on board. It adds bulk and points of failure. Separate 12V and 5V wall warts will be much more reliable and cheaper. Cost saving ~20$
  • Get rid of mosfets: A ULN2803 would be just as well suited to the task at a fraction of the price. It would also be much more reliable against electrostatic shock.
  • Cheaper air pressure sensors: The same vendor makes pressure sensors at a forth the price, which only need minimal external circuit to become nearly as accurate. This would add complexity to the first design of the build but bulm manufacture would benefit from the cost saving.
  • Cheaper arduino alternative: An arduino mega is overkill for this. Any atmega324 based boards is sufficient

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...

Read more »

JPEG Image - 386.92 kB - 04/22/2018 at 00:52


  • 1 × Arduino Nano
  • 2 × Air pump
  • 12 × Pneumatic Valves
  • 4 × Air pressure sensors

  • Many updates!

    Amitabh Shrivastava08/26/2018 at 16:48 0 comments

    It's been a long time since the last update! Apologies. Life got in the way. But I've been making slow and steady progress. I got PCBs manufactured, updated and re-updated the design, moved to a 'better' pressure sensor amplifier and showcased the project in a fest. And of course, we finally have a logo!

    Finally I'm at a point where I can manufacture 20 units and get them into the hands of makers in the coming weeks. The updated PCBs are on their way from China, and most components are in stock. The BOM comes up to around 65$ including shipping, so I'm planning to sell these kits for <100$.

    The website will be up and alive soon. Look out for I want to spend time making tutorials next. I want to make it as easy as possible for people to get started with the kit.

  • Pressure sensor working! New fancy PCB!!

    Amitabh Shrivastava05/02/2018 at 05:11 0 comments

    I'm looking into using an instrumentation amplifier like INA125 instead of LM10CN+HX711. The cheapest instrumentation amp I could find is 7$, a hefty 3$ more than the HX711+LM10CN setup. Multiply by three/four sensors per kit and that's 10$. not sure if math makes sense. Note that the resolution of data gathered does not matter for this decision(an instrumentation amp would use the Arduino's 10bit ADC vs the 24 bit ADC on HX711), because the data will be corrupted with enough noise that anything above 8 bit resolution should not matter.

    I also decided to redesign the boards to be less than 100x50mm in size so that they can be easily manufactured in small batch runs from PCB manufacturers. 100x100mm panel size seems to be a universal cutoff for price variation(at least when it comes to hobby type boards). I utilized this avenue to add M3 mounting holes and standardize the berg stick connectors better.

    After using the board for a bit, I realized that most applications call for less than three air channels and I was using the fourth channel almost exclusively for IO. So I put two buttons and a few neopixels on the master board using up the pins from the fourth channel. Now the slave boards can only dock to the bottom or sides of the master boards, and not to the top. The top has easily accessible power connection, USB, buttons and neopixels. I also added LEDs to indicate the state of the pumps and valves. And I put the pumps on analogWrite pins for the atmega328. This will allow me to easily control the pumping speed.

    As an additional fun challenge, I decided to only use curved angles in the PCB traces. I think the PCBs came out looking rather sharp. On the practical side, since I manufacture PCBs with a CNC the lack of sharp corners translates to quieter, less jerky operation while manufacturing.

    Working with Balloons - Case for flow meter

    Programmable Air gets feedback from a pressure sensor. This is because I was following an unwritten intuition that the pressure inside an inflatable is proportional to the volume of air pumped in. Boy! is that intuition wrong! For rubber inflatables like latex balloons or thin walled silicone the pressure initially increases with the air flow but then starts decreasing. The balloon is more of a flow driven device than a pressure driven device. To control something like this a flow meter makes much more sense. The initial case against a flow meter was because of leaks. It makes sense to have a flow sensor to use in conjunction with a pressure sensor as well. I'm on the lookout for a cheap flow sensor.

    Result: Flow sensors are too expensive! Like 80$ for a cheap one. Not even gonna think about using it for a while.

  • Some tests

    Amitabh Shrivastava04/22/2018 at 00:45 0 comments

    I'm still having issues with the 2SMPP03 pressure sensor. But I went ahead and used the motors and valves to make some simple projects.

    Basic pick and place:

    Universal Vacuum Gripper

    The next step is to use an instrumentation op-amp or HX711 to get pressure readings from SMPP-03.

  • v0.1 PCB design and test

    Amitabh Shrivastava04/22/2018 at 00:40 0 comments

    v0.1 PCB design

    Used Aiyima pumps and nano on master board. The slave board has pressure sensor and three two way valves. Upto four slave boards can attach to a single master board, as shown in mock-up below.

    Learnings from design and manufacture:

    The rated current for DC motors can differ highly from the actual current consumed. While the motors are rated at 350mA, a 0.8A transistor blew up while trying to supply enough current to it. This could be because of high stall/startup current. v0.11 will have TIP120 or FET rated to at least 2A. The valves are rated at 0.11A so, using a 2222 transistor seems like a safe bet because they can handle peak currents of up to 0.8A(a 7x margin). Because these are much cheaper than TIP120, it makes sense to use them.

    As a result of design oversight, the was no 5V power connection from master to slave board. While 12V input to slave board can be converted to a clean 5V with a relatively cheap regulator, v0.11 will have power connections for 5V as well. Added filter capacitors to all power rails in v0.11.

    I manufactured the PCBs in an OtherMill CNC. It is the fastest way I have found to do small run quick prototypes. Designing for OtherMill manufacture is a completely different game than designing for production from a PCB fab house. Particularly, OtherMill PCBs are constrained to maximum two layers and vias are not plated. Also the tolerances have to be relaxed to allow for easier production. All in all this means you have to be a lot smarter, using minimum number of vias and distributing your components further out.

View all 4 project logs

Enjoy this project?



Noeh Chance Kim wrote 07/22/2020 at 08:45 point

I am a tech geek and video game lover who loves to share information about his favorite topics that are already on hype over the internet on various reputed portals... <a href="">rate my professor</a>

  Are you sure? yes | no

anonymouse4545677690- wrote 07/16/2020 at 12:00 point


  Are you sure? yes | no

anonymouse4545677690- wrote 07/16/2020 at 11:58 point


  Are you sure? yes | no

morgan wrote 07/16/2020 at 03:51 point

Howdy Amitabh, I've finally jump on the next batch to get one and curious if you or anyone you know has tackled a solder paste dispenser?

  Are you sure? yes | no

James Avery wrote 05/07/2019 at 08:38 point

Hey! This project is great! We were always put off the softroboticstoolkit for the same reasons you listed, and we have avoided getting one in our lab, but this kit looks interesting! You should submit to the softroboticstoolkit competition this year if you arent already considering it :)

  Are you sure? yes | no

mel plett wrote 06/06/2018 at 20:20 point

do you have any info on PCB for this project?

  Are you sure? yes | no

builder4brick wrote 07/11/2018 at 18:31 point

Oh yeah, it's all in the github.

  Are you sure? yes | no

Nelson Phillips wrote 05/30/2018 at 09:15 point

Does this help,

Could cater  for a different pressure range if needed.

  Are you sure? yes | no

builder4brick wrote 07/11/2018 at 18:31 point

Thanks! I used a similar approach for a pressure sensor in the new PCB.

  Are you sure? yes | no

Michael Barton-Sweeney wrote 04/23/2018 at 01:33 point

Nice project!

  Are you sure? yes | no

Amitabh Shrivastava wrote 04/23/2018 at 01:41 point

Thanks! :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates