Andrew Cooke | Contents | Latest | RSS | Previous | Next


Welcome to my blog, which was once a mailing list of the same name and is still generated by mail. Please reply via the "comment" links.

Always interested in offers/projects/new ideas. Eclectic experience in fields like: numerical computing; Python web; Java enterprise; functional languages; GPGPU; SQL databases; etc. Based in Santiago, Chile; telecommute worldwide. CV; email.

Personal Projects

Choochoo Training Diary

Last 100 entries

=?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?RXhjbHVzaXZlIEVhc2VGcmVpZ2h0IEZyZWlnaHQgU2VydmljZXMgdGFpbG9yZWQganVzdCBmb3IgeW91?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; =?UTF-8?B?VGhlIGJlc3QgY3VzdG9taXplZCBmcmVpZ2h0IHNvbHV0aW9uIGZyb20gRWFzZSBmcmVpZ2h0?=; Surprise Paradox; [Books] Good Author List; [Computing] Efficient queries with grouping in Postgres; [Computing] Automatic Wake (Linux); [Computing] AWS CDK Aspects in Go; [Bike] Adidas Gravel Shoes; [Computing, Horror] Biological Chips; [Books] Weird Lit Recs; [Covid] Extended SIR Models; [Art] York-based Printmaker; [Physics] Quantum Transitions are not Instantaneous; [Computing] AI and Drum Machines; [Computing] Probabilities, Stopping Times, Martingales; bpftrace Intro Article; [Computing] Starlab Systems - Linux Laptops; [Computing] Extended Berkeley Packet Filter; [Green] Mainspring Linear Generator; Better Approach; Rummikub Solver; Chilean Poetry; Felicitations - Empowerment Grant; [Bike] Fixing Spyre Brakes (That Need Constant Adjustment); [Computing, Music] Raspberry Pi Media (Audio) Streamer; [Computing] Amazing Hack To Embed DSL In Python; [Bike] Ruta Del Condor (El Alfalfal); [Bike] Estimating Power On Climbs; [Computing] Applying Azure B2C Authentication To Function Apps; [Bike] Gearing On The Back Of An Envelope; [Computing] Okular and Postscript in OpenSuse; There's a fix!; [Computing] Fail2Ban on OpenSuse Leap 15.3 (NFTables); [Cycling, Computing] Power Calculation and Brakes; [Hardware, Computing] Amazing Pockit Computer; Bullying; How I Am - 3 Years Post Accident, 8+ Years With MS; [USA Politics] In America's Uncivil War Republicans Are The Aggressors; [Programming] Selenium and Python; Better Walking Data; [Bike] How Fast Before Walking More Efficient Than Cycling?; [COVID] Coronavirus And Cycling; [Programming] Docker on OpenSuse; Cadence v Speed; [Bike] Gearing For Real Cyclists; [Programming] React plotting - visx; [Programming] React Leaflet; AliExpress Independent Sellers; Applebaum - Twilight of Democracy; [Politics] Back + US Elections; [Programming,Exercise] Simple Timer Script; [News] 2019: The year revolt went global; [Politics] The world's most-surveilled cities; [Bike] Hope Freehub; [Restaurant] Mama Chau's (Chinese, Providencia); [Politics] Brexit Podcast; [Diary] Pneumonia; [Politics] Britain's Reichstag Fire moment; install cairo; [Programming] GCC Sanitizer Flags; [GPU, Programming] Per-Thread Program Counters; My Bike Accident - Looking Back One Year; [Python] Geographic heights are incredibly easy!; [Cooking] Cookie Recipe; Efficient, Simple, Directed Maximisation of Noisy Function; And for argparse; Bash Completion in Python; [Computing] Configuring Github Jekyll Locally

© 2006-2017 Andrew Cooke (site) / post authors (content).

[Bike] Notes on Servicing Suspension Forks

From: andrew cooke <andrew@...>

Date: Sat, 2 Sep 2017 10:44:17 -0300

[Note: this is based on my experience with a Rockshox 2016 SID RCT3,
so some details may not apply to other models or makes.]


Rockshox provide detailed instructions that depend on the model year.

Youtube also has many videos of people servicing forks, but it's
difficult to be sure of the exact model and year, so while they're
useful to give a general idea, some of the details can be wrong (for
example, there's an official Rockshox video that gives torque figures
that are completely wrong for my fork).

When you have the service manual, read through it several times.
There's a lot of information in there and it's better to understand
what you are doing before you open up the fork.


For my fork, at least, there are three types of parts kit, for
different types of service:

 * A full kit that contains seals, washers, valves - almost everything
   in the fork except for the "big" components (stanchions, lower,
   damper, rods).

 * A basic kit that contains the seals and washers needed for a normal
   (complete) service.
 * A dust seal kit that contains only the rings and seals at the top
   of the outers (don't have a part number for this).

You can also buy multipacks of individual components, like foam rings
and crush washers.

Again: the above is for MY fork.  Your fork will require something

Finding exactly which kit works for your fork can be difficult.  I
suggest starting on Amazon and then cross-checking part numbers until
you find consistent descriptions across several sites.  The Rockshox
parts catalogue may also be useful:

In addition to the components above you need tools, alcohol (to
clean), oil and grease.  I use the Rockshox "butter" grease (even
though it's quite expensive), but generic (typically LiquiMoly) oils
of the correct weights (my fork takes two weights - a lighter oil for
the damper and a heavier one for lubricating the outers).

Types of Service

There are two kinds of service generally discussed:

 * You always remove the lowers and replace the foam rings and
   lubricating oil.  This makes sure the lowers are correctly
   lubricated.  For this, it may be worth buying packs of foam rings,
   crush washers, and the metal parts that go on the washers (these
   last two are the washers at the bottom of the lowers which you
   should really replace each time you remove the lowers because - as
   their name suggests - they deform on use).

 * With the lowers removed you can also service each fork leg
   separately.  However, the basic kit contains parts for both, so
   it's generally worth servicing the two sides together.  This means
   taking each side apart, cleaning, and re-assembling with new seals.

You can also take the forks apart to inspect them if you're trying to
solve some problem.  This generally involves removing the lowers first.

Servicing Tips

 * Take your time!  There's a lot of details to get right.  It's
   better to do everything slowly and double check than have a fork
   that doesn't work.

 * Clean your forks before disassembly - you don't want any dirt stuck
   around the top caps that ends up dropping into the inners.

 * The basic kit contains some seals that are almost-but-not-quite the
   same size as others.  Compare carefully so that you use exactly the
   right size.

 * To remove the lowers, after loosening the screws slightly, you need
   to hammer the screws to "unstick" the rods (see service manual).
   This takes a worrying amount of violence (I don't have a rubber
   mallet so use a steel hammer with a piece of wood to soften the
   blow).  When it does work the lowers come off quite easily.

 * Be very careful that the circlips are clicked completely into place
   when you re-assemble.

 * Getting the damper rod with the glide ring inserted correctly is
   particularly tricky.  Just keep fiddling and suddenly - eventually
   - it will slide in easily.

 * The amount of damping oil is specified in two ways in the manual -
   the total amount and the depth below the crown.  The easiest way to
   measure is (with the rod fully extended and the fork held
   vertically) to use a screwdriver as a "dipstick".  Rest the end of
   the handle of the screwdriver on the crown so that the blade is
   inside the fork, extending down to the oil level.  Then remove and
   measure the distance between handle and oil.

 * If you do the above, check for consistency by first filling with
   the correct volume.  It's not completely clear to me exactly where
   on the crown to measure from, so having a second measurement to
   check gives more certainty.

 * To remove a little damping oil you can use a (clean!) drinks straw
   - insert the straw into the oil then place your finger over the end
   and remove.

 * While the manual rebuilds one leg at a time I find it easier to
   completely disassemble the fork (both legs) and then rebuild.  But
   you need to be careful that you still follow all the instructions.

 * The screw that holds the LSC knob in place can come loose (and you
   lose knob and screw).  You can buy a replacement, but consider
   using locktite or placing a small patch of tape over the knob and
   screw (weirdly it's difficult to bug locktite in Chile...)

 * Not really a fork service tip, but black electrical tape is a much
   simpler and more reliable way to hold the brake hose in place than
   the fiddly clamp on the fork.

 * When replacing the lowers you add lubricating oil through the screw
   holes at the bottom.  Before doing this, make sure that the rods
   that connect to the screws are not blocking the holes!  In other
   words, before replacing the lowers press the two rods into the
   uppers (the damper rod won't go so far, but it's enough).

 * If you've pushed in the air rod (see above) when replacing the
   lowers, add a little air to push it back out before trying to
   connect the screws.

 * As far as I can tell the basic kit contains a couple of items you
   don't need / use.  I assume these are for other models.

 * If you do get seal sizes mixed up then next service you can't just
   match seals with what you used before (because they were wrong!).
   One solution is to buy the full service kit - at least the one I
   have has the seals divided by type, so it's clearer which one goes

Known Problems

These are mistakes I have made:

 * If a circlip is not correctly in place it may come undone when the
   fork is loaded.  On the air spring side this means that there is no
   negative spring - when unloaded the fork goes to full extension and
   does a hard stop.

 * If the damper rod is not fully extended when you replace the damper
   then (as far as I can tell - I have not seen this documented
   anywhere) the damper will have a partial vacuum when fully extended
   which reduces rebound.  The end result is that your fork has too
   much sag / not enough travel.

 * If you pressurise the damper without the nut on (at the top,
   holding the settings dial in place) then a shaft (and oil) can come
   flying out.  The shaft connects the LSC knob to the bottom of the
   damper and is easy to replace.  However, at the top it has a
   drilled hole that should contain two ball bearings separated by a
   spring.  Without these you don't get "clicks" when rotating the LSC

 * If you use the wrong size (slightly) seal on the air piston then it
   starts to leak air after a few uses.

 * If the screw holes are blocked and you squirt lubricating oil in
   anyway (see tips above) the oil ends up in the "outside" ends of
   the lowers, and you'll see it dripping on the floor when you have
   the fork back on the bike.

I hope this is useful to someone and saves them from learning by (so
many!) mistakes,


Removing Lowers

From: andrew cooke <andrewcooke@...>

Date: Thu, 16 Nov 2017 08:58:50 -0300

Just gave my lowers a quick service (should have done so earlier -
very dry and dirty seals).

I found that this made removing the lowers easier than before:

 * Place the fork upside down in the stand, with the grip around the
   lower (if you have a stand - I bought one recently, and it does

 * When loosening and then hammering the retaining screw (the most
   worrying part of the whole process IMHO), if you're careful you can
   see when it moves - the screw drops several mm, which is clearly
   visible if you're careful to compare something (eg a mark on the
   allen key) with the top of the lower.


Solo Air Equalization

From: andrew cooke <andrew@...>

Date: Mon, 11 Dec 2017 15:55:48 -0300

A common problem I forgot to mention above (credit to MTBSPEC on
reddit) is Solo Air equalization.  This can be a problem at any time -
not just when servicing.


In addition to the "positive spring" that resists compression of the
fork, forks have a "negative spring" that resists extension.  This is
partly so that when the fork extends (say, when you front wheel leaves
the ground) it comes to a soft stop (against the negative spring).

On Solo Air forks this negative spring is a separate air chamber below
the air piston.  The air pressure in this chamber is set automatically
by a very simple mechanism: there's a small notch on the inside of the
stanchion (you can see it when you have everything disassembled and
clean), and when the air piston passes this notch pressure in the
positive and negative spring chambers can equalize.

This is why, when you adjust the pressure in your fork, you need to
cycle the fork a few times - to let the air enter or leave the
negative chamber.  As a general rule, I find it's best to make a small
change to pressure, bounce the fork to equalize, and then change some

The Problem

Anyway, unfortunately this notch can get blocked with grease, which
stops the pressure from equalizing correctly.  If the pressure is too
high then the fork doesn't extend as much as it should.  If it is too
low then the fork can not compress / sag correctly.  The only solution
I know to this problem (apart from a full service) is to bounce the
fork (or even pull it), perhaps also playing around with air pressure.

With enough jiggling, it tends to fix itself (sometimes you can hear
the air hiss through).



From: Tina <freight@...>

Date: Fri, 28 Jun 2024 13:22:55 +0800 (GMT+08:00)



From: Tina <freight@...>

Date: Thu, 4 Jul 2024 16:03:11 +0800 (GMT+08:00)


Comment on this post