Skip to content

Repository files navigation

GitHub issues GitHub license GitHub forks GitHub stars

32spoke

The idea was to build a tool to help me re-build my long-hauled front wheel. Then it became a webapp helps everyone whose wants to build a wheelset by herself/himself.

I hope this help you calculate spoke length for the next build

live one 32spoke

wheel variables

  1. Hub
  • Hub name
  • Hub weight
  • Left flange diameter
  • Right flange diameter
  • Left flange to center
  • Right flange to center
  • Spoke hole diameter
  1. Rim
  • Rim name
  • Rim weight
  • Rim ERD
  • Offset spoke bed(OSB)
  • Max rim tension
  1. Lacing
  • Spoke name
  • Number of spokes
    • 16
    • 18
    • 20
    • 24
    • 28
    • 32
    • 36
  • Lacing pattern
    • 1x
    • 2x
    • 3x

Color

  • Option 1

    /* SCSS RGB */
    $ruby-red: rgba(163, 22, 33, 1);
    $beau-blue: rgba(191, 219, 247, 1);
    $indigo-dye: rgba(5, 60, 94, 1);
    $metallic-seaweed: rgba(31, 122, 140, 1);
    $amaranth-red: rgba(219, 34, 42, 1);
    
  • Option 2

    /* SCSS RGB */
    $eerie-black: rgba(24, 24, 24, 1);
    $silver: rgba(196, 196, 196, 1);
    $white: rgba(255, 255, 255, 1);
    $aureolin: rgba(247, 232, 19, 1);
    $madder-lake: rgba(208, 51, 58, 1);
    

How the spoke length calculated

Note: only works for J-bend spokes at the moment. Not suit for Straight-pulll spokes

  • d = distance from the center of hub (along the axis) to flange, for instance of a rear hub, cTLF and cTLR are different
  • r1 = the radius of circle of flange holes, equals to PCD/2
  • r2 = half of Effective Rim Diameter (ERD), or the diameter the ends of the spokes make in a built wheel of the rim
  • r3 = radius of spoke holes in the flange, for example 2.6 mm,
  • m = number of spokes to be used for one side of the wheel, equals to half of the "spokeNumber"
  • k = number of crossings per spoke,
// spokeCalculator.js
const spokeCalculator = (d, r1, r2, r3, m, k) => {
	const angleCalculator = (crossing, spokeNumber) => {
		const angle = (360 * crossing) / spokeNumber
		return angle
	}

	const roundNumberToTowDecimal = (num) => {
		return Math.round((num + Number.EPSILON) * 100) / 100
	}

	const angle = angleCalculator(k, m)

	let spokeLength =
		Math.sqrt(d * d + r1 * r1 + r2 * r2 - 2 * r1 * r2 * Math.cos(angle)) - r3

	spokeLength = roundNumberToTowDecimal(spokeLength)

	return spokeLength
}

export default spokeCalculator

Reference

About

when you want to build a new wheel, but having no idea how to do it or even where to start with? I myself could relate to that feeling, a bit overwhelming for sure. 32spoke is a spoken length calculation tool, help cyclists like you to decide whether the hub, rim combo met the reality check.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages