Skip to content
Ahmet Çelik
← Back to Projects

Whitworth Quick-Return Mechanism

A 3D-printed, stepper-driven Whitworth quick-return linkage that delivers a ~2.4× faster return stroke, validated against MATLAB and Siemens NX simulations.

  • Siemens NX
  • MATLAB
  • Arduino
  • 3D Printing
  • Dynamics

A team dynamics project for MECH 206 at Koç University: design, build, and analyze a Whitworth quick return mechanism, a single-degree-of-freedom linkage that turns steady rotary motion into a reciprocating stroke that is slow on the way out and fast on the way back. The result was a fully 3D-printed, motor-driven prototype whose measured motion was checked against both a Siemens NX motion simulation and a hand-derived MATLAB model.

Assembled 3D-printed Whitworth mechanism wired to an Arduino and stepper driver

What it does

The Whitworth mechanism is the classic linkage behind shaping and slotting machines. A motor spins a crank at constant speed; the crank pin rides in the slot of a connecting lever, which drives a ram back and forth. Because the slot geometry sweeps the forward and return halves of the cycle through unequal crank angles, the tool moves slowly during the cutting stroke and quickly on the return, saving time without speeding up the cut. The whole system has one degree of freedom, so once the crank angle is fixed, every other position is determined.

Kinematic schematic of the quick-return linkage

Design

The full assembly was modeled in Siemens NX, with revolute joints for the crank and connecting lever and a slider joint for the ram. Touch-align constraints defined how surfaces interact as the crank drives the system, and motor-mount holes were sized directly in the platform to seat the physical stepper. During modeling we swept different crank radii in CAD to see how stroke length and return speed responded; this is what dialed in the quick-return effect.

Siemens NX CAD render of the full assembly

Annotated crank, lever, and ram geometry

Manufacturing

Every part was FDM 3D-printed in PLA (1.75 mm filament) with a gyroid infill. The gyroid’s continuous, curved cell walls give near-isotropic strength and spread mechanical stress evenly (no sharp internal transitions to concentrate load), which matters for the moving, load-bearing links while keeping weight and print time down. Tolerances were tuned so that 6202 ball bearings press-fit cleanly into their printed seats, which is what let the assembly run smoothly.

The four printed links that make up the mechanism:

Crank disk with drive pin
Crank disk with drive pin
Slotted connecting lever with bearing eye
Slotted connecting lever with bearing eye
Ram slider block
Ram slider block
Platform with motor mount and Arduino seat
Platform with motor mount and Arduino seat

Actuation and control

A 28BYJ-48 5 V stepper motor driven by a ULN2003 board and an Arduino Uno turns the crank at a constant 15 RPM (≈ 1.57 rad/s). A stepper was chosen specifically for its precise, repeatable speed and position control, which is what makes the quick-return asymmetry measurable. The required drive torque worked out to about 34.3 mN·m, enough for smooth, consistently-timed strokes.

Arduino Uno, 28BYJ-48 stepper, and ULN2003 driver

The asymmetry shows up directly in the numbers; the return stroke runs roughly 2.4× faster than the forward stroke:

vreturnvforward0.32 m/s0.135 m/s2.4\frac{v_{\text{return}}}{v_{\text{forward}}} \approx \frac{0.32\ \text{m/s}}{0.135\ \text{m/s}} \approx 2.4

Modeling and analysis

The motion was worked out three ways and cross-checked.

Kinematics. Positions were tied together with a vector-loop equation,

r1+r2+r3=0,\vec{r}_1 + \vec{r}_2 + \vec{r}_3 = \vec{0},

then differentiated for velocity and acceleration. Because the crank pin slides inside the rotating lever slot, the acceleration analysis carries a Coriolis term (2ω×vrel2\,\vec{\omega}\times\vec{v}_{\text{rel}}) from the rotating reference frame.

Vector-loop diagram overlaid on the mechanism

Kinetics. Free-body diagrams for the crank, connecting lever, and ram were built and solved with Newton’s second law. The crank rotates at constant speed, so its net moment is zero; the connecting lever, which does have angular acceleration, needed its moment of inertia computed (treating the crank as a disk, I=12MR2I = \tfrac{1}{2}MR^2, with mass 73.1 g and radius 57.5 mm).

Free-body diagram of the crank
Free-body diagram of the crank
Free-body diagram of the ram
Free-body diagram of the ram

Results

An 8-second Siemens NX motion simulation (0.01 s steps, constant 1.57 rad/s), the MATLAB model built from the derived equations, and a MATLAB motion-tracking pass over video of the running prototype were all overlaid and compared. The curves line up on the quick-return signature (a long, gentle forward stroke and a short, sharp return), and the crank’s kinetic energy stays flat, as expected for constant angular velocity. Remaining gaps trace back to mechanical tolerances and backlash, unmodeled friction, tracking noise, and the rigid-link assumption.

Ram velocity vs time, showing the quick-return asymmetry
Ram velocity vs time, showing the quick-return asymmetry
Ram position, velocity, and acceleration vs time
Ram position, velocity, and acceleration vs time
Kinetic energy of the ram and connecting lever vs time
Kinetic energy of the ram and connecting lever vs time
MATLAB video motion-tracking of the ram path
MATLAB video motion-tracking of the ram path

My contributions

This was a five-person team project; within it, I owned:

  • Project framing: the introduction, working principle, and real-world context (shaping and slotting machines).
  • Motor torque analysis: determining the ~34.3 mN·m drive torque needed for smooth, consistently-timed strokes.
  • MATLAB trajectory simulation: animating the ram’s motion over a full cycle and confirming the slow-forward / quick-return behavior matched the theoretical kinematics.
  • Planar kinematics derivation: contributing to the position, velocity, and acceleration vector-loop analysis.
  • Experimental validation: leading the comparison of the physical mechanism’s tracked motion against the theory and the NX simulation.

What I learned

  • The full design-to-manufacturing pipeline: idea → Siemens NX CAD → functional 3D-printed prototype.
  • FDM printing in practice: gyroid infill for a strong, light part, and the tolerancing needed for press-fit bearing seats.
  • Embedded motor control: programming an Arduino to drive a stepper at a steady, known speed.
  • MATLAB as an analysis tool: kinematic, dynamic, and energy plots plus video-based motion tracking.
  • Reconciling theory with reality: quantifying where a clean rigid-body model diverges from a real, printed mechanism, and why.
  • Integrating mechanical and electronic subsystems into one working device.

Details

  • Course: MECH 206, Dynamics, Koç University
  • Type: Team term project (5 members)
  • Tools: Siemens NX, MATLAB, Arduino, FDM 3D printing
  • Hardware: 28BYJ-48 stepper · ULN2003 driver · Arduino Uno · 6202 bearings · PLA
  • Date: June 2025

The five-person project team with the course TA