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.

Tag: Repairs

If it used to work, it can work again

  • Craftsman Narrow Spring Clamp Jaws

    Craftsman Narrow Spring Clamp Jaws

    Quite some years ago I (ab)used several Craftsman (I’ve had them a long time) long narrow spring clamps while calibrating some thermocouples, much to the detriment of their rubbery jaws. The original gasket compound hackery didn’t work well, but eventually some of it stuck and I’ve been using them ever since:

    Craftsman Long Spring Clamp Jaw Pad - gasket compound
    Craftsman Long Spring Clamp Jaw Pad – gasket compound

    Now that I can 3D print TPU, however, it was time to fit better jaws in those things.

    The solid model eventually looked like this:

    Craftsman Long Spring Clamp Jaw Pads - solid model detail
    Craftsman Long Spring Clamp Jaw Pads – solid model detail

    The OpenSCAD code is replete with juicy magic numbers based on what few measurements I could make, then tweaked to fit the jaw where it had to go:

    <<< snippage >>>
    
    NumPads = 2 * 4;
    
    PadThick = 1.3;
    TabHeight = 1.5;
    
    module Tab() {
    
      difference() {
        linear_extrude(TabHeight)
          trapezoid(h=4.5,w1=1.4,w2=1.2,rounding=0.2,anchor=FRONT);
        back(5.5)
          xrot(60)
            cuboid([5,5,10],anchor=FRONT);
      }
    }
    <<< snippage >>>
    
    if (Layout == "Build") {
    nx = ceil(sqrt(NumPads));
    ny = nx;
    
    for (nx = [0:nx-1], ny = [0:ny-1])
      right(nx*Gap)
        back(ny*Gap)
          union() {
            linear_extrude(PadThick)
              trapezoid(h=7.5,w1=5.2,w2=4.2,rounding=0.2,anchor=FRONT);
            up(PadThick)
              back(0.5)
                Tab();
        }
    }
    
    

    The results is basically too small for the Prusa MK4 with the 0.8 mm nozzle laying down 0.4 mm layers, but the Makergear M2 with its 0.35 mm nozzle was in the midst of a heart attack at the time (about which, more later).

    The PrusaSlicer preview shows the chunky result:

    Craftsman Long Spring Clamp Jaw Pad - PrusaSlicer 0.8mm nozzle × 0.4mm layer detail
    Craftsman Long Spring Clamp Jaw Pad – PrusaSlicer 0.8mm nozzle × 0.4mm layer detail

    Because they’re so small, I printed nine at a time to get reasonable cooling and repair all four clamps.

    A few iterations produced a workable size & shape:

    Craftsman Long Spring Clamp Jaw Pad - size trials vs final install
    Craftsman Long Spring Clamp Jaw Pad – size trials vs final install

    The nicely curved profile comes from gluing them in place while gripping sturdy closed-cell foam:

    Craftsman Long Spring Clamp Jaw Pad - foam clamping
    Craftsman Long Spring Clamp Jaw Pad – foam clamping

    I used E6000+ adhesive, mostly because the tube didn’t scamper out of the way, but classic E6000 with nasty solvents might be Even Better. Neither would bond to the clamp’s plastic, so the eventual repair will once again require prying out debris with a dental pick.

    After resucitating the M2 , I resliced the model with 0.2 mm layers:

    Craftsman Long Spring Clamp Jaw Pad - PrusaSlicer 0.4mm nozzle × 0.2mm layer - detail
    Craftsman Long Spring Clamp Jaw Pad – PrusaSlicer 0.4mm nozzle × 0.2mm layer – detail

    Which looks much prettier in real life:

    Craftsman Long Spring Clamp Jaw Pad - detail - 0.8 vs 0.4 mm nozzle
    Craftsman Long Spring Clamp Jaw Pad – detail – 0.8 vs 0.4 mm nozzle

    A small ziplock bag with those nine pretty jaws now hangs from the rail supporting Too Many Clamps against future need.

  • Electrolux Dust Brush: Replacement Rubber

    Electrolux Dust Brush: Replacement Rubber

    The Electrolux Model G vacuum cleaner that Came With The Previous House™ has a dust brush attachment resembling a creature from a deep sea trench:

    Electroxlux Brush Ball - OEM assembled
    Electroxlux Brush Ball – OEM assembled

    Those bristles recently fell out during a cleaning session:

    Electroxlux Brush Ball - OEM with brush
    Electroxlux Brush Ball – OEM with brush

    I will never know their backstory, but the rough-cut metal ring strongly suggests they’re a replacement for the original Electrolux bristles. Given that the Model G dates back to the early sixties, that puppy has been around for six decades and counting.

    The rubber insert in the aluminum ball had long since fossilized:

    Electroxlux Brush Ball - OEM rubber
    Electroxlux Brush Ball – OEM rubber

    Not knowing if it would come out in approximately one piece, a doodle records whatever dimensions I could measure:

    Electroxlux Brush Ball - exterior measurements
    Electroxlux Brush Ball – exterior measurements

    Surprisingly, it remained just flexible enough:

    Electroxlux Brush Ball - OEM rubber removed
    Electroxlux Brush Ball – OEM rubber removed

    So I could measure a few more rubber dimensions:

    Electroxlux Brush Ball - rubber measurements
    Electroxlux Brush Ball – rubber measurements

    And ball dimensions:

    Electroxlux Brush Ball - metal measurements
    Electroxlux Brush Ball – metal measurements

    After screwing around drawing Beziér curves for maybe half an hour, I realized a crude polygonal approximation would work perfectly well when 3D printed in TPU with a 0.8 mm nozzle:

    Electroxlux Brush Ball - show 5 view
    Electroxlux Brush Ball – show 5 view

    Which had the compelling advantage I could exactly specify the points and tweak them for an exact fit:

    SplitHeight = 15;
    SplitCube = [100,100,SplitHeight - Protrusion];
    
    NozzleHeight = 15 + SplitHeight;          // above top of ball nozzle
    
    Pts = [
      [61,11],[62,6],[61,2],[55,0],[48,0],    // outside bottom
      [38,5],[33,11],
      [31,SplitHeight],[26,SplitHeight],      // atop ball nozzle rim
      [26,18],[27,19],[31,NozzleHeight],[33,NozzleHeight],    // bristle reinforcement
      [39,19],[40,18],[40,16],
      [35,SplitHeight],
      [36,11],[40,6],                         // inside bottom
      [45,3],[48,2],[52,1],[55,1],
      [59,3],[60,6],[58,9],[59,11],                  // brush metal rim seat
      [61,11],
    ];
    
    

    Turn those points into a polygon, spin it into a ring, and add a ghostly plane to show where the model separates into printable halves:

    if (Layout == "Show") {
        scale([0.5,0.5,1.0])
          rotate_extrude(angle=Slice,start=0,convexity=5) polygon(Pts);
        up(SplitHeight)
          color("Orange",0.2)
            cuboid([100,100,Protrusion],anchor=BOTTOM);
    }
    

    The scale() compensates for the list of points having easily measured real-life diameters, but the polygon() must be at the radius away from the origin; you could divide all the X axis coordinates in the list by two. Dimensions along the Z axis remain unchanged.

    Like this:

    Electroxlux Brush Ball - show 360 view
    Electroxlux Brush Ball – show 360 view

    Split it along the ghostly plane into printable parts:

    if (Layout == "Build") {
      fwd(50)
        intersection() {
          scale([0.5,0.5,1.0])
            rotate_extrude(convexity=5) polygon(Pts);
          cuboid(SplitCube,anchor=BOTTOM);
        }
      back(30)
        intersection() {
          down(SplitHeight)
            scale([0.5,0.5,1.0])
              rotate_extrude(convexity=5) polygon(Pts);
          cuboid(SplitCube,anchor=BOTTOM);
        }
    
    }
    

    Like this:

    Electroxlux Brush Ball - build view
    Electroxlux Brush Ball – build view

    Run the model through PrusaSlicer, install the 0.8 mm nozzle in the MK4, load TPU filament, let the magic happens, then dab JB PlasticBonder urethane adhesive around the mating rim of the bottom part:

    Electroxlux Brush Ball - gluing part
    Electroxlux Brush Ball – gluing part

    Yeah, black would be more better, but tan is fine.

    Flip it over, eyeballometrically center the gooey ring in the wide rim of the nozzle, and let it cure.

    Which eventually looks like it grew that way:

    Electroxlux Brush Ball - replacement TPU
    Electroxlux Brush Ball – replacement TPU

    See? Crude low-poly models FTW!

    As usual, however, it takes two to make a thing go right:

    Electroxlux Brush Ball - TPU versions
    Electroxlux Brush Ball – TPU versions

    The first pass in the center front showed the outer rim needed a deeper recess to grip the metal ring around the bristles; I’m sure I could pry the bristles out of the second version if lives depended on it.

    I added the elongated nozzle to stand halfway up inside the bristles to keep them from collapsing inward under suction:

    Electroxlux Brush Ball - nozzle in brush
    Electroxlux Brush Ball – nozzle in brush

    It’s definitely better than it was!

    Might last another half-century; the original Electrolux vacuums are survivors.

  • Mini-Lathe Carriage Stop: Oops Redux

    Mini-Lathe Carriage Stop: Oops Redux

    Not the first time this has happened:

    Mini-lathe carriage stop - oops
    Mini-lathe carriage stop – oops

    Confronted with a pair of perfectly fitting granular surfaces, a drop of thick cyanoacrylate adhesive seemed appropriate.

    As before, we’ll see how long it survives …

  • PolyDryer Box Auto-rewind Spindle Spring Cap Rebuild

    PolyDryer Box Auto-rewind Spindle Spring Cap Rebuild

    Although the auto-rewind spindles for the PolyDryer Boxes have worked well for over a year, one of them recently stopped rewinding. After some fiddling about with all the usual suspects, I dismantled the spindle and found this inside:

    Auto-rewind spindle - failed spring slot
    Auto-rewind spindle – failed spring slot

    The spring tab barely visible below the separated filament layers normally fits in that slot, but now rotates freely as the spring turns with the spindle’s axle.

    A short while later:

    Auto-rewind spindle - reprinted spring cap
    Auto-rewind spindle – reprinted spring cap

    The minuscule carbon fibers in PETG-CF don’t improve the layer-to-layer adhesion and may make it worse, particularly in designs with very small cross-sections.

    I use PETG-CF mostly because I like how it looks, as few of my designs require even moderate tensile strength.

  • Outdoor Lamp Glass Retainers

    Outdoor Lamp Glass Retainers

    Tucking seasonal decorations into the lamps bracketing the garage door would be much easier if the rubber buttons retaining the glass panes were squishy cylinders, rather than fossilized pebbles:

    Outdoor Lamp Glass Retainers - old vs new
    Outdoor Lamp Glass Retainers – old vs new

    The five tidy buttons on the right are black TPU, hot off the MK4’s printbed:

    Outdoor Lamp Glass Retainers - PrusaSlicer preview
    Outdoor Lamp Glass Retainers – PrusaSlicer preview

    The flange allows for some, shall we say, dimensional variation in the installation:

    Outdoor Lamp Glass Retainers - old vs new - installed
    Outdoor Lamp Glass Retainers – old vs new – installed

    They’re just a tube atop a cylinder:

    nx = ceil(sqrt(NumButtons));
    ny = nx;
    
    union()
    for (nx = [0:nx-1], ny = [0:ny-1])
      right(nx*(FlangeOD + Gap))
        back(ny*(FlangeOD + Gap))
          render()
          union() {
            cyl(FlangeHeight,d=FlangeOD,circum=true,anchor=BOTTOM);
            tube(ButtonOA.z,od=ButtonOA[OD],id=ScrewOD,circum=true,anchor=BOTTOM);
          }
    
    

    Feel free to set up your own dimensions, in the unlikely event you have lamps in need of similar buttons.

    Each of the three lamps has sixteen buttons and, although PrusaSlicer allows you to set the number of instances, its Arrange tool doesn’t make a tidy / compact layout. Doing the layout in OpenSCAD saves a bunch of hassle, with the overall union() turning the array into a single object.

    It might not be the best decoration, but it should suffice:

    Outdoor Lamp Glass Retainers - with decoration
    Outdoor Lamp Glass Retainers – with decoration

    Now, to make critters for the driveway …

  • One-Watt LED Autopsy: No Trouble Found

    One-Watt LED Autopsy: No Trouble Found

    Over the last several weeks the taillight on Mary’s Tour Easy became dim. I verified the LED had failed by soldering the taillight driver to a different 1 W LED stuck on a separate heatsink, whereupon the LED lit up as it should.

    Testing the failed LED with a bench power supply clipped to its wires showed it passed only 15 mA, even with 6 V applied directly to the wires. Those 1 W LEDs normally drop 2 V at 400 mA, so something was definitely wrong in there.

    Which meant I had to build another taillight, as described yesterday, and reuse the original electronics and PVC tube. After mounting the new taillight on Mary’s bike, I could autopsy the failed LED.

    Because everything is glued into the heatsink, the first step is cutting it apart to free the LED:

    1W red LED Autopsy - heatsink parting
    1W red LED Autopsy – heatsink parting

    I stopped the first cut when it just kissed the two wire holes, moved over a little more than the width of the cutoff tool, and tried again. Second time was the charm and I now have a clean aluminum tube that ought to come in handy for something, sometime.

    Concerted prying under the edge of the LED PCB popped it off the heatsink:

    1W red LED Autopsy - heatsink epoxy bond
    1W red LED Autopsy – heatsink epoxy bond

    The red wire sticking out on the right shows a little damage from the cutoff tool, which also chipped the epoxy while bending the aluminum LED base. The bare spot in the middle matches the screw hole in the heatsink, with the rest remaining firmly bonded, so the epoxy was doing its job.

    Prying the LED off the lens holder:

    1W red LED Autopsy - lens holder detached
    1W red LED Autopsy – lens holder detached

    If I didn’t know better, I’d say the red silicone insulation was sun-faded, but for sure no sun gets inside the lens holder.

    An ohmmeter showed both wires had good continuity to their LED pads, which were firmly soldered to the PCB pads; the pads don’t carry any current in this setup. I then hitched up the bench supply to the wires again:

    1W red LED Autopsy - no trouble found
    1W red LED Autopsy – no trouble found

    Whereupon the LED glowed brightly and some quick testing (because it’s not on a heatsink) with the bench supply in constant-current mode showed it once again drew about 400 mA with 2 V applied and glowed brilliantly as it should.

    I had previously removed the reflowed solder from the PCB thermal pad and added thermal paste before resoldering the LED:

    1W LED - thermal grease
    1W LED – thermal grease

    So I have no idea what caused the original failure, how the LED could survive with 6 V applied to its terminals, or what would have caused it to recover. It now has a “?” scrawled on the PCB for future reference.

    The world is full of mysteries …

  • One-watt LED Thermal Pad Reflow: Nope

    One-watt LED Thermal Pad Reflow: Nope

    While building up another taillight for Mary’s Tour Easy (about which, more later) and based on previous experience, I wondered if the 1 W red LED’s thermal pad was soldered to the circuit board as it should be.

    Lo and behold, the solder paste was reflowed, likely while tinning the six solder pads:

    Tour Easy Running Light - 1W LED PCB solder
    Tour Easy Running Light – 1W LED PCB solder

    But not with the LED in place:

    Tour Easy Running Light - 1W LED base glue
    Tour Easy Running Light – 1W LED base glue

    What looks like melted solder is really an adhesive layer, much like the craft adhesive sheet I use to stick things together. Presumably, they just glue the LEDs to the PCB / heatsink, solder its two leads by hand, and call it done.

    Checking an LED marked “Dead” on the backside of its heatsink shows the amount of solder paste varies, but the LED wasn’t there when it melted:

    1W LED - base glue and PCB solder
    1W LED – base glue and PCB solder

    This not being the first time, I cleaned the adhesive off the center pad and the LED, removed the solder, applied a dab of heatsink grease, and soldered the LED in place.

    Which looked like this on the previous taillight:

    1W LED - thermal grease
    1W LED – thermal grease

    Might be a bit too much grease, but it’s certainly a better heat conductor than adhesive.