American Standard Elite Kitchen Faucet: Handle Failure

Strange though it may seem, the kitchen faucet handle broke while Mary was using it. The rear wall of the socket that fits over the cartridge valve stem fractured:

American Standard Faucet Handle - broken mount
American Standard Faucet Handle – broken mount

Having no water in the kitchen is not to be tolerated, so I applied a redneck fix while pondering the problem:

Kitchen Faucet - redneck handle repair
Kitchen Faucet – redneck handle repair

Based on that comment, I called the American Standard hotline (800-442-1920), described the situation, and they’re sending a replacement handle and cartridge. Evidently the new handle won’t fit the old cartridge, which makes me feel better about not stockpiling repair parts, even while I now wonder what the new cartridge part number might be and how you’d tell them apart.

Anyhow, the redneck fix wouldn’t suffice for the next week; I needed something slightly more permanent. The broken wall fit neatly in place on the mount, but:

  • It must withstand far more force than a simple glue joint can provide
  • I can’t machine square holes
  • Wrapping a metal sleeve around the mount seemed like too much work

You undoubtedly saw this coming a while ago:

Am Std Faucet Handle Sleeve - solid model
Am Std Faucet Handle Sleeve – solid model

The mount tapers slightly from the handle body toward the open end to provide draft for the molding process. I applied a hull() operator to two thin rectangles spaced the right distance apart along the Z axis to create a positive model of the mount, which then gets subtracted from the blocky outer rectangle. The hole clears a 10-32 screw that fits the standard setscrew threads (normally hidden behind the handle’s red-and-blue button).

Unlike most printed parts I’ve done recently, the sleeve suffered from severe shrinkage along the outside walls:

Faucet handle sleeve - build distortion
Faucet handle sleeve – build distortion

The inside maintained the right shape, so I cleared the nubs with a file and pressed it in place around the mount with the rear wall snapped into position. The black plastic socket evidently isolates the handle from the valve stem and I used a stainless 10-32 screw to prevent the nightmare scenario of having the sleeve slide downward along the tapered mount and block the setscrew. Overall, it came out fine:

American Standard faucet handle - compression sleeve
American Standard faucet handle – compression sleeve

However, the chunky sleeve didn’t clear the opening in the escutcheon cap, which put the cap on the windowsill for the next week. The result works much better than the redneck fix and looks almost presentable. It’s certainly less conspicuous:

American Standard faucet handle - temporary repair
American Standard faucet handle – temporary repair

I hope the new handle has a much more robust socket…

The OpenSCAD source code:

// Quick fix for broken American Standard Elite 4454 faucet handle
// Ed Nisley KE4ZNU February 2013

//- Extrusion parameters must match reality!
//  Print with +2 shells and 3 solid layers

ThreadThick = 0.25;
ThreadWidth = 2.0 * ThreadThick;

HoleFinagle = 0.4;
HoleFudge = 1.00;

function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
function HoleAdjust(Diameter) = HoleFudge*Diameter + HoleFinagle;

Protrusion = 0.1;           // make holes end cleanly

// Dimensions

Wall = 5.0;

Slice = ThreadThick;                // minimal thickness for hull object

ShaftEnd = [11.6,17.8,Slice];
ShaftBase = [12.1,18.8,Slice];
ShaftLength = 19.0;

Block = [(ShaftBase[0] + 2*Wall),(ShaftBase[1] + 2*Wall),ShaftLength - Protrusion];

ScrewOffset = 6.5;          // from End
ScrewDia = 5.0;             // clearance

// Useful routines

module ShowPegGrid(Space = 10.0,Size = 1.0) {

    Range = floor(50 / Space);

    for (x=[-Range:Range])
        for (y=[-Range:Range])


module PolyCyl(Dia,Height,ForceSides=0) {           // based on nophead's polyholes
  Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
  FixDia = Dia / cos(180/Sides);

// Model the handle's tapered shaft

module Shaft() {

    hull() {
        translate([0,0,ShaftLength - Slice/2])
            cube(ShaftEnd, center=true);
            cube(ShaftBase, center=true);


// Build it!


difference() {
    translate([0,0,ShaftLength - ScrewOffset])