T = R + L + C − E (R = stroke ÷ 2) → D = (180 − cos⁻¹((T² + R² − L²) / (2RT))) × 2
The formula
First compute piston position term T:
T = R + L + C − E where R = stroke ÷ 2
Then exhaust duration D in degrees:
D = (180 − cos⁻¹((T² + R² − L²) / (2RT))) × 2
Blowdown = D − 180° (time the exhaust port is open after BDC on the upward stroke).
How to measure E
- Measure from the top edge of the cylinder down to the top edge of the exhaust port in the bore (mm).
- Use the same reference plane for deck height C — consistency matters more than guessing.
- Cross-check with a degree tape on the flywheel if you can.
Puch E50 reference (90 mm rod, 0 deck)
| Port height E (mm) | 42 mm stroke (E50 crank) | 43 mm stroke (legacy chart) |
|---|---|---|
| 21.0 | 193.4° | — |
| 21.5 | 190.7° | 193.7° |
| 23.4 | 180.5° | — |
| 24.0 | 177.2° | 180.6° |
| 25.3 | 170.0° | — |
| 26.0 | 166.0° | 169.8° |
| 28.0 | 154.5° | 158.6° |
Puchforum / legacy mm charts were often computed with 43 mm stroke. The E50 crank is 42 mm — use the left column for real Puch geometry.
Next step — pipe design
Once you know exhaust duration, plug it into the expansion chamber designer for Graham Bell tuned length, cone angles, and a scaled pipe profile.
Full porting guide
For measuring technique, shaping single-port cylinders, fuel octane choices, and blowdown targets, see the Ultimate Moped Exhaust Porting Guide.
Before you cut metal
- Opening exhaust without jetting and pipe match = seized pistons.
- Automatic-clutch bikes (Puch, Tomos, ZA50) hate excessive blowdown — see blowdown notes in the porting guide.
- Same math works for transfer/intake ports if you measure E to those port edges.