Introduction: Twisty Balloon Pneumatic Actuator

My name is Wyatt Felt, I'm a Junior in Mechanical Engineering at BYU.

When I saw the Harvard Soft Robot  wiggling around I was impressed at the simplicity of the actuation. I liked how the legs re-extended with their own elasticity. I wondered whether the idea could be scaled up for skeletal systems. 

I decided to make these uber-cheap, pull-type actuators out of twisty balloons. While there are still some questions of stress relaxation and control, these actuators work at least on a small scale. In theory, they can have a much greater stroke length than either air muscles or pneumatic cylinders. 

It was fun to see the tech teachers at Robogames interested in building them for their classes. If you already have an Arduino and power supply the whole actuator system can be done for under $50.

You'll need                                                                       (what I used)

Arduino or other micro-controller                               Arduino Uno
NPN Transistors (2x per actuator, 1x per pump)    TIP29C (with 1A current limit)
Micro-solenoid valves (two per leg)                           AJK-F0504 though I could've used The Jameco one
Small pump                                                                   AJK-B2703 though Ponoko has one
Leg material                                                                  Flexible plastic (PETG) or an antagonizing spring (another balloon)
Frame                                                                              5.6mm Acrylic though you can use thinner

you can order my frame and legs from

flexible tubing, with barbed tees and connectors                        Home Depot (see pictures)
High current 7v power supply or batteries
Twisty balloons
Zip ties
Small breadboard or Prototyping shield
Soldering Iron
Hot melt glue
Thin gauge wire
Heat shrink or electrical tape

Step 1: The Concept

The actuator can be modeled as a spring return bellows, pulling when deflated.

Step 2: Building Valve Structure

First thing you'll want to do is get your valves set up.

You'll need a pressure valve (that opens the actuator to the pressurized line and lets it be pulled) and an exhaust valve (to let out the pressurized air and contract the actuator).

NOTE: Most valves have work better with a certain side exposed to the high pressure. In my case, the metal side needed to be attached to the pressurized side or I got too much leakage.  I could never figure out which way the current was supposed to run on the valves (they worked both ways) so I just picked a direction and went for it.

The nubs on my valves were a little small so I stuck the connectors over them and used hot melt glue to make a nice seal.

The tee goes between the two valves and extends down to the balloon actuator. The pressure valve connects to the tubing being pressurized by the pump.

I recommend adding extensions to the wires already on the valves. Hook the two ground wires together so that you only have 3 wires extending from each valve set.

Step 3: Wiring

Because your current is way more than an Arduino pin can handle, you'll need to use some transistors.

The  transistors I used could handle 1A of current. I wound up using 5 of them for this project. (one for each valve and one for the pump).

Each control wire needs to be connected to the transistor. In my case, the blue wire  (collector) went to the positive terminal of the different components and the yellow wire (Base) went to the Arduino pin. The green wire (Emitter) is the input voltage.

There is a small voltage drop across the transistor (~.4V) so I used a 7v power supply so that the components would at least get their nominal 6v.

I mounted a bread board to the bottom of the frame where I could link all their components to their transistors and the transistors to the corresponding Arduino pins. See the example on the motor below.

Step 4: Building Frame

In order to extend, the springs need to be pulled by some other force. I used .5mm PETG that I lasercut on It was a little more floppy than I wanted it so I cut the length in half and glued the halves together with silicone.

If you wanted to use rigid legs, you would need to have a spring (or other strethed balloon) to pull against the actuating balloon.

To attach the legs to the acrylic frame. I glued legs in the slots first with epoxy but it proved too brittle so I used hot melt glue instead.

Zip ties are handy to mount the valve sets to your frame and the balloons to the central tee.

Because the air flow was so limited (and I had no accumulator), the balloons worked best when I inflated them one at a time. Otherwise, the more broken-in of the two would inflate while the other remained deflated.

Step 5: Programming

On the Arduino,
The easiest way I've found to program these complex series of valve firings is to use a function to define when to actuate each valve and then just break out of your loop at the correct times.

it looks something like this

void loop()
            if (currrentTime == extendTime) Extend(leg);
            if (currrentTime == retractTime) Retract(leg)


I've attached my actual Arduino sketch for more clarity

Step 6: The Future

I think this is a valuable platform for small robots that need long, linear strokes. With a little more research and cost, a higher pressure model of the same thing could be developed. By making the bellows into a "pull-type" actuator, you can use it in place of muscles in bio-inspired robots.

If you use this concept, or a derivative in a future build, let me know! you can find me at

It's fun to see how others take your ideas and make them better. When I made Posterbot in 2007 little did I know that it would inspire Printbot which is now in iRobot's Hall of Fame.

Arduino Challenge

Participated in the
Arduino Challenge

Robot Challenge

Participated in the
Robot Challenge