The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Category: Machine Shop

Mechanical widgetry

  • American Standard Faucet O-Ring Replacement

    The never-sufficiently-to-be-damned O-rings in the kitchen’s American Standard faucet wore out again; the faucet spout went from a tolerable piddle to a major flow over the course of a few weeks.

    The inner circumference of the bottom O-ring had most of the wear:

    American Standard faucet - worn lower o-ring
    American Standard faucet – worn lower o-ring

    In cross-section, it’s more of a D-ring:

    American Standard faucet - worn lower o-ring - section
    American Standard faucet – worn lower o-ring – section

    Once again, I soaked the spout & pillar in vinegar to remove the mineral deposits (despite the soft water), gave them a light sanding with 800 grit paper to regularize the surfaces, cleaned everything up, lubed it with petroleum jelly, and it’s all good.

    Disassembly and replacement went smoothly, mostly because I could look up what I did before and avoid all the usual mistakes.

     

  • Mini-Lathe: Reducing Compound Backlash

    While mulling over the DRO situation, I clamped the compound rest to the cross slide, backed the knob to the limit of the backlash, and poked feeler gauges into the opening:

    LMS mini-lathe - measuring compound backlash
    LMS mini-lathe – measuring compound backlash

    The backlash turned out to be around 20 mil = 0.020 inch = 0.5 mm, which seemed excessive to me, so I fiddled around with the contents of the Big Box o’ Polypropylene Sheets (harvested from various clamshell retail packages), deployed the hollow punches, performed some deft scissors work, and made some shims:

    LMS mini-lathe - compound knob shims
    LMS mini-lathe – compound knob shims

    Eventually, one of ’em offered a Good Enough combination of reduced backlash and E-Z turning to suffice for now. The proper solution involves facing off / rebuilding the fat metal washer on the right to put the bore at right angles to the bearing surfaces, but that’s another project.

    The final backlash ended up around 4 mils, with a bit of drag due to the slightly irregular metal washer on the left preventing anything tighter. The cross slide knob also has a bit of backlash, but the thinnest sheets are a bit too thick.

    Polypropylene isn’t the right plastic for a bearing, but it’s cheap, readily available, easily worked, and served as a bring-along project at Squidwrench…

  • Mini-Lathe: DRO vs. Compound FAIL

    The Little Machine Shop 5200 lathe package includes DROs on the cross slide and compound cranks. The readouts report the position of the crank, not the slide position, which isn’t a major problem on a lathe.

    Unfortunately, the compound collides with the DRO on the cross slide:

    LMS Mini-lathe - compound vs DRO
    LMS Mini-lathe – compound vs DRO

    That is a major problem on a lathe.

    When you can’t turn the cross slide more than 45° from parallel with the bed, you cannot set the compound to the (typical) 29° degrees required for (traditional) thread cutting. That’s measured perpendicular to the bed, so it would be 61° on the compound rest scale, if the scale went that high:

    LMS Mini-lathe - compound way
    LMS Mini-lathe – compound way

    This mess doesn’t have a trivial fix, because the DRO body under the (non-removable) display doesn’t quite clear the compound screw:

    LMS Mini-lathe - compound vs DRO - bottom
    LMS Mini-lathe – compound vs DRO – bottom

    As nearly as I can tell, removing the entire DRO is the only way to slew the compound beyond 45°, but the DRO replaced the usual manual scale around the cross slide knob, so there’s no analog backup.

    The DRO mounts to the cross slide with three screws, so you can’t rotate it 90° to the side to get better clearance:

    LMS mini-lathe - DRO mounting screws
    LMS mini-lathe – DRO mounting screws

    The other four screws presumably mount the DRO encoder housing to the outer shell.

    The setscrew sticking up from the sleeve anchors it to the cross slide shaft. The slit milled into the shaft captures the end of the setscrew:

    LMS mini-lathe - cross slide leadscrew shaft
    LMS mini-lathe – cross slide leadscrew shaft

    The knob slides over the shaft, with a screw in the end holding it in place by friction against a split lockwasher; you can apply enough torque to turn the knob under the lockwasher in either direction.

    Removing the DRO doesn’t produce more cross slide travel, because the DRO body sits flush with the back side of that large disk.

    I think the cross slide knob collides with the compound DRO, but I put it all back together without any further exploration.

    Actual 6 inch DROs based on linear encoders seem to run $40-ish and other folks have fitted them to their mini-lathes. Verily, I don’t do much threadcutting, so I’ll just put this mess on the far back burner.

    That DRO ticks me off every time I look at it, though…

    Dumb design, no question about it.

  • Dishwasher Rack Protectors in PETG

    Our standard dishwasher loadout changed a while back, so I ran off more protectors to fill the bottom rack. The crystalline look of natural PETG is probably wasted in there, even though it puts the old, rather yellowed, PLA protectors to shame:

    Dishwasher Rack Protectors - old PLA new PETG
    Dishwasher Rack Protectors – old PLA new PETG

    Dollops of silicone sealant hold them in place: the bigger the blob, the better the job.

    We don’t activate the drying heater, so the plastic doesn’t get exposed to absurdly high temperatures. As nearly as I can tell, those PLA protectors remain in fine physical condition, even though they’re turning an odd color.

    The support structures peeled out easily with a fingernail pull:

    Dishwasher Rack Protectors - 0.20 mm PETG bridging - detail
    Dishwasher Rack Protectors – 0.20 mm PETG bridging – detail

    PETG doesn’t bridge well, as shown by the gaps between the support ridges. Those 0.20 mm layers seemed skimpy for lightly supported PETG, so I ran another set at 0.25 mm:

    Dishwasher Rack Protectors - 0.25 mm PETG bridging - detail
    Dishwasher Rack Protectors – 0.25 mm PETG bridging – detail

    Not quite enough improvement for a Happy Dance, although fine for the application.

    We look forward to seeing what grows in those little crevices…

  • Inspiron Mini 10 as a 3D Printer Controller

    It turns out that the dual-core Intel Atom Inside an old Dell Mini 10 isn’t up to the demands of rendering modern web design; disk I/O speed has nothing to do with the CPU’s (lack of) ability to chew through multiple layers of cruft adorning what used to be straightforward static HTML.

    So, equipped with Linux Mint / XFCE, it’s now found a new purpose in life:

    SnowWhite back in action
    SnowWhite back in action

    In truth, an Atom isn’t quite up to the demands of modern 3D printing, either, at least in terms of processing a huge G-Code file into a layer-by-layer path preview. Fortunately, Pronterface doesn’t generate the preview until you ask for it: arranging the UI to put the preview on a separate tab eliminates that problem.

    The Mini 10 can dribble G-Code into the printer just fine and looks much cuter than the hulking laptop in the background.

  • Whirlpool Refrigerator Drawer Strut Re-Re-Re-repair

    The support holding the two big drawers below the bottom shelf of our long-suffering Whirlpool refrigerator broke off. Having previously repaired and then replaced the tab holding the strut in place, then added metal skid plates to the bearing surfaces, I’m getting pretty good at fighting this particular bit of entropy to a standstill:

    Refrigerator strut - clamped glue joint
    Refrigerator strut – clamped glue joint

    Adding a few more clamps always make me feel good:

    Refrigerator strut - many clamps
    Refrigerator strut – many clamps

    Although a good solvent-bond joint should be as strong as the original plastic, that’s not saying much: I expect the end of that strut will break off again. Perhaps the central web is wide enough for a few small screws?

  • Mini-Lathe: Cover Screw Knobs and Change Gear Protector

    About the third time I removed the mini-lathe’s change gear cover by deploying a 4 mm hex wrench on its pair of looong socket head cap screws, I realized that finger-friendly knobs were in order:

    LMS Mini-lathe cover screw knobs - installed
    LMS Mini-lathe cover screw knobs – installed

    A completely invisible length of 4 mm hex key (sliced off with the new miter saw) runs through the middle of the knob into the screw, with a dollop of clear epoxy holding everything together:

    LMS Mini-lathe cover screw knobs - epoxied
    LMS Mini-lathe cover screw knobs – epoxied

    The 2 mm cylindrical section matches the screw head, compensates for the 1.5 mm recess, and positions the knobs slightly away from the cover:

    LMS Mini-lathe cover screw knob - solid model
    LMS Mini-lathe cover screw knob – solid model

    They obviously descend from the Sherline tommy bar handles.

    I built three of ’em at a time to get a spare to show off and to let each one cool down before the next layer arrives on top:

    LMS Mini-lathe cover screw knobs - on platform
    LMS Mini-lathe cover screw knobs – on platform

    The top and bottom surfaces have Octagram Spiral infill that came out nicely, although it’s pretty much wasted in this application:

    LMS Mini-lathe cover screw knob - Slic3r first layer
    LMS Mini-lathe cover screw knob – Slic3r first layer

    I have no explanation for that single dent in the perimeter.

    The cover hangs from those two screws, which makes it awkward to line up, so I built a shim to support the cover in the proper position:

    LMS Mini-lathe cover support shim - Slic3r preview
    LMS Mini-lathe cover support shim – Slic3r preview

    Nope, it’s not quite rectangular, as the change gear plate isn’t mounted quite square on the headstock:

    LMS Mini-lathe - cover alignment block
    LMS Mini-lathe – cover alignment block

    I decided when if that plate eventually gets moved / adjusted / corrected, I’ll just build a new shim and move on. A length of double-sticky tape holds it onto the headstock.

    Mounting the cover now requires only two hands: plunk it atop the shim, press it to the right so the angled side settles in place, insert screws, and it’s done.

    A short article by Samuel Will (Home Shop Machinist 35.3 May 2016) pointed out that any chips entering the spindle bore will eventually fall out directly into the plastic change gears and destroy them. He epoxied a length of PVC pipe inside the cover to guide the swarf outside, but I figured a tidier solution would be in order:

    LMS Mini-lathe - change gear shield
    LMS Mini-lathe – change gear shield

    The solid model looks just like that:

    LMS Mini-lathe cover shaft shield - Slic3r preview
    LMS Mini-lathe cover shaft shield – Slic3r preview

    The backside of the shield has three M3 brass inserts pressed in place. I marked the holes on the cover by the simple expedient of bandsawing the base of the prototype shield (which I needed for a trial fit), lining it up with the spindle hole, and tracing the screw holes (which aren’t yet big enough for the inserts):

    LMS mini-lathe - cover hole template
    LMS mini-lathe – cover hole template

    Yeah, that’s burned PETG snot around 10 o’clock on the shield. You could print a separate template if you prefer.

    The various diameters and lengths come directly from my lathe and probably won’t be quite right for yours; there’s a millimeter or two of clearance in all directions that might not be sufficient.

    Don’t expect the cover hole to line up with the spindle bore:

    LMS mini-lathe - view through cover and spindle
    LMS mini-lathe – view through cover and spindle

    I should build an offset into the shield that jogs the holes in whatever direction makes the answer come out right, but that’s in the nature of fine tuning; those holes got filed slightly egg-shaped to ease the shield a bit to the right and it’s all good.

    Heck, having the spindle line up pretty closely with the tailstock seems like enough of a bonus for one day.

    The OpenSCAD source code as a GitHub Gist:

    // Tweakage for LMS Mini-Lathe cover
    // Ed Nisley – KE4ZNU – June 2016
    Layout = "Shaft"; // Knob Shim Shaft
    use <knurledFinishLib_v2.scad>
    //- Extrusion parameters must match reality!
    // Print with 2 shells and 3 solid layers
    ThreadThick = 0.20;
    ThreadWidth = 0.40;
    HoleWindage = 0.3; // extra clearance to improve hex socket fit
    Protrusion = 0.1; // make holes end cleanly
    inch = 25.4;
    //———————-
    // Dimensions
    //- Knobs for cover screws
    HeadDia = 8.5; // un-knurled section diameter
    HeadRecess = 2.0; // … length inside cover surface + some clearance
    SocketDia = 4.0; // hex key size
    SocketDepth = 10.0;
    KnurlLen = 15.0; // length of knurled section
    KnurlDia = 20.0; // … diameter at midline of knurl diamonds
    KnurlDPNom = 12; // Nominal diametral pitch = (# diamonds) / (OD inches)
    DiamondDepth = 1.5; // … depth of diamonds
    DiamondAspect = 4; // length to width ratio
    KnurlID = KnurlDia – DiamondDepth; // dia at bottom of knurl
    NumDiamonds = ceil(KnurlDPNom * KnurlID / inch);
    echo(str("Num diamonds: ",NumDiamonds));
    NumSides = 4*NumDiamonds; // 4 facets per diamond
    KnurlDP = NumDiamonds / (KnurlID / inch); // actual DP
    echo(str("DP Nom: ",KnurlDPNom," actual: ",KnurlDP));
    DiamondWidth = (KnurlID * PI) / NumDiamonds;
    DiamondLenNom = DiamondAspect * DiamondWidth; // nominal diamond length
    DiamondLength = KnurlLen / round(KnurlLen/DiamondLenNom); // … actual
    TaperLength = 0*DiamondLength;
    //- Shim to support cover
    CoverTopThick = 2.0;
    ShimThick = 10.0;
    ShimCornerRadius = 2.0;
    ShimPoints = [[0,0],[60,0],[60,(13.5 – CoverTopThick)],[0,(14.5 – CoverTopThick)]];
    //- Shaft extension to keep crap out of the change gear train
    ID = 0;
    OD = 1;
    LENGTH = 2;
    Shaft = [24.0,30.0,41.0]; // ID=through, OD=thread OD, Length = cover to nut seat
    ShaftThreadLength = 3.0;
    ShaftSides = 6*4;
    ShaftNut = [45,50,16]; // recess around shaft nut, OD = outside of cover
    Insert = [3.5,5.0,8.0]; // 3 mm threaded insert
    NumCoverHoles = 3;
    CoverHole = [Insert[OD],35.0,12.0]; // ID = insert, OD = BCD, LENGTH = screw hole depth
    ShaftPoints = [
    [Shaft[ID]/2,0],
    [ShaftNut[OD]/2,0],
    [ShaftNut[OD]/2,Shaft[LENGTH]],
    [ShaftNut[ID]/2,Shaft[LENGTH]],
    [ShaftNut[ID]/2,Shaft[LENGTH] – ShaftNut[LENGTH]],
    [Shaft[OD]/2, Shaft[LENGTH] – ShaftNut[LENGTH]],
    [Shaft[OD]/2, Shaft[LENGTH] – ShaftNut[LENGTH] – ShaftThreadLength],
    [Shaft[ID]/2, Shaft[LENGTH] – ShaftNut[LENGTH] – ShaftThreadLength],
    ];
    //———————-
    // Useful routines
    module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
    Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
    FixDia = Dia / cos(180/Sides);
    cylinder(r=(FixDia + HoleWindage)/2,
    h=Height,
    $fn=Sides);
    }
    //- Build things
    if (Layout == "Knob")
    difference() {
    union() {
    render(convexity=10)
    translate([0,0,TaperLength]) // knurled cylinder
    knurl(k_cyl_hg=KnurlLen,
    k_cyl_od=KnurlDia,
    knurl_wd=DiamondWidth,
    knurl_hg=DiamondLength,
    knurl_dp=DiamondDepth,
    e_smooth=DiamondLength/2);
    color("Orange") // lower tapered cap
    cylinder(r1=HeadDia/2,
    r2=(KnurlDia – DiamondDepth)/2,
    h=(TaperLength + Protrusion),
    $fn=NumSides);
    color("Orange") // upper tapered cap
    translate([0,0,(TaperLength + KnurlLen – Protrusion)])
    cylinder(r2=HeadDia/2,
    r1=(KnurlDia – DiamondDepth)/2,
    h=(TaperLength + Protrusion),
    $fn=NumSides);
    color("Moccasin") // cylindrical extension
    translate([0,0,(2*TaperLength + KnurlLen – Protrusion)])
    cylinder(r=HeadDia/2,h=(HeadRecess + Protrusion),$fn=NumSides);
    }
    translate([0,0,(2*TaperLength + KnurlLen + HeadRecess – SocketDepth + Protrusion)])
    PolyCyl(SocketDia,(SocketDepth + Protrusion),6); // hex key socket
    }
    if (Layout == "Shim")
    linear_extrude(height=(ShimThick)) // overall flange around edges
    polygon(points=ShimPoints);
    if (Layout == "Shaft")
    difference() {
    rotate_extrude($fn=ShaftSides,convexity=5)
    polygon(points=ShaftPoints);
    for (i=[0:NumCoverHoles-1])
    rotate(i*360/NumCoverHoles)
    translate([CoverHole[OD]/2,0,-Protrusion])
    rotate(180/8)
    PolyCyl(Insert[OD],15,8);
    }

    The original doodle with more-or-less actual dimensions and clearances and suchlike:

    Cover to Shaft spacing doodles
    Cover to Shaft spacing doodles