Fiat Grand Gathering 2027 - a weekend for Fiat group enthusiasts. 16 to 18 April 2027, North East Victoria.

Engine Build Calculator

Work out a build in your browser. Enter the parts you actually measured — bore, stroke, rod, chamber, piston dome or dish, gasket and fire ring, deck clearance — and get displacement and a true compression ratio with every volume accounted for, plus piston position, speed, acceleration and rod angle right through the cycle with gudgeon pin offset taken properly into account, and airflow in CFM. Rebuilt from a 2005 Fiat workshop spreadsheet, with its maths repaired.

Dyno simulator →

Engine

geometry and piston motion — exact for the dimensions entered

Where the compression ratio comes from

every input in the Compression group moves one of these lines

Airflow

exact for the volumetric efficiency entered — naturally aspirated
Airflow here is simply swept volume multiplied by engine speed and the VE you type, which is the spreadsheet's own formula. VE is an input, not a prediction — this page has no idea what your head, cam or exhaust will actually flow. For a modelled torque and power curve, use the dyno simulator.

Piston motion

Position below deck Velocity Acceleration

Motion table

361 rows, one per crank degree, 0–360° from true TDC, laid out as the original sheet had it. “Below deck” matches the sheet’s own column to within 10-9 mm. Scroll the box; the whole thing downloads as CSV.
Spreadsheet compatibility›

This page was rebuilt from roughcalcsver3.xls, a sheet written in 2005 and last touched in 2021. Its geometry and piston-motion maths were recovered intact and are reproduced here exactly. Several things had to be repaired, and one block of cells was found with its labels still in place but every formula behind them replaced by a zero; that block is out of scope here and is not reproduced. Below are the sheet’s own figures next to the corrected ones, so nothing is hidden.

The same applies to the presets: each one says where its numbers came from, including which are assumptions. No Fiat 128-series con-rod length is recorded in any manual in the X1/9 archive — the 128.5 mm every preset uses is the 1600 stroker’s aftermarket Scat rod, carried over from the spreadsheet’s single rod-length cell. It changes rod/stroke and the piston-motion curve, nothing else.

What was repaired

  • Compression ratio. The sheet divides swept volume by clearance volume and calls the result a compression ratio, so every figure it produced was 1.000 too low. Its gasket-volume term, (L12^2)*(PI()/4), squares a length to stand in for a volume and evaluates to zero regardless, so the gasket thickness it asks you to type was never used.
  • Piston velocity and acceleration. The sheet took one-degree differences down a 361-row table, which puts its velocity half a degree out of step and leaves its acceleration column sign-reversed. This page differentiates the slider crank motion directly, so velocity and acceleration are exact at every angle rather than at 361 of them.
  • Gudgeon pin offset. The sheet has no offset term at all — it puts the pin dead on the bore centreline, which no production piston does. That makes its rod angle exactly 90° at crank zero, its TDC exactly 0° and its BDC exactly 180°, none of which is true once the pin is offset the usual millimetre or two. The slider-crank here carries the offset right through position, velocity, acceleration and rod angle.
  • Deck clearance and compression height. The sheet asks for both. Compression height is referenced by nothing at all — a dead input, typed in and never read. Deck height is referenced by exactly one thing: the piston-position column, where it shifts all 361 rows by a constant. It never reaches the compression ratio, even though the gap above the crown at TDC is real gas volume. (That one use also proves what the sheet means by it: at TDC the formula collapses to L = deck height, so it is deck clearance, not block deck height.) Both are wired up here — deck clearance adds bore area × clearance to the clearance volume, and compression height gives the block deck height, throw + rod + compression height + deck clearance. Gasket thickness was dead too; see the compression-ratio item above.
  • The 46 mm datum. The sheet's “piston height” column is 46 − position, and nothing anywhere in the sheet derives that 46 — it is not the deck, the compression height, the gasket or any combination of them. Rather than drop the column or hardcode a number whose reference nobody can state, the datum is an input here. Leave it at 0 and the column reads crown position relative to the deck, positive above it, which is the figure you normally want. Set it to your own measuring reference and it reads from there. Set it to 46 and you get the spreadsheet's column back exactly — which is what the “Spreadsheet defaults” preset does.