← Back to projects

Beam Engine | Control Arms & TPU Piston

Assembled 3D-printed four-bar beam engine with green links and piston on a black base, stepper-driven wheel at right
The finished machine (four-person team build)

Results at a glance

  • TPU piston: many PLA versions never fit; the TPU one stretched to fit, never came loose in motion, and printed in 1 hour instead of 2.
  • Control arms: redesigned after the first narrow-neck links proved weak in motion. Added material for stiffness and a better bearing seat.
  • The team’s finished machine ran on a stepper motor with button and hand-distance speed control.

ME 478: Automated Manufacturing, UAB, Spring 2025 · Four-person team project

Team project: Our four-person team built the machine together. I made the control arms (the crank and piston links) and the TPU piston. The wheel, center ground link, platform, and Arduino controls were team work.

Role

Team member responsible for the control arms and the piston of a 3D-printed four-bar beam engine.

Challenge

Build a working four-bar “beam engine”, really a beam pump since nothing burns, driven by a NEMA 17 stepper motor, with 608-2RS ball bearings at every joint. A rigid printed piston in a moving four-bar mechanism has almost no room for fit error, and printed links have to stay stiff while the mechanism runs.

What I did

  • Control arms: The crank link (137.09 mm hole to hole) and piston link were drawn with rounded corners so the printer doesn’t leave sharp, stress-concentrating corners. My first links had a narrow neck that saved print time and material, but once assembled and moving they were too weak. The redesign added material along the link for stiffness, plus an extrusion that gives the ball bearing a better seat.
  • TPU piston: We printed many PLA pistons, and none fit right. I switched just the piston to flexible TPU so it could give with the motion and keep the four-bar working. It stretched to fit, never dislodged during motion, and cut print time from 2 hours to 1.
  • Print setup: Printed the piston on Bambu Lab hardware in Bambu Slicer, using an Archimedean spiral infill to follow its round, hemispherical shape, with auto-generated tree supports to cut wasted material.

What the team did

  • Switched from a servo (180° limit) to a stepper motor, and moved from one bearing to bearings at every joint instead of pins.
  • A small proof-of-concept print showed the piston hitting the ground at the bottom of its stroke, so the piston was shortened. The piston casing was removed to keep a true four-bar mechanism.
  • Designed for printing: the platform printed separately from the ground links (no supports), holes oriented parallel to the build plate, PETG for press fits, and a wheel orientation that printed in 1 h 57 min instead of 2 h 53 min.
  • Arduino controls: buttons for clockwise, counter-clockwise, and alternating motion, plus an ultrasonic sensor mode that speeds up the motor as your hand gets closer.

Results

  • TPU piston: stretched to fit and never dislodged in motion, at half the print time (2 h → 1 h).
  • The TPU piston idea later led to the TPU nose cone tip: UAB Rocketry: TPU nose cone.
  • Mechanism design
  • SolidWorks
  • TPU / PLA / PETG printing
  • Team build
TPU piston being flexed by hand next to a rigid PLA piston of the same design
PLA vs. TPU piston (same design)
SolidWorks render of the crank link with rounded ends and bearing holes
Crank link CAD
Bambu Slicer screen showing the piston with tree supports
TPU piston in Bambu Slicer
SolidWorks assembly of the full beam engine
Full SolidWorks assembly (team)