Single Cylinder Air Engine




Introduction: Single Cylinder Air Engine

About: Formerly the owner of a company that designed software for avionics (EFIS, FMS, etc.) and video games (Tetris, Robocop, Predator, Michael Jordan in Flight, and a number of others), I'm now retired and finall...

Before starting with this Instructable, I would like to express my sincere thanks to Instructables for featuring Single Cylinder Air Engine. I am indeed honored and humbled, again, many thanks.

Single Cylinder Air Engine runs on compressed air, a vacuum cleaner, a balloon, or even lung power. I've included three adapters in the design to interface with each. Please note the friction test video; your engine needs to pass this test before being successfully operated on balloon power.

The design incorporates two ports, one upper and one lower. When Single Cylinder Air Engine is viewed from the port side, "Wheel Piston.stl" rotates clockwise when pressure is applied to the upper port, and counter clockwise when a vacuum is applied to the upper port. As pressure or vacuum is applied to the upper port, the lower port functions as an exhaust (when pressure is applied) or an intake (when vacuum is applied). The opposite occurs when the lower port is used for pressure or vacuum.

I probably forgot a file or two or something, so if you have any questions, please feel free to ask.

Designed using Autodesk Fusion 360, sliced using Cura 2.3.1, and printed in PLA on an Ultimaker 3 Extended.

Step 1: Print and Prepare the Parts.

I printed my parts on an Ultimaker 3 Extended using .1mm vertical resolution and 100% infill.

"Base.stl" must be printed using supports. "Cylinder Piston 484.stl" must not be printed with supports.

Prior to assembly, test fit and trim, file, sand, etc. all parts as necessary for smooth movement of moving surfaces, and tight fit for non moving surfaces. Depending on the colors you chose and your printer settings, more or less trimming, filing and/or sanding may be required. Please view the friction test video and review the associated description for friction testing.

Carefully file all edges that contacted the build plate to make absolutely sure that all build plate "ooze" is removed and that all edges are smooth. I used a flat jewelers file and plenty of patience to perform this step.

Study "Assembly.stl" and "Assembly Exploded.stl", carefully noting the locations and positions of the various components as assembly proceeds.

Step 2: Install the Piston Rod and Piston.

Slide "Rod Piston.stl" into "Base.stl" carefully noting the orientation of the hole in "Rod Piston.stl".

Next, press "Piston 484.stl" onto "Rod Piston.stl" until it is exactly 38mm from the free end.

Step 3: Install the Valve.

Slide "Valve.stl" into "Cylinder Piston 484.stl" carefully noting the orientation of the holes in the valve surface.

Step 4: Attach the Cylinder to the Base.

With the valve installed in the cylinder, press the cylinder into the base making sure to align the piston rod with the square hole at the rear of the cylinder.

At this point it's a good idea to again check to see that the valve and piston assembly move with ease. If not, remove the cylinder and parts and trim, file and/or sand until they do.

Step 5: Attach the Wheels.

Attach "Wheel Piston.stl" and "Wheel Valve.stl" to the base carefully noting the orientation of the two small hexagonal holes in each.

Once attached, the wheels should spin with ease. If not, remove both wheels and trim, file and/or sand the hole in the base until they do.

Step 6: Attach the Piston Arm.

Attach "Arm Piston.stl" onto "Rod Piston.stl" using "Pin Arm Piston.stl". "Arm Piston.stl" should swing freely once installed.

Next, attach the other end of "Arm Piston.stl" to "Wheel Piston.stl" using one of the two "Pin Wheel.stl".

Step 7: Attach the Valve Arm.

Attach "Arm Valve.stl" to "Valve.stl" using "Pin Arm Valve.stl". "Arm Valve.stl" should swing freely once installed.

Attach the remaining end of "Arm Valve.stl" to "Wheel Valve.stl" using the remaining "Pin Wheel.stl".

Step 8: Break In.

I printed and attached "Adapter Vacuum.stl" to the lower port of my Single Cylinder Air Engine, then attached a vacuum cleaner hose to the adapter.

When the vacuum was turned on, I nudged "Wheel Piston.stl" clockwise (as viewed from the port side), and off it went. Depending on how well the parts were sanded/filed/trimmed, this break in period may take anywhere from a few minutes to an hour.

The video is an earlier prototype in slow motion.

Good luck and I hope you like it!



  • Creative Misuse Contest

    Creative Misuse Contest
  • Tiny Home Contest

    Tiny Home Contest
  • Water Contest

    Water Contest

18 Discussions

I printed with 20% fill it’s ok or I must print it again with 100% fill and one more question must I print one of the stl files two times? I am waiting for your replay thanks

1 more answer

I never tried to print at 20%, but you need 100% to minimize air leaks in the cylinder, piston and valve. Print 2 "Pin Wheel.stl", and one each of the remainder.

Hope this helps!


I'm not sure what you mean by "works perfectly?" While the engine does indeed work, this engine will never "work perfectly" due to air (leaks) and friction losses. When printing this design, all the parts must be carefully printed and filed/sanded in order to minimize these losses, but neither (air nor friction losses) will be ever be "perfect".

I've printed over 50 of this design and the various incarnations located here:,



and here:

They do work, not perfectly, but they do work and they do indeed require meticulous printing and assembly. If you are having any specific problem with the design, please feel free to ask and I'll do my best to assist.

Love the design, I printed a one cylinder wobbler a couple of years ago and really enjoyed it looking forward to printing this one. Will you be posting your four cylinder version? I saw it on YouTube it looks great!

1 reply

Thank you very much, I will be looking forward to seeing your results!

The four cylinder should be coming soon, it's a little more complicated than this one. And thanks, glad you like it also!

Thanks very much, gzumwalt!! Rotating the parts 45 degrees did the trick!! I can now start printing the parts and I'll let you know the results after some time when the engine will be running!

Thanks again, HHarry14

1 reply

You are very welcome!

I am glad I could be of assistance, and I am really looking forward to seeing your results!

Hi gzumwalt, Thank you for your reply! I use Cura 15.04.6 and it works fine. When I load "Base" or "Rod Piston" the colour of the parts is dark grey and a gcode cannot be made. Descaling to 0.92 changes the colour into green/yellow after which I can make the gcode. I understand that these parts won't fit after descaling, but what can I do to solve this problem? Regards, HHarry14

1 reply

Well I've seen that before, when the part is "dark grey" it is indicating it is not entirely on the build plate which doesn't make sense unless you build area is quite small.

Did you try rotating the parts 45 degrees (e.g. corner to corner)? Also, are the parts flat on the build plate?

A very nice project indeed, thank you very much! I started making gcodes of the different parts. However, Cura wants to descale "Base" and "Rod Piston" from 1.0 to 0.92. This means that the rod will not fit the piston. I don't know the consequences for Base. What can I do now? It would be a pity if it won't work. Regards, HHarry14

1 reply

Thank you very much, I'm very glad you like it!

What version of Cura are you using? I use 2.3.1 and Cura doesn't scale anything unless I scale it using the scale command. And from 1.0 to .92, that's a substantial scale down.

You are correct that the rod will not fit the piston, as well as the base. Also, the cylinder, wheels, valve, etc. The reason is the gaps between the parts are being scaled down as the parts are scaled down, which will dramatically increase the amount of filing and sanding.

Because this project is already a tight fit (in order to hold all the components together under air pressure and reduce air waste), any scaling down will probably result in it not working properly.


1 year ago

love he dynamic nature of your project. Well done

1 reply

Many thanks, glad you like it!

That is cool! I had to make an air engine back in high school using a lathe and mill. Was a fun project.

1 reply

Thank you very much, I am very glad you like it!