The usual, boring, spoke length calculators allow only the same number of
hub holes, rim holes and number of spokes. What a waste of life and inteligence! This is a thing of the past. The times
when it was important
that a good bicycle
wheel lasts few decades without breaking a spoke are definitely gone. The new
trend is esthetics above functionality; and this requires
to be able to build a wheel with any kind of combination of holes and spokes. This is where I jump in. What you will get
here is a spoke length calculator (as well as wheel building motivator) for any
number and combination of holes, spokes, cross
patterns.

I’ll give more detail. Parts of
the wheel are hub, rim and spokes. The hub has two flanges, left and right, each having half the total number
of hub spoke holes. This also defines
the left and right side of the wheel.
The holes on the left and right flange are oﬀset by an angle; if that wouldn’t be the case, we could not have radial
spokes on both sides of the wheel. The spoke holes in the rim, however, are
less obviously divided to left and right and it is important not to confuse
the total number
of rim holes with the number corresponding just to one side of the wheel. Further,
spokes might be inclined
out of the radial direction
for some angle -
this is usually expressed as a cross-number C, the number of spokes on one hub flange
that a certain spoke crosses. Radial spokes don’t cross any other spoke, so they have cross number C = 0. When C is not 0 we might have two kinds of spokes on the same side of the wheel:
leading spokes and trailing spokes.
The first ones are inclined clockwise, the others counter-clockwise. And finaly, you might not want to (or could
not) use all the holes in the hub or in
the rim. We will consider all of
these possibilities.

Figure 1. Schematical model of a Wheel. |

Figure 1 shows a wheel schematicaly. Point O is the center
of the wheel. Line HR represents a radial spoke that goes through
hole H in the hub and hole R in the rim and has inclination angles
α = β = 0 to the x
axis. If the effective rim radius is R

*= OR, and hub-hole radius is R*_{r}*= OH, then the length of radial spoke would be S*_{h}_{0}= R*R*_{r }-*. Line AB represents non-radial spoke. It’s starting inclination angle is α and ending inclination is β. Note that AB is a projection of the spoke to the plane xy. We have to take into account that spoke has a component in z direction. If H*_{h}*is a dimension from the hub flange to the center of the rim (figure 2), then the spoke length is straightforward to calculate:*_{z}
L

*2*_{AB }*= (B**− A*_{x}*)2 + (B*_{x}*− A*_{y}*)2 + H*_{y}*2 = R2 + R2 + H*_{z}*2 − 2R*_{z}*R*_{r}*cos (β − α)*_{h}Figure 2. Hub with indicated dimension Hz . |

The unique
way to describe a general wheel is to assign the starting hole in the hub A and the ending hole in
the rim B to every spoke. We define
the parameters of the wheel: H

L

*is the number of hub holes*_{h}**in one flange**of the hub, H*the*_{r}**total**number of rim holes (i.e. all the holes in the rim), and S the number of spokes**in one flange**of the hub. With these parameters we build one side - left or right - of the wheel. Number of spokes on left and right side of the wheel might be diﬀerent; if that is the case, we use notation S*and S*_{l}*. For each spoke i , (i = 1, 2, ..., S) we note two indexes: the number of the hub hole A*_{r}*and the number of the rim hole B*_{i}*. We count hub and rim holes in a counter-clockwise direction starting at position β = α = 0 with hole number 1. Index B*_{i}*could have zeros, negative numbers, or numbers bigger then H*_{i}*when C > 1. This is OK when calculatig the spoke length, but for the hole count it is more practical to have only positive numbers in the range 1 to H*_{r}*; therefore we might add H*_{r}*to the zero or negative number and subtract H*_{r}*form numbers greater then H*_{r}*. Using notations ∆α = 2π/H*_{r}*and ∆β = 2π/H*_{h}*for angle segments in the hub and rim respectfully, we have the equation:*_{r}L

*= R2 + R2 + H2 − 2R*

_{i}2*R*

_{r}*cos (∆β(B*

_{h}*− 1) − ∆α(A*

_{i}*− 1))*

_{i}
which
defines spoke length for any spoke i and any possible wheel composition.

The key point is to define indexes A

*and B*_{i}*. We can define them individually, without calculation, ”by hand”. Automatism is, however, much appreciated, especially in later years of your life. That is why I wrote a program wheel that calculates indexes A*_{i}*and B*_{i}*, spoke lengths, draws a wheel and makes a finite element model for the calculation of stresses in the wheel.*_{i}
Indexes A

*and B*_{i}*are calculated as follows. We would prefer the spokes to be equally distributed over the hub, with constant angle segment ∆γ = 2π/S. We first find A*_{i}*= j, i.e. a hole j in the hub which has the closest angle to the angle (i − 1)∆γ of i-th spoke:*_{i}
A

*= MIN*_{i}*|(i − 1)∆γ − (j − 1)∆α|, j = 1, ..., H*_{j}_{h}
In similar manner, we
would find B

*= k:*_{i}
B

_{i}*= MIN*_{k}*|ϕ + (i − 1 + (−1)*^{i}^{+1}C)∆γ − (k − 1)∆β|, k = 1, ..., H_{r}
ϕ = π/H

_{h}*is the offset angle between the holes on the left and right flange of the hub. We must add this angle when calculating the right side of the wheel,***but not for the left side**.

**Example 1**. Let’s first give a simple example: the regular wheel. It has H

*= S = N = H*

_{h}*/2, ∆α = 2π/N , ∆β = ∆α/2 and arbitrary cross number C. Spoke indexes are, in compact notation: A*

_{r}*= i and B*

_{i}*= 2(i +(-1)*

_{i}

^{i}^{+1}C) -1, and the diﬀerence in the angles is:

∆β(B

*− 1) − ∆α(A*_{i}*− 1) = (−1)*_{i}^{i}^{+1}C∆α
With numerical data for
a 32-spoke wheel, R

*= 298 mm, R*_{r}*= 26, H*_{h}*= 20 mm and N = 32/2 = 16, we get spoke lengths (in mm) on one side of the wheel: 272.7, 274.9, 280.9, 289.7 and 299.8 for C = 0, 1, 2, 3, 4 respectfully. All the spokes on one side of the wheel have the same length. The other side of the wheel could have different spoke length, because of diﬀerent dimension H*_{z}*or different C (figure 3).*_{z}**Example 2**. Now, let’s present a more complicated case. I have recently built a rear wheel for my fixie with 32-hole hub, 36-hole rim and 16 spokes for the whole wheel, which means with parameters H

*= 16, H*

_{h}*= 36, S = 8 (figure 5, left side). Not unexpectedly however, one spokes broke after about 200 km and another one after another 200 km.*

_{r}
I made a finite element analysis of the wheel with beam
elements. Loading was 500 N vertical gravitational force and 250 N horizontal force in the
chain acting on the edge
of the hub. The stress
analysis showed that the stress in the spokes was f =1.63 times
greater than the stress would
be in an ordinary 32-hole Wheel.

I experimented with different wheel parameters and as a first solution
I added 4 spokes to the right side of the
wheel (figure 4, right), which reduces the factor to f=1.17. The experiment is still on-going. I will ride with this wheel until possibly the
next spoke breaks, and then decide about the new wheel configuration.

Figure 4. Fixie rear wheel, Hh=16, Hr=36. Left: 16 spokes. Right: 20 spokes. |

Figure 5. My fixie. Both hubs have 32 holes. Front wheel: 24-hole rim and 16 radial spokes. Rear wheel: 36-hole rim and 20 spokes, mostly cross 2. |