Momentary cantilever-beam button

12 min readUpdated Jun 2026

A momentary button is a spring that doesn't look like a spring. You press it, it sinks a few millimeters, it makes contact while you hold it down, and the moment you let go it springs back on its own. There's no metal coil and nothing to buy: the return comes from the elastic bending of a few cantilever beams printed into the same part. The whole trick is getting those beams to store energy as they flex and give it back without fatiguing, without delaminating, and without staying sunk. And in FDM that isn't free: you design it into the arm length, into their orientation relative to the layers, and into a hard stop that almost nobody draws.

The feel lives in the stiffness of the arms, not the travel

What you feel when you press is a spring rate. The button cap rests on one or more cantilever arms, and pressing flexes those arms: they work in pure bending, with the outer fiber at the root in tension and the inner fiber in compression. As long as you stay below the material's elastic limit, the return force grows linearly with how far the button sinks. It's an approximately linear spring — as long as the deflection is small compared to the arm length — and its stiffness is set by the geometry of the beam.

The rate of a cantilever loaded at the tip is k = 3EI/L³ per arm, where E is the material's modulus, I the section's moment of inertia, and L the free length of the arm. Every design lever falls out of that, and it's worth reading the exponents before you touch anything. Length enters as a cube: doubling L divides the stiffness by eight. The section enters through I, which for a rectangle goes as the cube of the depth measured in the bending direction — careful, that's not the vertical layer thickness, but the arm's dimension in the plane it bends in — so trimming that depth softens it quickly, though not as fast as lengthening it. And the number of arms adds stiffnesses in parallel: two identical arms give twice the force of one, provided the cap loads on center and the arms are arranged symmetrically; otherwise the cap rocks and the sum stops being clean.

The underlying mistake is believing a stiffer button comes from giving it more travel. Travel doesn't appear in k. You set the sink depth from ergonomics and from how much movement the contact underneath needs; the feel — soft, firm, or hard — you tune with length, thickness, and number of arms. If you want a softer button without changing what sinks, lengthen the arms or use fewer; if you want it firmer, shorten them or add one. Travel and force are independent knobs, and mixing them up is what leaves you with a button that's stiff and short, or soft and long, when you wanted the opposite.

diagram
The three levers of feel stiffness (k = 3EI/L³ per arm); travel is a separate knob that doesn't enter k
The three levers of feel (cantilever, k = 3EI/L³ per arm)
If you change… The stiffness… For what
Arm length L ∝ 1/L³ (dominates) soften a lot without touching the section
Depth in the bending direction ∝ depth³ within I fine-tune the feel without losing usable length
Number of arms linear sum (in parallel, if loaded on center) raise force while keeping each arm relaxed

Orient the arms in the plane of the layers

This is where the printed button parts ways with textbook mechanics. An FDM part is anisotropic: strong along the beads, weak between layers, where it's held only by the weld of one layer to the next. A flexing cantilever arm is exactly the case that handles that weakness worst, because the peak stress lives in the outer fiber at the root, repeated on every press.

If you print the button on edge — with the layers stacked in the same direction the arm is going to bend — the tensioned outer fiber at the root lands right on a bond line between layers, which is the material's weak link. The arm doesn't break by bending of solid plastic: it gives way at that bond, opening between two layers like a clean crack, often within a few presses. Failure at the layer line is the dominant fracture mode of any printed flexure, and a momentary button is a flexure that's going to take thousands of cycles.

The rule is to lay the part down so the arms flex in the plane of the layers (loading in XY), so the bending follows the beads along the whole arm instead of loading the bond between them. Almost always that means printing the button lying flat, with the sink axis parallel to the bed. If the assembly geometry forces the opposite orientation on you, reinforce the interlayer weld at the root — raise the temperature a few degrees, slow down, and cut the part cooling fan so the new bead doesn't cool before it welds to the one below — but knowing it won't match a properly laid-down arm. The print orientation of a flexure isn't a finishing detail; it's the difference between lasting years and failing the first afternoon. It's worked out in Layer orientation for motion.

A hard stop to absorb the overtravel

The user doesn't ration the force. They're going to press the button all the way down and, if you let them, past the bottom. Without a physical limit, that force gets absorbed by the arms bending further than they should, and there two bad things happen, both from exceeding the elastic limit.

In the short term, a sharp press can drive the strain at the root above what the material can take and snap the arm outright. In the long term, and more insidious, there's creep: plastic loaded beyond its elastic zone flows slowly and doesn't fully recover its shape. Press after press, the button stays a little more sunk each time, until one day it no longer comes back and stays in, actuated forever. A momentary button that stops returning is almost never a broken arm; it's an arm that has crept.

The defense is a mechanical end-of-travel stop: a shoulder on the cap or the stem that hits the guide once the arm has flexed just enough, within its elastic range, and won't let it bend a tenth of a millimeter further. Past that point the finger's extra force is taken by the stop — compression against a solid wall, which FDM handles without trouble — instead of the base of the arm. Size that stop so it makes contact a hair before the beam reaches its design allowable strain, not its fracture strain: as with any printed flexure, the strain you can use is taken well below the material's failure value — in PLA, on the order of 1% against 4–7% at fracture; PETG and, above all, TPU allow much more. And give the stop a generous contact face: that shoulder takes an impact on every full press, and if you concentrate it on a small edge it'll end up wearing or creeping itself. The stop turns a button with an expiry date into one whose wear you never notice.

Guide the stem: free play, but only just enough

The cap has to sink straight and return straight, and for that it usually carries a stem that slides inside a guide or a hole in the housing. That joint is a sliding fit, with the same rules as any other moving part, and it has two failure modes that pull in opposite directions.

If the clearance is too tight, the stem rubs against its guide and seizes. Remember that the printed hole comes out narrower than its nominal dimension and the stem thicker than its own, so zero clearance on screen is interference in the part: the button goes in tight, slows the return or simply doesn't come back, and the friction ruins the smooth feel you calculated with k. You need a free fit per side, deliberately loose — in FDM, on the order of 0.15 to 0.30 mm per side as a starting point — so the arms' return force isn't spent overcoming friction.

But too much doesn't work either. A stem that's too loose in a short guide rocks: press off-center and the cap tilts, the stem cants in its bore and jams sideways, wedged diagonally instead of sinking straight. The cure isn't only tightening the clearance, it's giving the stem enough guide length — a long guide tolerates more clearance without rocking than a short one — while accepting the trade-off: the longer the guide, the more surface rubs and the more friction the spring has to overcome on the return, exactly the enemy of the previous paragraph. Find the balance: the minimum guide that prevents rocking and the minimum gap that slides clean without rubbing, no more and no less, and get it by measuring your printer rather than guessing. The full procedure — clearance per side, measured rather than nominal hole, how to calibrate your number — is in Tolerances for moving parts.

The material decides how many cycles it lasts

A momentary button isn't a joint you assemble once: it's a beam you're going to bend and release thousands of times, and that puts it squarely in fatigue territory. The question isn't only whether the arm survives one press, but how many it withstands before the repeated bending nucleates a crack at the root and propagates it until it breaks. No thermoplastic has a true fatigue limit, so the life is always finite: the design consists of pushing that cycle count far enough that the button dies of old age, not of fatigue.

PLA is stiff and gives a good E, which helps the return force, but it's brittle and fatigues poorly: with thin, heavily loaded beams, it cracks in relatively few cycles. PETG stretches more before breaking and tolerates repeated bending better, but it's still a thermoplastic that fatigues. The combination that fails typically is thin beams in PLA: a button that works perfectly the first few times and snaps at the root within a few weeks of use. There are two ways out depending on what the button is for. For many daily actuations, lower the strain at the root — long arms and generous sections working far from their limit, not thin arms at the edge — or switch to an elastomeric material like TPU, which flexes enormously without coming near its failure point and makes fatigue irrelevant in exchange for less return force and a softer feel. For a button used occasionally, PLA or PETG with relaxed geometry are enough.

Watch the service temperature too if you leave the arms preloaded at rest. PLA creeps slowly even within its elastic zone when the load is sustained and the surroundings warm up — its glass transition is around 55–60 °C — so a button inside a car in the sun or next to warm electronics can sink under loads that would be safe when cold. A button that returns on its own is almost never loaded at rest, so the risk is lower; but if your design leaves the beams preloaded to remove the initial play, that preload acts all the time, and there creep works against you around the clock.

And, as with any printed flexure, the same principle from Snap-fits that won't release holds: lengthening the arm pays off more than anything else, because it drops the root strain dramatically and moves the button away from the zone where fatigue bites. A long beam working relaxed lasts hundreds of thousands of cycles; a short, forced one is a crack waiting for the cycle that opens it.

Once you have the stiffness, the orientation, and the stop sorted out, what's left to fine-tune is always the same number: the real gap the stem slides in. Measure it once on your machine and reuse it, just as Tolerances for moving parts explains.