Framebuilding – Bike 03

I built myself a new mountain bike and I am going to explain the process and motivation. The impetus for this bike was threefold: I wanted to 1. experience what a bike with a long front center feels like, 2. use my own knowledge, design thinking, and mathematical reasoning to take a stab at optimizing a bike with a long front center, and 3. end up with something I would actually enjoy riding. Here was my process:

First let’s consider some terms as they relate to bicycle geometry. I’m going to design my new bike around these parameters, so it’s important that we have a solid understanding of what they are. I’ve already mentioned an important one; the front center. This is the shortest distance from the center of the bottom bracket to the center of the front axle.

Front center shown in red.

In recent years, many people have focused on increasing the front center on mountain bikes. The exact physical reason for doing this isn’t very well documented or understood, but there seems to be consensus that many people enjoy riding mountain bikes with longer front centers. Some people are even willing to die on this hill.

Another important term is the normal trail. This is the line normal to the steering axis that intersects the contact patch of the front tire. It is shown below along with a derivation of the expression of normal trail. The normal trail describes the lever that the front wheel has on the handlebars. The normal trail is responsible for the caster effect, which accounts for some of the self-stability of a steerable bicycle.

The next parameter of interest is the flop height. This is the height above the ground at which the normal trail line intersects the steering axis, and it is shown below alongside a derivation for the expression of the flop height.

The flop height seems to describe the potential energy in the bicycle steering system. The system in this case is analogous to an inverted pendulum. When the wheel is straight in the perspective of the rider, the system has the maximum possible potential energy. Any deviation from this orientation results in a decrease in potential energy, which indicates that the rider must do work to restore the system to the “straight” orientation. Because the rider will never turn the handlebars more than 90 degrees in either direction from straight, (in practice this number is much lower, more like 50 degrees) a larger flop height corresponds to any angular deviation from straight causing a larger change in potential energy, which in turn requires more work to be input from the rider to keep the wheel straight.

While this may stand to reason, it is worth mentioning that there is debate about whether or not the flop height really means anything. An internet geometry cognoscente by the name of Kuromori contends that flop is essentially meaningless, and they support this proclamation with graphs and sound reasoning. Their essential argument is that flop height “gives the illusion of having some other value to optimize to counter the narrative of the optimal mid trail values” because it is a scalar multiple of normal trail, and therefore it should be ignored.

In a mathematical sense this argument is false. Flop height can be changed while holding trail constant by simultaneously changing head tube angle and fork offset, and this can be proved with easily with a graphing calculator like Desmos. This argument is also false on bikes where these two parameters are able to freely be changed, like on bikes with rigid forks. Where the argument begins to gain some traction is in the realm of mountain bikes that use suspension forks, and this is because suspension forks are typically only offered in one, two, or occasionally three different offsets. This limits the freedom of the designer and pushes reality back in the direction of Kuromori’s proposition.

This contradiction led me to wonder where to begin. What is a good flop height? What does that even mean? When set up with a 750mm OD front tire (29×2.6″ WTB Vigilante on a We Are One Insider rim) and a 51mm offset fork, the 2019 Santa Cruz Chameleon has a flop height of 35.79mm, and I like the way that it rides.

A naive way to think about this problem would be to try to build my new bike with the same or similar flop height as the old bike. This is limiting, and doesn’t consider how flop actually works. Flop height has units of mm, while the force and torque you feel at your hands have units N and N\cdotmm, respectively. I contend that the flop height, therefore, is the length of the lever through which the mass of the bike and rider act to produce the flop feeling at one’s hands. Let’s examine this.

The rider and the bike have a combined mass that contacts the ground at two locations: the contact patches of the front and rear tires. The normal force at each wheel is a function of the location of the center of mass of the rider and the bike with respect to these two contact points. This is illustrated below for clarity.

We can simplify this drawing into a free body diagram and use it to determine how the forces at each contact patch change as we move the center of mass.

Here, “MFC” refers to what I am calling the “mass front center.” This is the horizontal distance from the center of mass to the the front contact patch. Note that due to the triangle inequality this is different from the front center of a bicycle, which I defined above. Similarly, “MRC” refers to the “mass rear center.” “WB” refers to the wheelbase of the bicycle and is the sum of MFC and MRC.

Using statics we can calculate what the forces at each wheel are. We will call the force acting at the front contact patch \mathbf{f_f} and the force acting the rear contact patch \mathbf{f_r}. The force from the mass of the bike and the rider is called \mathbf{f_g}.

\sum \mathbf{f} = \mathbf{0} = \mathbf{f_f} + \mathbf{f_r} - \mathbf{f_g}

\sum \mathbf{m_f} = \mathbf{0} = \text{WFC}\cdot \mathbf{f_g} - \text{WB}\cdot \mathbf{f_r}

Solving these two equations we find the following expression for the force at the front contact patch:

\mathbf{f_f} = \mathbf{f_g}\left(1-\frac{\text{WFC}}{\text{WFC + WRC}}\right)

This has some interesting implications, namely that with an increase in the distance from the center of mass to the front contact patch (and therefore the front axle), there is a decrease in the force acting on the front contact patch. Given what we’ve said above about the mechanism of flop, this implies that an increase purely in front center on a bike results in less of a flop feeling.

Flop is the most annoying and pronounced to me while climbing and at low speeds. This makes sense because the caster effect is less pronounced at low speeds. Think about trying to ride with no hands when going slow: it doesn’t work as well as at higher speeds. When I’m climbing or going slow, I’m usually sitting on the saddle, not standing. This is important because when a rider is seated, their center of mass is in a different location than when they are standing. For the following calculations I will only consider the case in which I am seated.

To measure my actual mass distribution when I am on level ground, I placed a scale under each wheel of my current bike while I was seated and simultaneously recorded the readings.

With this setup, I ended up with the following:

Rear [kg]Front [kg]Rear [N]Front [N]
56.031.5549.4309.0

This is important because it tells me MRC, the horizontal distance from my COM while seated to the rear axle. My new bike will have the same rear center as the Chameleon (415mm) and a similar BB height (317mm instead of 315mm), so my MRC will be very similar on the new bike. This means I can use this known MRC and the new wheelbase to calculate the true front center for any frame design that I examine.

It makes sense to combine the force at the front contact patch and the flop height to form a stand-in for the flop feeling. This way we can do some analysis on the parameters at play in the system. Consider the following quantity, K:

K \equiv \frac{\text{FH}}{||\mathbf{f_f}||} = \frac{\left(\frac{\text{OD}}{2}\text{cos}\,\alpha - F_O\right)\text{sin}\,(90-\alpha)}{||\mathbf{f_g}||\left(1-\frac{\text{WFC}}{\text{WFC+WRC}}\right)}

K is the flop height (in mm) over the front contact patch force (in N) and I am claiming that it behaves like the flop feeling. Namely, it changes how we expect it to: if flop height increases, K increases, and if front center increases (and by extension front contact patch force decreases), K decreases. This comports with the intuition we have built for flop so far, so it is reasonable to let K be a measure of what I will call the “perceived flop,” or the actual flop feeling that the rider experiences.

I have to briefly mention suspension sag here. The point of this exercise is to minimize the perceived flop feeling while seated and climbing. As sane person, I climb with my fork locked out. I take this condition to mean that I have anywhere between 0% and 15% sag at any given time climbing. For a physical bicycle the head tube angle is the slackest when the fork is the longest, i.e. 0% sag. This corresponds to the greatest flop height and therefore the greatest perceived flop (note this assumes that flop height decreases with head tube angle faster than front center does, a fact which will be proved later). This means that the worst case scenario for perceived flop is at the fork’s full extension (0% sag), so I will design for flop around that. It’ll only get better with more sag.

The variables we have control over in the expression for K are \alpha, the head tube angle, and WFC. Mountain bike forks are offered in very few offset choices, and the fork I will be using has a 51mm offset, so we don’t have control over that variable. (There is more on this choice at the end). Changing \alpha in isolation is self explanatory. WFC can not be changed in isolation. This means that to affect the WFC for a given \alpha (and fork length and offset), the only way I can change WFC is by changing the reach. Don’t let this fool you into thinking that the reach is a driving parameter or a particularly important dimension. I simply pick it here because it measures exactly what I am interested in: a horizontal distance from a known point on the frame to a specified point on the steering axis. With all else held equal, a change in reach corresponds to an identical change in WFC in the same direction.

Due to my anatomy I have a set horizontal distance from the center of the saddle rail clamp to the center of the crank spindle, and a set maximum radial distance from the center of the saddle rail clamp to the hand grips. Thus, to maximize WFC I should choose the cockpit that places the hand grips at the greatest possible horizontal distance behind the steering axis (within reason for a performance mountain bike — no cruiser bars). This way WFC is as long as it can be (and by extension, the reach). Short of a custom solution I have done just that. I am using a Salsa Salt Flat bar which has a maximum offset of 54.97mm, and an Industry9 A318 stem which has a length of 31mm. This is important because for any frame configuration whatsoever, the choice of this cockpit (in combination with the hard anatomical limit of the maximum radial distance from the center of the saddle rail clamp to the center of the hand grips) offers the maximum front center for off the shelf components, no matter what. This configuration will be assumed in all of the following calculations. (Since planning this bike I have become aware of SQ labs bars that offer a larger offset. I will use SQ labs in future iterations of this bike.)

This means that the only variable over which we have control at this point is \alpha. However, I am using a Farr Frameworks BFF jig to build this bike, so I can only change the head tube angle in 0.25 degree increments. I am most interested in the behavior between 64.5 and 66.25 degrees, so I can calculate the flop height and front center at each increment between those two points. Let’s see what happens:

Flop height and front center as functions of head tube angle, \alpha. Ignore the fact that the lines intersect on this figure as the axes are different.

This shows that, even though the expression for flop height as a function of \alpha is nonlinear, it is locally linear in the range in which we are interested. This is unfortunate, as there are no hard nonlinearities to take advantage of in design. Oh well. If we fit a line to the red curve we can see what effect the head tube angle has on the front center (locally):

\text{FC} = -12.0\alpha + 1614

This means that for every addition of 1 degree to \alpha I lose 12mm of front center. This incentivizes me to keep the head angle as slack as possible so that I can maximize the front center.

If we fit a line to the blue curve we get the following:

\text{FH} = -4.12\alpha + 312.6

This means that for every addition of 1 degree to \alpha I gain 4.12mm of flop height. This incentivizes me to keep the head angle as steep as possible so that I can minimize flop height.

These lines are interesting, but they don’t tell us what we’re really looking for. What if there is some optimal configuration? To investigate this, let’s plot K vs \alpha to see how perceived flop changes with head tube angle. If we’re lucky, the curve will have a hard nonlinearity or the slope will be positive. In either case, there would be a property we could exploit.

Perceived flop decreases with an increase in head tube angle. There are no hard nonlinearities and the slope is negative. Thus I am faced with a canonical engineering problem: I want to maximize front center and minimize perceived flop, but given the variables over which I have control in this system, an increase in one results in an increase of the other. As such there are no immediately apparent optima in this (simplified) space. If we examine this graph, we find that with a single degree change in \alpha from 65 degrees to 66 degrees, we get a 10% increase in perceived flop. This is meaningful. This quantifies the effect of changing the head tube angle on the flop feeling that the rider experiences.

Now that the easy part is over, I have to make a design decision: which head tube angle do I choose? Any decision I make results in a compromise. I’m going to choose 65.5 degrees because it strikes a balance of front center and perceived flop that I think will satisfy my design goals for this bike. It may not, but that’s something I’ll have to find out once I ride the bike.

Now for the big reveal, the final drawing:

For consistency I must note that I have increased my rear center from the proposed 415mm to an actual 418mm for rear tire clearance. This 3mm change minimally affects the results of the above calculations, but it needed to be addressed.

Once I had the drawing nailed down, it was time to construct the bike. This was a bike of firsts for me: the first bike to use a tapered head tube, the first bike to use additively manufactured components, the first bike with boost spacing, and the first bike to come out of my shed that’s been built on a commercial frame jig.

As I mentioned before, I used a Farr Frameworks BFF Jig to construct this bike. This tool has made repeatable frame construction significantly easier than it was with my home-made jig. It also has several fixtures for holding tubes in place on the frame centerline that generally make life much easier when building a bike. Thanks Todd, you did a great job with this one.

Farr Frameworks BFF Jig

This was the first bike I have made with an externally tapered head tube. I used a Paragon Machine Works EC34-44 121mm head tube. I am proud of this because this head tube was a product that I played a large role in bringing to life when I worked at Paragon. I wrote the parametric and associative CAD and CAM for this product line, so it feels immensely satisfying to build a bike for myself with one.

This is a difficult miter that can’t be done with a hole saw. With careful hand filing and lots of inspection the gap between the down tube and head tube is less than 0.003″ all the way around.

I used an SLM 3D printed 316L stainless chainstay yoke from Daniel Yang on this bike. This part is pretty cool. It solves a lot of problems around the bottom bracket in an elegant and light weight fashion. It is also the first metal 3D part I have held in my hand, despite my earlier work with CFD for 3D printed heat sinks. The fact that this part was stainless steel presented some new challenges. Unlike all of the other joints on this bike, I couldn’t use LFB filler rod and flux. Instead, I used Fillet Pro filler rod and Cycle Design Stainless Light flux. I can’t say I’m a convert, especially for the price of each, but I made it work. Fixturing this yoke in place also proved to be a challenge for my order of operations. I used the setup shown below to braze the chainstays to the yoke first, then I mitered the dropout ends, and finally I brazed the entire assembly together in the fixture.

Next I mitered the seat stays. I had Pete Olivetti bend me these 3/4″ x 0.028″ stays on his Cobra bender, so I really couldn’t mess them up. Before attaching them to the frame, I brazed on a reinforcing lug for the disc brake tab. I will be using Hayes Dominion A4 brakes on this bike (which are enormous) so I want to take extra care to ensure that there is enough reinforcement to distribute the high stresses from braking.

Next I brazed the cable guides and stops on and did some last minute finishing. The final step before heading to the painter was to make the head badge and braze it on.

I had Ollie Cleveland at Dark Matter Finishing apply a coat of RAL1037 (Sun Yellow) to capture its summer spirit. Here’s the final product:

Leave a comment