Spring Design Calculator
Stiffness • Shear Stress • Wahl Factor — Helical Compression Spring • Design Solver • Load Test • Fatigue • Buckling • Design Report
Display Controls
Σ Live equations — values substituted from the current spring
💡 What-if coach — what these numbers mean on the bench
These bands are yours to set. Real tolerance grades live in EN 15800 and DIN 2095/2096 as size-dependent tables, so the tool will not invent one for you.
The platen mass decides how hard a suddenly applied load hits: it sets the effective moving mass, and with it the natural frequency and the overshoot. A spring loaded through a heavy fixture rings more slowly and further.
Enter the wire data from your supplier’s datasheet. Everything the calculator needs is on this form — the strength law, the two moduli and the size range the data is valid over. Saved materials stay in this browser and appear at the bottom of both material menus. This form is SI throughout — A and m only mean anything alongside the millimetre they were fitted in, so they are never converted.
Leave m = 0 if your datasheet quotes one tensile strength for every wire size — then A is that strength. Use a non-zero m only if you have the size-dependent law. The fraction is 0.45 for cold-drawn and hardened-and-tempered carbon or low-alloy wire and 0.35 for austenitic stainless and non-ferrous wire; the tool adds 0.20 to it when you set “set removed”.
G sets the spring rate and the surge frequency; E is used only by the buckling check. Density is used for wire mass and surge frequency.
Outside the size range the calculator still computes, but flags the wire diameter as extrapolated — the same warning the built-in wires carry.
1 Overview
The Spring Design Calculator works helical compression springs in both directions. Simulate analyses a spring you describe: spring rate k, maximum shear stress with the Wahl or Bergsträsser curvature factor, deflection, spring index C = D/d, free and solid length, pitch, buckling, surge frequency, stored energy and factor of safety. Design runs the reverse problem: you state the load the spring must carry and the deflection it must give, and the tool finds wire sizes, coil diameters and turn counts that deliver it.
Everything is computed to Shigley & Mischke, Mechanical Engineering Design, chapter 10. Wire strength is not a fixed number here — it comes from Sut = A/dm (Table 10-4), so a 1 mm music wire is rated near 2210 MPa and a 6 mm one near 1700 MPa. Seven wires are stocked: music wire A228, hard-drawn A227, oil-tempered A229, chrome-vanadium A231/A232, chrome-silicon A401, 302 stainless A313 and phosphor bronze B159.
Every number the engine produces is re-checked against the published tables before release — 8,892 assertions, including an invariant sweep over 8,000 springs and the load-test rig against the closed-form step and impact responses. The accuracy record, and the twelve limitations that come with it, are published with the source and summarised in the article below under “How accurate is this calculator, and where does it stop?”
2 Describing the Spring
The simulator opens in Simulate mode with music wire, d = 3 mm, D = 25 mm, 8 active coils, a 60 mm free length and 100 N applied. The spring on the canvas is drawn to scale — one millimetre-to-pixel factor sets the wire thickness, the coil diameter and the pitch, so what you see is the spring the numbers describe. The dashed line is the solid height; watch the coils close on it as you raise the force.
Five numbers define the spring: wire diameter d, mean coil diameter D, active coils n (in quarter turns), free length L0 and the force F. Each has a stepper — type an exact value, click −/+, or hold a button to run through the range. The green fill inside the box shows where the value sits between its own limits.
Three choices change how those numbers are interpreted. End treatment (squared & ground, squared, plain & ground, plain) sets the inactive coils, and with them the solid length and the pitch — Shigley Table 10-1. End fixity sets α for the buckling check. Set removed tells the tool the spring was deliberately over-deflected in manufacture, which lifts the allowable stress from 0.45 Sut to 0.65 Sut for ferrous wire.
Your own wire. The bottom of the material menu carries + Add custom material…. It opens a form for everything the calculator needs from a datasheet: the strength law Sut = A/dm (leave m = 0 and A is the tensile strength, if that is all your supplier quotes), the allowable-stress fraction, the shear and Young’s moduli, density, the size range the data covers and the maximum service temperature. The form is SI throughout, because A and m only mean anything alongside the millimetre they were fitted in. Saved wires appear under Your materials in both the Simulate and Design menus, survive a reload, and can be edited or deleted from the link under the material name. A design document built on a custom wire says so on its face.
Six presets load real springs: a ballpoint pen spring, a light-duty spring, an engine valve spring, a heavy-duty press spring, a vehicle suspension spring and a marine phosphor-bronze spring.
3 Reading the Result
Twenty-one readout cards sit under the controls, and the same values are repeated on the canvas panel. The ones that decide whether the spring is any good:
- Spring index C should be 4–12. Below 4 the coiler cracks the inside of the wire; above 12 the springs tangle in the bin and buckle in service.
- Safety factor is τallow/τ. Below 1 the spring takes a permanent set the first time you load it.
- Travel to solid is L0 − Ls. If the working deflection uses more than about 85% of it, the coach panel says so; if it exceeds it the spring bottoms out and the canvas turns the solid-height line red.
- Buckling reads STABLE, CHECK or BUCKLES from λ = αL0/D against the absolute-stability limit.
- Surge frequency fn should be at least 20× the forcing frequency, or the spring resonates against itself.
Two learning panels sit below. Live equations types the formulas in classical notation with your own values substituted, and names the size band the strength came from. What-if coach reads those numbers back in plain language — which check failed, by how much, and what to change.
Press Calculate in the canvas dock for the full derivation: nine or ten steps from spring index through curvature factor, rate, deflection, stress, the size-based allowable, lengths, buckling and surge — each with the substituted arithmetic.
4 Design Mode — Solving It Backwards
Real spring work starts from the duty, not the geometry. Design mode takes the requirement and finds the spring.
Specify it one of two ways. Load & deflection: the force the spring must carry and the deflection it must give at that force. Two force–length points: the classic catalogue specification — F1 at length L1 and F2 at length L2. The second form fixes the free length as well as the rate, because two points on a straight line define it.
Add the material, the end treatment, a design factor ns, and optionally a maximum outside diameter (the bore it drops into) or a minimum inside diameter (the rod it slides over). Press Find Springs.
The solver walks every preferred wire size in that material's range. For each one it solves the largest spring index the allowable stress will permit, applies your diameter limits and the 4–12 index band, then sizes the coils to your rate in quarter-turn steps and works out a free length that leaves 15% clearance to solid. Each candidate is then re-analysed in full, so what you read in the table is the same engine that drives Simulate.
A ✔ row meets the design factor, the index band, the clearance to solid and the buckling check; a ⚠ row misses at least one and is ranked by how close it came. Rows are sorted by wire mass, because that is what a spring costs. Press Use on any row to load it into Simulate and take it apart.
5 Load Test — Putting the Spring on a Rig
The red Load Test button runs the spring on a simulated test bench. A spring on a bench is a second-order system, not a formula: the same load reaching the coils in a different way is a different event, and that is what the test shows.
Five procedures, each a real one:
- Apply a load — the working load, applied three ways (below).
- Load at length (F1) — the production QC test. Compress to a stated length, read the force, compare against the specification and its band.
- Spring rate verification — force at two lengths, R = (F2 − F1)/(L1 − L2). Two points cancel any error in the free length, which is why rates are measured this way.
- Block test — compress to solid, hold, release, and measure how much free length was lost. This is presetting when it is deliberate and damage when it is not.
- Durability cycling — cycle between two loads and check the spring reaches the required count.
- Overload to failure — ramp until something gives, and report which of the three limits (set, solid height, fracture) comes first.
How the load arrives decides whether the spring survives:
| Application | Control | Deflection |
|---|---|---|
| Testing-machine stroke | displacement | the static value — no overshoot |
| Suddenly applied dead load | force | ×1.85 at this rig’s damping; ×2 undamped |
| Dropped from a height h | force + impact | δst(1 + √(1 + 2h/δst)) |
One end arrested or both ends loaded? The spring carries the same force either way — force in a spring is internal. What changes is the mass that has to be accelerated: a single-ended test moves one platen plus a third of the spring, a double-ended one moves half a platen plus a twelfth. That changes the natural frequency, and with it the overshoot.
While the test runs the canvas becomes the rig: the spring animates through load, hold and release, a live load–deflection curve traces beside it against the solid-height wall and the stress at which set begins, and a strip underneath reads time, deflection, length, force and shear stress. The verdict — PASS, PASS WITH NOTES or FAIL — lands in the banner, and the full record appears under the canvas with every finding written out: overshoot, coil clash, permanent set in millimetres, buckling, fracture, fatigue life, or a load outside your acceptance band. If the spring took a set, the drawing comes back short of its free length and says by how much.
The record is attached to the design document automatically — press Report and it appears as its own section with the curve. Acceptance bands are the ones you enter: real tolerance grades are size-dependent tables in EN 15800 and DIN 2095/2096, and the tool will not invent one.
6 Fatigue, Units and Exports
Switch Duty to Cyclic and the spring is checked for fatigue instead of a single peak load. Enter Fmin and Fmax and say whether the spring is shot peened. The tool computes the alternating and mean shear stresses, builds the endurance limit from Zimmerli's data (Ssa = 241 MPa and Ssm = 379 MPa unpeened, 398 and 534 peened), and returns the Goodman factor of safety nf, the yield factor at peak load, and either infinite life or a cycle count read off the torsional S–N line.
The SI / Imp switch in the canvas dock converts every displayed value — inches, pounds-force, ksi, lbf/in, lbf·in and pounds — while the engine keeps working in SI, so no result changes when you flip it. Your choice is remembered across the site.
Report builds a printable spring design document and opens it in a new tab; use your browser’s print dialog to Save as PDF. It carries the wire material and its strength law, the specified geometry, a performance summary, a light-theme scale elevation of the spring free and under load, a design-check table that marks every requirement PASS, FAIL or CHECK with the reason, a full calculation record, and signature lines for the designer and the checker. A spring that fails a check says so on the front of the document.
CSV exports all thirty-odd parameters and results as a spreadsheet, in whichever unit system is showing. Image saves the diagram as a PNG. Reset puts every input back to its default. Right-click the diagram for the same actions — including the design document — plus Copy results, which puts the whole result list on the clipboard.
Display Controls, top-left of the canvas, hides the dimensions, the results panel, the equation or the grid — useful before exporting an image for a report. Keyboard: Tab reaches every control, the arrow keys step a focused numeric field, Enter runs the design solver from any of its inputs, and Escape closes the calculation window.
7 Explore, Practice and Quiz
Explore holds 12 illustrated concepts in three groups: Spring Types (compression, extension, torsion, Belleville), Key Formulas (rate, Wahl factor, shear stress, deflection, spring index) and Material Properties (shear modulus, wire types, surface finish, end conditions). Each has its own diagram, formula box and worked example.
Practice generates random problems — spring rate, deflection, stress with the Wahl correction, index, free and solid length, required wire diameter, required coils, safety factor, force for a given deflection and stored energy — and marks your answer with a step-by-step solution. Quiz asks five randomised questions and reviews every answer at the end.
8 Engineering Notes
- k = Gd4/(8D3n). Wire diameter rules: one step up the preferred sizes from 3 mm to 3.2 mm raises the rate by 29%, from 3 to 4 mm by 216%.
- Keep the spring index between 4 and 12, and prefer 6–9 if nothing else forces your hand.
- The curvature factor is not optional. Ignoring it under-reads the stress on the inner coil surface by 10–50%, and that surface is where spring cracks start.
- Wahl or Bergsträsser? They agree within about 1.5% over the whole usable range. Wahl is the one most textbooks print; Shigley prefers Bergsträsser for its simpler form. Both are shown at all times.
- Leave 10–15% clearance between the working deflection and the solid height. A spring that touches solid stops being a spring.
- A spring longer than about 2.6 D between flat parallel plates (or 1.3 D with one pivoted end) can buckle. Run it in a tube or over a rod.
- For fatigue duty aim for nf ≥ 1.2 and shot peen — peening lifts the torsional endurance limit by roughly 65%.
- Wire strength falls with diameter. Sizing up the wire buys less strength than the d3 in the stress formula suggests, which is why the tool recomputes Sut for every size.
- Phosphor bronze is the weakest wire here but the only conductive one — battery contacts and marine fittings, not load-bearing springs.
Spring Design Calculator — Design, Check and Load Test a Helical Compression Spring
A helical compression spring is designed by fixing four numbers: wire diameter d, mean coil diameter D, active coils n and free length L0. The rate follows k = Gd4/(8D3n) and the stress τ = KW 8FD/(πd3). This calculator solves both directions — analyse a spring you have, or size one from the load it must carry.
Everything below follows Shigley & Mischke, Mechanical Engineering Design, chapter 10. The one thing most online spring calculators get wrong is treating wire strength as a constant: it is not. Spring wire is cold-drawn, so the thinner it is the stronger it is, and the ultimate tensile strength follows Sut = A/dm. A 1 mm music wire reaches about 2210 MPa; a 6 mm one only about 1700 MPa. Every allowable stress on this page is recomputed for the wire size actually in use.
Spring Rate (Stiffness) Calculation
The spring rate or stiffness (k) defines how much force is needed per unit deflection. For a helical compression spring, it is calculated as k = Gd4 / (8D3n), where G is the shear modulus of the wire material, d is the wire diameter, D is the mean coil diameter, and n is the number of active coils. A higher wire diameter dramatically increases stiffness (fourth power), while a larger coil diameter decreases it (inverse cube). Engineers select the spring rate to match the required load-deflection characteristics of their application.
Wahl Correction Factor and Maximum Shear Stress
The Wahl correction factor (Kw) accounts for the curvature effect and direct shear in helical springs. It is given by Kw = (4C − 1) / (4C − 4) + 0.615 / C, where C = D/d is the spring index. The maximum shear stress on the wire is then τ = Kw × 8FD / (πd3). Without the Wahl factor, the stress calculation would underestimate the actual stress on the inner surface of the coil, potentially leading to premature failure. A spring index between 4 and 12 is generally recommended; values below 4 are difficult to manufacture, while values above 12 tend to tangle.
Free Length, Solid Length and the End Treatment
The deflection δ under load is F/k, or 8FD3n/(Gd4). The solid length Ls is what is left when every coil touches, and the free length L0 is the unloaded length — a value you specify, not one that falls out of the other numbers. What links them is the end treatment: how many coils at each end were squared off or ground flat, and are therefore inactive. Shigley’s Table 10-1 gives the four cases, with Na the active coils and p the pitch:
| End treatment | Total coils Nt | Solid length Ls | Free length L0 |
|---|---|---|---|
| Plain | Na | d (Nt + 1) | p Na + d |
| Plain and ground | Na + 1 | d Nt | p (Na + 1) |
| Squared (closed) | Na + 2 | d (Nt + 1) | p Na + 3d |
| Squared and ground | Na + 2 | d Nt | p Na + 2d |
Squared and ground is the usual industrial choice: it gives a flat seat that sits square in a bore and the shortest solid length for a given coil count. The gap L0 − Ls is the travel to solid, and the working deflection must not use all of it — leave 10 to 15%. A spring driven to solid stops behaving like a spring: the rate jumps to the axial stiffness of the wire itself, and whatever was pushing it usually breaks something.
Material Selection and the Allowable Stress
Spring wire is specified by its ASTM designation, and each one carries its own strength law. The allowable torsional stress is a fraction of the size-adjusted tensile strength: 0.45 Sut for cold-drawn and hardened-and-tempered carbon and low-alloy wire, 0.35 Sut for austenitic stainless and non-ferrous wire. If the spring has had set removed — deliberately over-deflected in manufacture, which leaves a favourable residual stress — those rise to 0.65 and 0.55. The factor of safety is that allowable divided by the computed τ: 1.2 to 1.5 is enough for a static load, 2.0 or more for anything cycling.
Designing a Spring from a Load and a Deflection
The forward calculation is the easy half. The real question is the reverse one: this spring has to give 100 N at 25 mm of travel and fit a 20 mm bore — what do I order? There are three unknowns (d, D, n) and only two equations, so the third condition has to come from the stress limit. The procedure:
- The required rate is fixed by the duty: k = F/δ. From two catalogue points it is k = (F1 − F2)/(L2 − L1), and the two points fix the free length as well.
- Pick a wire size from what is actually stocked, and get its Sut from A/dm and its allowable from the fraction above.
- Solve for the largest spring index that stress permits: KW(C) · C = τallow πd2 / (8 F ns). Clamp it into 4–12 and into whatever the bore or the rod allows.
- D = Cd, then n = Gd4/(8D3k), rounded to a quarter turn.
- Set L0 from the solid length plus the working deflection plus 15% clearance, then check index, safety factor, clearance and buckling. Repeat for every wire size and keep the lightest one that passes.
That is exactly what Design mode does, and why it returns a table rather than a single answer: several wire sizes usually work, and choosing between them is a judgement about cost, space and how much margin you want.
Spring Fatigue Life — Goodman and Zimmerli
A spring that cycles fails long before its static safety factor says it should. Split the load into a mean and an alternating part, Fm = (Fmax + Fmin)/2 and Fa = (Fmax − Fmin)/2, and put each through the same stress formula to get τm and τa.
The surprise in spring fatigue is Zimmerli’s finding: for wire under 10 mm the torsional endurance limit does not depend on the material, the size or the tensile strength — only on whether the spring was shot peened. Unpeened, Ssa = 241 MPa and Ssm = 379 MPa; peened, 398 and 534 MPa. Peening is worth roughly 65% more endurance, which is why every engine valve spring is peened.
Those two numbers give the fully corrected endurance limit Sse = Ssa / (1 − Ssm/Ssu), with Ssu = 0.67 Sut. Intersecting the Goodman line with the load line through the origin gives the fatigue factor of safety nf. If it is below 1 the spring has a finite life, and the cycle count comes off the torsional S–N line anchored at 0.9 Ssu for 103 cycles and Sse for 106.
Static Load or Suddenly Applied? The Factor of Two
Every formula above is a static one: apply F slowly and the spring deflects F/k. Springs in service are rarely loaded slowly. Release a dead load onto a spring and the full force is there from the first instant, while the spring can only push back in proportion to how far it has already moved. The platen sails past equilibrium, and for an undamped system the peak deflection is exactly twice the static value — the classic result. With the light damping of a real rig it lands near 1.85×.
A load dropped from a height h is worse. Equating the potential energy released to the strain energy stored gives δmax = δst(1 + √(1 + 2h/δst)), which for a 20 mm drop onto a spring with 15 mm of static deflection is about 2.6×. That factor is why a spring sized comfortably on paper closes solid the first time someone drops the load on it, and why the Load Test in this simulator asks how the load arrives before it asks how big it is.
The mass matters as much as the load. A spring loaded through a heavy fixture rings more slowly and further; loading both ends at once halves the platen mass that has to be accelerated. The force inside the wire is the same either way — force in a spring is internal — but the dynamics are not.
Load Testing a Compression Spring — What the Standards Ask For
A spring is not accepted on a calculation. It is accepted on a load test, and the test that matters is deceptively simple: compress the spring to a stated length and read the force. Everything else — rate, free length, squareness — is either derived from that or checked separately. These are the procedures a spring shop actually runs, and all five are in the Load Test on this page.
| Test | What is measured | What it catches | Where it is specified |
|---|---|---|---|
| Load at length (F₁, F₂) | force at one or two stated lengths | wrong rate, wrong free length, wrong wire | EN 15800, DIN 2095 |
| Spring rate | R = (F₂ − F₁)/(L₁ − L₂) | rate error, independent of free-length error | EN 13906-1 |
| Block (solid) test | free length lost after compressing to solid | a spring that will take a set in service | DIN 2096, presetting practice |
| Durability cycling | survival to a required cycle count | fatigue failure | duty-specific |
| Overload to failure | load at set, at solid, at fracture | which limit the spring reaches first | characterisation |
The trap in every one of them is how the load is applied. A testing machine prescribes position, so it loads the spring quasi-statically and reads the textbook force. Service does not: loads are dropped, released and slammed on. The simulator asks how the load arrives before it asks how big it is, because that is the difference between a spring that passes on the bench and one that closes solid in the machine.
One more thing worth saying plainly: tolerance grades are size-dependent tables in EN 15800 and DIN 2095/2096. Any calculator that hands you a pass/fail against an invented tolerance is guessing. This one asks you for the band and prints which one you used.
Presetting, Scragging and Permanent Set — Why a Spring Comes Back Short
Compress a spring far enough and it does not come all the way back. The wire has yielded in torsion, and the free length is permanently shorter. Spring makers do this on purpose — it is called presetting or scragging: the spring is coiled long, compressed to solid two or three times, and settles at its final free length with a favourable residual stress locked into the wire. That residual stress is why a preset spring can then be worked to 0.65 Sut where a virgin one is limited to 0.45.
The same thing happening by accident is damage. The tell-tale is a spring that used to hold and now sags: the free length has dropped, so at the same working length it produces less force. Nothing has “gone soft” — the rate k is a function of G, d, D and n, and none of those changed. The spring simply starts from a shorter free length. That is why a sagging spring cannot be revived by stretching it: pulling it back out yields it the other way and leaves it weaker still. The fix is a new spring, or a shim to restore the installed preload.
How much set? Below first yield, none at all. Above it, the wire section keeps an elastic core and the elastic springback on release leaves a residual twist — the simulator estimates it from the elastic–perfectly-plastic torsion of the wire and shows the spring coming back short by exactly that much. Run a Block test on any spring here and watch it happen.
Buckling and Surge — Two Ways a Good Spring Still Fails
A compression spring is a column, and a slender one buckles sideways instead of compressing. The test is λ = αL0/D, where α is 0.5 for both ends squared on flat parallel plates, 0.707 with one end pivoted, 1 with both pivoted and 2 with one end clamped and the other free. For steel, a spring is stable at any deflection while λ stays under about 2.6 — so roughly L0 < 5.2 D between flat plates. Past that there is a critical deflection ycr beyond which it goes over. If the geometry has to be slender, run the spring inside a tube or over a rod.
The second failure is surge. The spring has its own natural frequency fn = (d / 2πnD2) √(G/2ρ), and if the forcing frequency approaches it a compression wave travels up and down the coils. The spring stops following the load, the stress spikes far above the design figure, and it breaks. The working rule is to keep fn at least 20 times the forcing frequency. Race-engine valve springs use beehive shapes and progressive pitch to spread their natural frequency out and dodge surge.
A Worked Compression Spring, Start to Finish
Design a spring that delivers 100 N at 25 mm of compression in music wire (ASTM A228), squared and ground, to a design factor of 1.5. Nothing is known yet except the duty.
| Step | Working | Result |
|---|---|---|
| Required rate | k = F/δ = 100/25 | 4.00 N/mm |
| Try a 2.0 mm wire — its strength | Sut = A/dm = 2211/2.00.145 | 1999 MPa |
| Allowable shear (set not removed) | τallow = 0.45 × 1999 | 900 MPa |
| Largest index the stress allows | KW(C)·C = τallowπd²/(8Fns) = 600×π×4/(8×100) | C ≈ 7.9 |
| Mean coil diameter | D = Cd = 7.9 × 2.0 | 15.9 mm |
| Active coils for that rate | n = Gd⁴/(8D³k) = 81,000×16/(8×4,019×4) | n ≈ 10 |
| Wahl factor | KW = (4C−1)/(4C−4) + 0.615/C | 1.184 |
| Actual maximum shear stress | τ = KW·8FD/(πd³) = 1.184×8×100×15.9/(π×8) | 600 MPa |
| Factor of safety | ns = 900/600 | 1.50 ✓ |
| Solid length (squared & ground) | Ls = d Nt = 2.0 × 12 | 24.0 mm |
| Free length with 15% clearance | L0 = Ls + 1.15δ = 24 + 1.15×25 | 52.5 mm |
| Buckling check | λ = αL0/D = 0.5×52.5/15.9 = 1.65 vs. limit 2.57 | stable ✓ |
Note what did the work: the wire size was chosen first, and the spring index came out of the stress limit rather than being assumed. Had a 1.6 mm wire been tried instead, the index needed would have fallen below 4 and the design would have been rejected as unmanufacturable — not because the arithmetic failed, but because no coiler can wind it. That is the loop Design mode runs over every stocked wire size at once.
Why the Wahl Factor Exists
The basic torsion formula τ = 8FD/(πd³) assumes a straight wire under pure torsion. In a real helical spring the wire is curved, which puts a higher shear stress on the inside of the curve, and the direct shear adds another component. The Wahl factor Kw bumps the calculated stress up to account for both effects.
For a typical spring index C = 8, Kw is about 1.18 — meaning the inside surface of the coil sees 18% more stress than the simple formula predicts. Spring failures almost always start as cracks on the inside surface, which is exactly where the Wahl factor predicts the stress peaks. The factor is named after A. M. Wahl who derived it in the 1940s; before that, springs were designed empirically with large safety factors to compensate.
When a Helical Compression Spring Is the Wrong Choice
- Constant-force applications. A helical spring’s force varies linearly with deflection. If you need constant force (camera shutter, retractable measuring tape), use a constant-force spring (flat coiled strip) instead.
- Very small or very large deflection. Outside about 5−50 mm of working travel, other spring types (Belleville washers for short, coil-over-shock for long) become more practical.
- Very high frequency cycling. Above about 50 Hz the wire’s own mass and natural frequency start mattering. The spring “surges” — high-frequency oscillations propagate through it. Race-engine valve springs use beehive shapes or progressive-pitch geometry to avoid surge.
- Tight space constraints. Helical springs need axial length. For very flat assemblies, disc springs (Belleville) or wave springs are alternatives.
How Accurate Is This Calculator, and Where Does It Stop?
Every formula on this page is traceable to a printed source, and the engine behind them is re-checked against those sources by a script before each release — 8,892 assertions, covering Shigley Tables 10-1, 10-2, 10-4, 10-5, 10-6 and 10-8, the Wahl and Bergsträsser factors in closed form, the four end treatments, the buckling limit, the surge frequency from two independent derivations, the Zimmerli fatigue data, an 8,064-spring invariant sweep, and the load-test rig against the closed-form step and impact responses. The full record, including the five defects the audit found and fixed, is published as a validation record kept with the source, and every limitation below is stated on the design document the tool prints.
Accuracy is not the same as applicability, so here is the envelope:
| Limitation | How big is it? |
|---|---|
| Direct (transverse) shear is left out of the rate, as EN 13906-1 and every catalogue do | k reads 3.0% stiff at C = 4, 0.78% at C = 8, 0.35% at C = 12 — the real spring is always slightly softer, and the tool reports the figure |
| The wire is treated as a bar in pure torsion | good to a helix angle of about 12°, which the tool computes and flags |
| Active coils are nominal; real end coils partly participate | typically ±½ coil, a few per cent on the rate — which is why production rates are measured over two points |
| The rate is linear | real springs are soft for the first ~10% while the end coils seat, and stiffen approaching solid |
| Permanent set uses an elastic–perfectly-plastic wire | an estimate; no strain hardening, so it errs high |
| Zimmerli endurance data | wire under ~10 mm, ambient temperature, no corrosion |
| No temperature de-rating of G | springs relax above roughly 100 °C; each wire carries its service limit |
| Tolerance grades are not built in | by choice — EN 15800 and DIN 2095/2096 grades are size-dependent tables, so the acceptance bands are the ones you type in |
Out of scope entirely: extension and torsion springs, conical, barrel and variable-pitch geometries, rectangular or stranded wire, and hot-coiled bar springs — which is most vehicle suspension springs, and DIN 2096 territory rather than this one.
What that means in practice. For coursework, every number here can be checked by hand against a textbook, which is the point. For production work, this is a first-pass design and check tool: it will size a spring, catch the mistakes that matter and produce a documented record with a signature block — but a spring going into service still needs a physical F₁/F₂ test against the tolerance grade for its size.
References
- Shigley & Mischke — Mechanical Engineering Design, 10th ed., Chapter 10 (Mechanical Springs).
- Wahl, A. M. (1944) — Mechanical Springs, Penton.
- SAE HS-795 — Spring Design Manual.
- BS EN 13906-1 — the European standard for helical compression springs.
Helical Compression Spring Formulas
| Quantity | Formula | Notes |
|---|---|---|
| Spring rate | k = Gd⁴ / (8D³Na) | G shear modulus, d wire dia, D mean coil dia |
| Deflection | δ = F/k = 8FD³Na / (Gd⁴) | Linear until the coils touch |
| Spring index | C = D / d | Manufacturable range 4 ≤ C ≤ 12 |
| Wahl factor | KW = (4C−1)/(4C−4) + 0.615/C | Curvature plus direct shear |
| Bergsträsser factor | KB = (4C+2)/(4C−3) | Within ~1.5% of KW; Shigley’s preferred form |
| Shear stress | τ = KW × 8FD / (πd³) | Peak is on the inner coil surface |
| Wire tensile strength | Sut = A / dm | A and m per wire, Shigley Table 10-4 |
| Allowable shear | τallow = 0.45 Sut (0.35 for stainless / non-ferrous) | 0.65 / 0.55 if set removed |
| Solid length | Ls = d Nt (squared & ground) | Four cases — see the end-treatment table |
| Stored energy | U = ½ k δ² | The work the spring gives back |
| Buckling | λ = αL₀/D, stable while λ < 2.6 | α = 0.5 / 0.707 / 1 / 2 by end fixity |
| Surge frequency | f = (d / 2πNaD²) √(G/2ρ) | Both ends fixed; keep 20× the forcing rate |
| Fatigue endurance | Sse = Ssa / (1 − Ssm/Ssu) | Zimmerli data, Ssu = 0.67 Sut |
Spring Wire Data — Strength, Modulus and Size Range
Tensile strength is not a single number per material. Use Sut = A/dm with d in millimetres and A in MPa·mmm (Shigley Table 10-4); E and G are Table 10-5. These are the exact values this calculator ships, and a verification script re-checks them against the tables before every release.
| Wire | ASTM | Size band mm | A MPa·mmm | m | E GPa | G GPa | Max service °C |
|---|---|---|---|---|---|---|---|
| Music wire | A228 | 0.10–6.5 | 2211 | 0.145 | 203.4 | 81.0 | 120 |
| Hard-drawn | A227 | 0.7–12.7 | 1783 | 0.190 | 196.5 | 79.3 | 120 |
| Oil-tempered | A229 | 0.5–12.7 | 1855 | 0.187 | 196.5 | 77.2 | 180 |
| Chrome-vanadium | A231/A232 | 0.8–11.1 | 2005 | 0.168 | 203.4 | 77.2 | 220 |
| Chrome-silicon | A401 | 1.6–9.5 | 1974 | 0.108 | 203.4 | 77.2 | 250 |
| 302 stainless | A313 | 0.3–2.5 | 1867 | 0.146 | 193.0 | 69.0 | 260 |
| 302 stainless | A313 | 2.5–5 | 2065 | 0.263 | 193.0 | 69.0 | 260 |
| 302 stainless | A313 | 5–10 | 2911 | 0.478 | 193.0 | 69.0 | 260 |
| Phosphor bronze | B159 | 0.1–0.6 | 1000 | 0 | 103.4 | 41.4 | 100 |
| Phosphor bronze | B159 | 0.6–2 | 913 | 0.028 | 103.4 | 41.4 | 100 |
| Phosphor bronze | B159 | 2–7.5 | 932 | 0.064 | 103.4 | 41.4 | 100 |
How Much Strength a Thicker Wire Loses
Worked from the table above, so you can see the size effect rather than take it on trust. Allowable shear is 0.45 Sut for the ferrous wires and 0.35 Sut for stainless and bronze, with set not removed.
| Wire diameter | Music wire A228 | Oil-tempered A229 | 302 stainless A313 | |||
|---|---|---|---|---|---|---|
| mm | Sut MPa | τallow MPa | Sut MPa | τallow MPa | Sut MPa | τallow MPa |
| 0.5 | 2445 | 1100 | 2112 | 950 | 2066 | 723 |
| 1.0 | 2211 | 995 | 1855 | 835 | 1867 | 653 |
| 2.0 | 2000 | 900 | 1629 | 733 | 1687 | 591 |
| 3.0 | 1885 | 848 | 1511 | 680 | 1547 | 541 |
| 5.0 | 1751 | 788 | 1373 | 618 | 1352 | 473 |
| 6.5 | 1685 | 758 | 1307 | 588 | 1190 | 416 |
| 10.0 | — | — | 1206 | 543 | 968 | 339 |
| 12.7 | — | — | 1153 | 519 | — | — |
A 12.7 mm oil-tempered wire is only 55% as strong as a 0.5 mm one, and a 10 mm stainless one only 47% as strong. Any calculator that quotes a single “yield shear stress” for a material is over-rating your thick wire and under-rating your thin one.
Explore Related Simulators
If you found this Spring Design simulator helpful, explore our Hooke’s Law simulator, Simple Harmonic Motion simulator, Shaft Torsion simulator, and Stress–Strain Curve simulator for more hands-on practice.