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: Home Ec

Things around the home & hearth

  • Wire Plant Stand Feet

    Wire Plant Stand Feet

    A pair of plant stands from a friend’s collection ended up in Mary’s care and cried out for feet to keep their welded steel wire legs from scratching the floor:

    Wire plant stand feet - indoor stand
    Wire plant stand feet – indoor stand

    Admittedly, it’s not the prettiest stand you can imagine, but the sentimental value outweighs all other considerations.

    The feet are shrink-wrapped around the legs with enough curviness to look good:

    Wire plant stand feet - show side view
    Wire plant stand feet – show side view

    With a drain hole in the bottom to prevent water from rusting the wires any more than they already are:

    Wire plant stand feet - show bottom view
    Wire plant stand feet – show bottom view

    I briefly considered a flat bottom at the proper angle to sit on the floor, but came to my senses; it would never sit at the proper angle.

    The end results snapped into place:

    Wire plant stand feet - indoor detail
    Wire plant stand feet – indoor detail

    Of course the other stand, at first glance identical to the one above, has a different wire size and slightly different geometry, which I only discovered after printing another trio of feet. Changing the appropriate constants in the OpenSCAD program and waiting an hour produced a better outcome:

    Wire plant stand feet - outdoor stand
    Wire plant stand feet – outdoor stand

    Living in the future is good, all things considered.

    The OpenSCAD code as a GitHub Gist:

    // Wire plant stand feet
    // Ed Nisley KE4ZNU
    // 2024-11-06
    Layout = "Show"; // [Show,Build,Leg,LegPair,FootShell,Foot,Section]
    /* [Hidden] */
    ID = 0;
    OD = 1;
    LENGTH = 2;
    TOP = 0;
    BOT = 1;
    FootLength = 30.0; // vertical foot length
    LegRings = // [255.0,350.0,300.0]; // top dia, bottom dia, vertical height
    [260.0,312.0,300.0];
    WireOD = //4.6 + 0.4; // oversize to handle bent legs
    5.7 + 1.0;
    DrainOD = 4.0; // drain hole in the bottom
    LegWidth = // [65.0,9.7]; // outer width at top & bottom
    [95.0, 12.0];
    LegAngle = atan((LegWidth[TOP] – LegWidth[BOT])/(2*LegRings[LENGTH]));
    StandAngle = atan((LegRings[TOP] – LegRings[BOT])/(2*LegRings[LENGTH]));
    WallThick = 3.0;
    FootWidth = 2*[WallThick,WallThick] +
    [LegWidth[BOT] + LegWidth[TOP]*FootLength/LegRings[LENGTH],LegWidth[BOT]];
    echo(FootWidth=FootWidth);
    NumSides = 2*3*4;
    Protrusion = 0.1;
    //—– Set up pieces
    module Leg() {
    hull()
    for (k = [0,1])
    translate([0,0,k*LegRings[LENGTH]])
    sphere(d=WireOD,$fn=NumSides);
    }
    module LegPair() {
    for (i = [-1,1])
    translate([i*(LegWidth[BOT] – WireOD)/2,0,0])
    rotate([0,i*LegAngle,0])
    rotate(180/NumSides)
    Leg();
    hull() // simulate weld for flat bottom
    for (i = [-1,1])
    translate([i*(LegWidth[BOT] – WireOD)/2,0,0])
    rotate([0,i*LegAngle,0])
    rotate(180/NumSides)
    sphere(d=WireOD,$fn=NumSides);
    }
    module FootShell() {
    difference() {
    hull() {
    for (i = [-1,1]) {
    translate([i*((FootWidth[BOT] – WireOD)/2 – WallThick),0,0])
    rotate(180/NumSides)
    sphere(d=(WireOD + 2*WallThick),$fn=NumSides);
    translate([i*((FootWidth[TOP] – WireOD)/2 – WallThick),0,FootLength – WireOD/2])
    rotate(180/NumSides)
    sphere(d=(WireOD + 2*WallThick),$fn=NumSides);
    }
    }
    translate([0,0,FootLength + FootLength/2])
    cube([2*FootWidth[TOP],10*WallThick,FootLength],center=true);
    rotate(180/NumSides)
    cylinder(d=DrainOD,h=4*FootLength,center=true,$fn=NumSides);
    }
    }
    module Foot() {
    difference() {
    FootShell();
    hull()
    LegPair();
    }
    }
    //—– Build it
    if (Layout == "Leg")
    Leg();
    if (Layout == "LegPair")
    LegPair();
    if (Layout == "FootShell")
    FootShell();
    if (Layout == "Foot")
    Foot();
    if (Layout == "Section")
    difference() {
    Foot();
    cube([FootWidth[TOP],(WireOD + 2*WallThick),2*FootLength],center=false);
    }
    if (Layout == "Show") {
    rotate([StandAngle,0,0]) {
    Foot();
    color("Green",0.5)
    LegPair();
    }
    }
    if (Layout == "Build")
    translate([0,0,FootLength])
    rotate([0*(90-StandAngle),180,0])
    Foot();
  • Curtain Rod Spring Pusher Block

    Curtain Rod Spring Pusher Block

    Spotted during Autumn Window Cleaning:

    Curtain rod pusher block - spring contortion
    Curtain rod pusher block – spring contortion

    That’s the compression spring inside the curtain rod over the kitchen sink, intended to push the ends against the cabinets on either side. The screw slides along the outer rod and when tightened, backstops the spring against the inner rod.

    The end of the spring is apparently intended to twist and jam inside the inner half of the rod, but that seemed so … unesthetic.

    Being in the midst of setting up a Windows 11 box for the laser cutter, I used it as an excuse to fiddle with the RDP configuration to get LightBurn running in full screen mode on the monitor atop my desk; more about all that later.

    The little pusher block is a hull around a pair of circles the same diameter as the smaller dimension of the inner rod, spaced apart enough to match its width, then laser-cut from a scrap of 1/4 inch acrylic:

    Curtain rod pusher block - overview
    Curtain rod pusher block – overview

    Which assembles as you’d expect:

    Curtain rod pusher block - installed
    Curtain rod pusher block – installed

    The spring seems much happier pushing against the block, doesn’t it?

    Admittedly, this was completely unnecessary, but if you think of it as a side effect of the Win 11 thing, it makes at least a little sense.

  • Sears Humidifier: Bottle Patching

    Sears Humidifier: Bottle Patching

    Although the Sears humidifier (Model 758.154200 if you’re keeping score) that Came With The House™ works fine with its lid hinges broken, Mary heard an odd hissing sound somewhere inside. The sound continued with the thing unplugged and, after a protracted struggle in the kitchen sink, we tracked the sound to a crack in one of the dimples joining the front and back faces of the right-side water bottle:

    Sears Humidifier bottle - overview
    Sears Humidifier bottle – overview

    The vertical shaded bars come from the camera’s electronic shutter vs. unfiltered 60 Hz AC powering the shop LED lights.

    Unsurprisingly, replacement bottles are no longer available, although you can get fill caps and valves, plus wicking filters.

    A water drop squeezed in the crack:

    Sears Humidifier bottle - crack
    Sears Humidifier bottle – crack

    The bottles are polyethylene that sneers at any normal sealant, but I have a few square inches of tape intended for repairs exposed to weather. I didn’t get the snippet aligned just as I wanted, but its gooey adhesive definitely covered the crack:

    Sears Humidifier bottle - patched
    Sears Humidifier bottle – patched

    The bottles normally operate with a slight vacuum, thus the air hissing through the crack, so the tape need not withstand any continuous pressure and the adhesive layer should flow into the crack if it goes anywhere at all.

    Protip: the gooey adhesive bonds instantly and irrevocably to whatever it touches, so do a trial fit before you peel off the backing tape.

    If the “Serial” is a date code, it’s been around for while:

    Sears Humidifier - data plate
    Sears Humidifier – data plate

    It should be good for a few more decades …

  • Laser Test Paper: Weathering

    Laser Test Paper: Weathering

    Three months of outdoor exposure suggest that laser test paper can survive use as a plant tag for one growing season, at least when it remains flat:

    Laser test paper - small plant labels - 3 month exposure
    Laser test paper – small plant labels – 3 month exposure

    The two upper tags demonstrated the paper has no flexibility worth mentioning, so it cannot become a tag wrapped around a stem.

    The two lower labels spent their time tucked into a window frame where they got plenty of sun & rain without the benefit of a backing plate. Looks good to me!

    Contrary to my expectation, the craft adhesive sheet behind this label survived intact, although the label itself took some damage, perhaps from the more direct sunlight out on the deck:

    Laser test paper - plant marker - 3 month exposure
    Laser test paper – plant marker – 3 month exposure

    In any event, they look Good Enough™ for our simple needs and next year’s plants will be properly labeled.

  • Doorbell Button Skulls

    Doorbell Button Skulls

    With only days to spare, I decorated the doorbell button:

    Doorbell button skulls - installed
    Doorbell button skulls – installed

    Yeah, I jammed Sharpies in the eye sockets, but they look exactly the way they should. The middle skull is in the middle of the actuator in the hope that’s where it’ll get pushed.

    The solid model comes directly from the seasonally appropriate teapot lid handle with a rectangle to suit the doorbell button actuator:

    Doorbell Button Skulls - solid model
    Doorbell Button Skulls – solid model

    Perforce, the OpenSCAD code has eyeballometric magic numbers:

    // Doorbell Button Enhancement
    // Ed Nisley - KE4ZNU
    // 2024-10-28
    
    Button = [5.0,13.0,40.0];    // button width, boss depth, button height
    
    union() {
        rotate([0,0,65])
        translate([-121,-105])      // totally eyeballometric
            import("stackofskulls - 50mm.obj",convexity=10);
    
            translate([0,Button.y/2,Button.z/2])
                cube(Button,center=true);
    }
    

    The rectangular slab goes all the way down to the platform because I couldn’t be bothered with support or a little wedge.

    I’m sure it will survive exactly as long as it must.

    Dunno how many little ones will venture up the driveway, though:

    Halloween mailbox decorations
    Halloween mailbox decorations
  • Cart Coin Handle vs. Reality

    Cart Coin Handle vs. Reality

    This failed pretty much the way I expected:

    Cart Coin - broken handle
    Cart Coin – broken handle

    The “carbon fiber” part of PETG-CF consists of very very short fibers, unlike the longer fibers in real carbon fiber materials, so the strength is nowhere near what you might expect from the marketing. I knew this going in and the break wasn’t surprising.

    Round cart coins continue to work exactly like US quarters.

  • Humidifier Lid Hinges

    Humidifier Lid Hinges

    The humidifier that Came With The House™ had a lid with two broken plastic hinges that I figured I could never replace, but while cleaning out the fuzz for the upcoming season I found one missing piece stuck inside the lid. Given a hint, I glued it back in place:

    Humidifier Hinge - outlined
    Humidifier Hinge – outlined

    There’s a strip of duct tape around the outside holding the fragment in place while the adhesive cured.

    A manual curve fit to the image in Inkscape produced the red outline, which gets saved as a plain SVG and fed into OpenSCAD to create a solid model:

    Humidifier Hinge - solid model
    Humidifier Hinge – solid model

    The cylinder doesn’t exactly fit the end of the hinge, but it’s close enough. The straightforward OpenSCAD code making that happen:

    // Humidfier Hinge Replacement
    // Ed Nisley KE4ZNU
    // 2024-10-20
    
    HingeThick = 10.0;
    PinLength = 10.0;
    
    ScrewOD = 2.0;
    
    NumSides = 2*3*4;
    Protrusion = 0.1;
    
    difference() {
        union() {
            translate([0,0,HingeThick])
                cylinder(d=6.0,h=PinLength,$fn=NumSides);
    
            linear_extrude(height=10.0,convexity=5)
                translate([-3.1,-8.0])
                    import("Humidifier Hinge - ouline.svg");
        }
    
        cylinder(d=ScrewOD,h=4*(HingeThick + PinLength),center=true,$fn=8);
    }
    

    The pin has a hole for a M2 screw, but contemplation of the broken pieces suggested the pin wasn’t the weakest link, which later experience confirmed.

    Figuring I’d need only one hinge, I made a spare for fitting:

    Humidifier hinge - on platform
    Humidifier hinge – on platform

    The unmodified part fit just about perfectly, whereupon a completely ad-hoc fixture involving a pair of laser-cut MDF slabs, a craft stick epoxy mixer, and more duct tape held it in place while the adhesive cured:

    Humidifier hinge - fixturing
    Humidifier hinge – fixturing

    The hinge pin turned out to be half a millimeter too long, which is easily fixed, and it worked fine:

    Humidifier hinge - installed
    Humidifier hinge – installed

    That’s more duct tape wrapped around the perimeter to hold the pieces in place, should it break again.

    Which, I regret to report, occurred on the way up the stairs from the Basement Shop™ when the lid slipped from my grasp, fell away from the rest of the humidifer’s top panel, and jammed open:

    Humidifier hinge - break
    Humidifier hinge – break

    The PETG-CF part held together, the adhesive remained bonded to both pieces, but the original plastic fractured just below the joint. A closer look from the other side shows the break:

    Humidifier hinge - break detail
    Humidifier hinge – break detail

    The other hinge broke about where it did before.

    So the humidifier remains in service with the lid in status quo ante and a small bag inside holding the fragments for the next return to the shop.

    Drat!