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

  • Garden Step2 Seat: Axle Repair

    Garden Step2 Seat: Axle Repair

    The cart in Mary’s Vassar Farm plot returned in need of repair:

    Garden Seat - fractured body
    Garden Seat – fractured body

    Those fractures near the end of the axle let the axle erode the side wall:

    Garden Seat - eroded body
    Garden Seat – eroded body

    This will obviously require some sort of reinforcement on the body holding the axle, but the first challenge involved getting the wheels off the axle:

    Garden Seat - axle cover
    Garden Seat – axle cover

    Some brute force revealed the hub covers snapped over an install-only locking fastener:

    Garden Seat - axle retaining clip
    Garden Seat – axle retaining clip

    More brute force cut those fasteners (a.k.a. star-lock washers) to get the wheels off the axles.

    While contemplating the situation, a box of 606 bearings (as used in the PolyDryer auto-rewind spindles) failed to scamper out of the way and produced a victim fitting perfectly on the 8 mm axle:

    Garden Seat - bearing idea
    Garden Seat – bearing idea

    I regard such happenstance as a message from the Universe showing I’m on the right track. The alert reader will note the axle should not rotate, but does sport scars showing it’s done some turning in the recent past, so the bearing may not be a completely Bad Idea™.

    Finding a Lexan snippet exactly as thick as the bearing suggested bolting a plate across the side of the body to support the bearing, like this:

    Garden Seat - reinforcing plate installed
    Garden Seat – reinforcing plate installed

    Some layout work in LightBurn produced a template to mark the body for hand-drilling the holes:

    Garden Seat - drill marking template
    Garden Seat – drill marking template

    In retrospect, that was a mistake. I should have:

    • Laser-cut an MDF sheet to make a drill jig
    • Drilled one hole and inserted a screw
    • Drilled the rest of the holes in exactly the right places

    Instead, three of the holes in that nice Lexan sheet ended up slightly egg-shaped to adjust for mis-drilled holes in the body.

    Lexan does not laser-cut well at all, so that sheet was drilled to suit after using the template to mark the holes:

    Garden Seat - plate drilling
    Garden Seat – plate drilling

    Then it got bandsawed / belt-sanded into shape.

    I squeezed 5 mm rivnuts into whatever fiber-reinforced plastic they used for the body, which worked better than I expected. They’re intended for sheet metal, so I set the tool for 5 mm compression and they seem secure. I hope using plenty of screws across a large plate will diffuse the stress on each screw.

    Then I threaded the axles and used acorn nuts:

    Garden Seat - repaired axle installed
    Garden Seat – repaired axle installed

    In this situation, I regard JB KwikWeld epoxy as “removable with some effort”, as opposed to the destruction required with those star-lock washers. High-strength Locktite might also be suitable, but I do not anticipate ever having to remove these again for any reason and do not want the nuts to fall off in the garden.

    The re-replaced seat conjured from a cafeteria tray continues to work fine, as do its 3D printed hinges.

    It’ll reside in the shed until Spring rolls around …

  • Sears Humidifier Bottle Cap Reinforcement

    Sears Humidifier Bottle Cap Reinforcement

    In the midst of the humidification season, I spotted this while refilling one of the ancient Sears Humidifier bottles:

    Humidifier bottle cap reinforcement - crack
    Humidifier bottle cap reinforcement – crack

    While it’s possible to buy replacement caps, this seemed more appropriate:

    Humidifier bottle cap reinforcement - installed
    Humidifier bottle cap reinforcement – installed

    It’s PETG-CF, of course:

    Bottle cap reinforcement - solid model
    Bottle cap reinforcement – solid model

    The shape is a ring with a simplified model of the cap removed from the middle:

    Bottle cap reinforcement - lid solid model
    Bottle cap reinforcement – lid solid model

    It fits snugly over the cap atop a thin layer of JB PlasticBonder that should hold it in place forevermore:

    Humidifier bottle cap reinforcement - bottom view
    Humidifier bottle cap reinforcement – bottom view

    The other side shows the crack over on the right:

    Humidifier bottle cap reinforcement - top view
    Humidifier bottle cap reinforcement – top view

    Close inspection showed a few smaller cracks, so that cap was likely an original.

    I made another ring for the other cap, only to find it was slightly larger with a black washer inside: apparently a previous owner had replaced one of the caps. The OpenSCAD program has measurements for both, not that you have either.

    The OpenSCAD source code as a GitHub Gist:

    // Humidifier bottle cap reinforcement
    // Ed Nisley – KE4ZNU
    // 2025-11-29
    include <BOSL2/std.scad>
    Layout = "Show"; // [Show,Build,Cap]
    /* [Hidden] */
    Protrusion = 0.1;
    //—–
    // Bottle cap/valve
    // Collects all the magic numbers in one place
    Left = false; // the caps are different, of course
    CapODs = Left ? [43.0,42.1] : [43.1,42.9]; // [0] = base of cap
    CapHeight = 10.0;
    Notch = [0.6,2.0,8.5 + Protrusion]; // Z + hack for slight angle
    NumRibs = 24;
    RibAngle = 90 – atan(CapHeight/((CapODs[0]-CapODs[1])/2));
    echo(RibAngle=RibAngle);
    $fn=2*NumRibs;
    module Cap() {
    difference() {
    cyl(CapHeight,d1=CapODs[1],d2=CapODs[0],anchor=BOTTOM);
    for (a=[0:NumRibs-1])
    zrot(a*360/NumRibs)
    right(CapODs[1]/2) down(Protrusion)
    yrot(RibAngle)
    cuboid(Notch,anchor=RIGHT+BOTTOM);
    }
    }
    //—–
    // Reinforcing ring
    RingThick = 3.0;
    module Ring() {
    render()
    difference() {
    tube(CapHeight,od=CapODs[0] + 2*RingThick,id=CapODs[1] – 2*Notch.x,anchor=BOTTOM);
    Cap();
    }
    }
    // Build things
    if (Layout == "Cap")
    Cap();
    if (Layout == "Build" || Layout == "Show")
    Ring();
  • Silicone Handle Wrap

    Silicone Handle Wrap

    The common fate of all “soft touch” silicone handles is to become sticky and gooey. While some goo may be removable, I’ve found that wrapping self-bonding silicone tape around the mess both encapsulates it and maintains the grippiness of the original silicone.

    The most recent casualty is the decade-old ceramic crysknife I returned to service while the rest of the knives were being sharpened:

    Ceramic knife - silicone handle wrap
    Ceramic knife – silicone handle wrap

    While I was at it, I added griptivity to the leaf blower handle:

    Leaf blower - silicone handle wrap
    Leaf blower – silicone handle wrap

    Long years ago, before getting transparent silicone tape, I’d wrapped a kitchen slotted spoon:

    Kitchen spoon - silicone handle wrap
    Kitchen spoon – silicone handle wrap

    Stipulated: Butt-ugly and built to stay that way.

    Oddly, the handle on the matching spatula / scraper remains non-gooey to this day.

    Should you care more about form than function, this repair is not the one you seek …

  • Amazon Basics Alkaline AA Cell Failures

    Amazon Basics Alkaline AA Cell Failures

    A few weeks ago, the house seemed unusually warm when I crawled out of bed. Checking the heat pump thermostat woke me right up:

    Heat pump - battery critical
    Heat pump – battery critical

    This, as they say, is not a nominal outcome.

    A pair of AA alkaline cells powers the thermostat and, due to its wireless communication link to the heat pump’s air handler in the attic, it chews through two pairs a year. As you’d expect, it displays a “Battery Low” message for at least few days at the end of their lifetime, which was not the case for this failure.

    After replacing the cells, the thermostat reported that, yes indeed, the house was much warmer than usual:

    Heat pump - high temperature
    Heat pump – high temperature

    A temperature monitor showed the heat had jammed on in the deep of the night:

    Heat pump - runaway temperature
    Heat pump – runaway temperature

    The heat pump exhaust temperature showed a similar event:

    Heat pump - exhaust temperature
    Heat pump – exhaust temperature

    One of the AA cells showed about 1.3 V, but the other was around 0.25 V, suggesting an abrupt failure, rather than the normal gradual voltage decrease with plenty of time to replace the cells.

    It’s reasonable to jam the heat on when the thermostat isn’t communicating, rather than let the house gradually freeze, but it did come as a surprise. I don’t know how the heat pump reacts to a battery failure during the cooling season; not refrigerating the house would be perfectly fine in most circumstances.

    The Amazon Basics AA cells I’ve been using have worked as well as the Name Brand ones, so I was willing to write one off as happenstance.

    However, during the recent Daylight Saving Time dance, I discovered the clock in Mary’s Long Arm Sewing Room had stopped, with an Amazon Basics AA alkaline cell from the same lot inside:

    Failed clock AA cellFailed clock AA cell
    Failed clock AA cell

    The date shows I’d replaced it in March, with the previous cell lasting an amazing 3-½ years. This one was completely dead, reading barely 0.1 V, after seven months. Mary hasn’t had a quilting project at the long-arm stage in recent months, so the clock may have been stopped for quite a while.

    Perhaps something has gone badly wrong with Amazon’s battery supplier QC.

    As the saying goes: Once is happenstance. Twice is coincidence. Three times is enemy action.

  • Prusa MK4+MMU3 vs. Spool Join: Whoopsie

    Prusa MK4+MMU3 vs. Spool Join: Whoopsie

    Because nobody will ever see the Radiator Sleds, I started a batch with the tail end of the white PETG spool and set up the Spool Join function to switch to the retina-burn orange PETG when the white filament ran out.

    The two colors combined nicely on that layer:

    Prusa MK4 MMU filament joining
    Prusa MK4 MMU filament joining

    Unfortunately, the Spool Join didn’t work out quite right and I had to extricate the white filament from the MMU3, then coerce the orange filament into position.

    The key section of the MMU3 looks like this:

    Prusa MK4 MMU filament joiningPrusa Mk4 MMU3 selector
    Prusa MK4 MMU filament joiningPrusa Mk4 MMU3 selector

    The Selector assembly rides on the smooth rods, driven by the stepper motor on the far end of the leadscrew. It stops at one of the five filament tubes (visible to the left of the upper smooth rod, with filament tips showing), whereupon a drive gear pushes the filament into the Selector, under the FINDA sensor (the threaded fitting sticking out of the top), into the PTFE tube, down to the Nextruder, through the idler to trip the Filament Sensor, then into the extruder’s planetary drive gear.

    I think this happened:

    • The rear end of the white filament passed through the FINDA sensor
    • The MK4 reversed the Nextruder to drive the filament back into the MMU3
    • The rear end of the filament didn’t reenter its filament tube and escaped out to the side
    • The MMU3 drive gear couldn’t pull the filament backward, because the back end was misplaced
    • The Extruder planetary drive gear couldn’t pull the filament forward, because the front end was now above the gear
    • Both the FINDA and the Filament Sensor showed the filament was present, so the MK4 knew something was wrong

    Fortunately, I was watching the whole operation and could intervene.

    The MMU3 works well when the filament behaves properly, but it’s very sensitive to bends in the filament and misshapen ends. In this case, the white filament had the usual tight curve due to being would around the spool hub, which was enough to mis-align its end with the MMU3 tube while backing out.

    Trust, but verify.

  • Handlebar Grip Sleeve

    Handlebar Grip Sleeve

    Mary’s zero-mph crash loosened the starboard handlebar plug enough to let it eventually decamp for parts unknown. Its replacement, a somewhat fancier aluminum plug with an expanding cone retainer using an actual M3 nut, worked fine for the last year, but Mary recently noticed the socket head screw had worked loose.

    In the interim, I’d moved the Bafang thumb control from its original position on the crossbar to just above the rear shifter:

    Tour Easy - right handlebar control stack
    Tour Easy – right handlebar control stack

    Which moved the clamp on the shortened grip off the end of the handlebar tube, so I flipped the grip around, tightened the clamp, and installed the plug.

    Unfortunately, the grip ID is 4 mm larger than the tube ID, which meant the plug’s cone retainer was struggling to hold on in there. Perhaps the plastic cone has relaxed bit, but I figured giving it more traction would be a Good Idea™ before I declared victory:

    Handlebar Grip Sleeve - PrusaSlicer
    Handlebar Grip Sleeve – PrusaSlicer

    It’s a little plastic sleeve with slots to let it expand against the inside of the grip:

    Handlebar grip sleeve - installed
    Handlebar grip sleeve – installed

    Yes, it’s sticking out slightly; you can see the corresponding gap up inside next to the tube.

    A wrap of double-sided sticky tape glues it in place as the retainer presses it against the grip ID and a dot of low-strength Loctite should keep the screw from loosening again.

    The OpenSCAD source code:

    // Handlebar grip sleeve
    // Ed Nisley - KE4ZNU
    // 2025-10-25
    
    include <BOSL2/std.scad>
    
    /* [Hidden] */
    
    ID = 0;
    OD = 1;
    LENGTH = 2;
    
    HoleWindage = 0.2;
    Protrusion = 0.1;
    NumSides = 3*2*4;
    
    $fn=NumSides;
    
    Sleeve = [18.5,22.0,14.0];
    Kerf = 1.0;
    
      difference() {
        tube(Sleeve[LENGTH],id=Sleeve[ID],od=Sleeve[OD],anchor=BOTTOM);
        for (a=[0,90])
          zrot(a)
            up(Sleeve[LENGTH]/4)
              cuboid([2*Sleeve[OD],Kerf,Sleeve[LENGTH]],anchor=BOTTOM);
      }
    
    

    That was easy …

  • No Kings

    No Kings

    I discovered this commentary, in several variations in different contexts, after attending the Poughkeepsie No Kings protest last weekend:

    You are allowed to say, at any point, “I can’t support this”.

    Even if you did.

    Even if you were unsure.

    You can say, at any point, “This has gone too far.”

    And, while the best time to say that was earlier, the second best time is now.

    That is relevant, because the Executive branch of the United States government has internalized two facts:

    • There are no rules
    • There are no consequences

    The President and the Executive branch now act with the knowledge that the separation of powers, the checks and balances, and the restrictions written into the US Constitution no longer apply.

    Justifications based on Constitutional hairsplitting are irrelevant. The Founding Fathers did not intend the Executive branch to operate as it does now.

    Justifications based on “But what about …?” are irrelevant. The scale of current malfeasance dwarfs all precedent; there are no valid comparisons.

    Justifications based on “But Congress is dysfunctional!” are irrelevant. It takes only one to dysfunction and the parties have been swapping irresponsibility for decades.

    I commend to your attention the Army Talk Orientation Fact Sheet 64 from March 1945. It is straight-up US WWII propaganda with a rosy view of the Soviet Union, but you should fact-check all items in the section “Can We Spot It?” on page 4 against current events.

    Should you think your particular identity, institution, tradition, behavior, property, possessions, protection, legality, or beliefs will remain untouched because you’re in a particular group, you are incorrect.

    I changed my voter registration to “No Party” several decades ago, when it became evident the Republican Party had lost interest in whatever small-government / low-deficit / personal-responsibility principles it may have once had; thinking it had those principles was likely a misunderstanding on my part.

    I cannot support many planks of the Democratic Party’s platform, either, but they remain based in rule-of-law and have some appreciation of what functions a government should perform.

    I still vote in every election and intend to continue doing so.

    WordPress likes images and this seems appropriate:

    No Kings Logo
    No Kings Logo