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

  • Bicycle Mobile Rebuild

    Bicycle Mobile Rebuild

    A long-lost repair finally made it to the top of the list:

    Bicycle Mobile - bottom view
    Bicycle Mobile – bottom view

    The original string had long since rotted out, but everything else was in a plastic bag just waiting for this occasion.

    The colorful cylinders are stacks of laser-cut 6 mm disks with a 2 mm hole, held to the wire & string with a tiny dot of high-viscosity cyanoacrylate glue at each end:

    Bicycle Mobile - detail
    Bicycle Mobile – detail

    The disks came from acrylic leftovers:

    Bicycle Mobile - laser-cut acrylic
    Bicycle Mobile – laser-cut acrylic

    The motion you can’t see makes the shiny bikes much more visible out there:

    Bicycle Mobile - side view
    Bicycle Mobile – side view

    The string came from dismantled badge reels providing spiral springs for the auto-retracting spools in the PolyDryer boxes.

    The weight ball had a 2 mm hole filled by a wood plug which I cleaned out piecemeal with a 1.5 mm drill bit in a pin vise; a short length of wood skewer holds the new string in place.

    Because the upper arms support more weight, their disk stacks need fewer disks for the same leverage. The original mobile had (at most) four 6 mm chromed plastic balls at each level, so I started with eight 3 mm disks, adjusted the stack length as needed, glued them in place, then removed the surplus disks by crushing them with a Vise-Grip.

    I should rip off the design (“© otagiri 1979”) to build another with recumbent bikes.

  • Solar Garden Light

    Solar Garden Light

    I salvaged a solar garden light from the Vassar Community Gardens midden heap and stripped it down:

    Solar garden light - internal
    Solar garden light – internal

    The single IC is a YX805 “solar lawn light boost control chip” and the resistor-like thing is a 82 µH inductor setting a 13 mA input current.

    Cleaning off some minor corrosion, charging the NiMH cell, and soldering an amber LED onto the pigtail wire brought it back to life.

    It’s now perched on the porch railing where it catches some afternoon rays:

    Solar garden light - deployed
    Solar garden light – deployed

    Maybe we can think of something better for it to do …

  • Sewing Notions Drawer Pull Rethreading

    Sewing Notions Drawer Pull Rethreading

    A small sewing notions cabinet, once my mother’s, now holds some of Mary’s supplies and, a few days ago, had one of its drawer pulls fall off. While preemptively tightening all the screws, I found one no longer held onto its pull:

    Notions drawer pull - parts
    Notions drawer pull – parts

    They don’t make drawer pulls like that any more!

    As I see things, it can be forgiven for losing its grip after nearly a century.

    Thread the screw in as far as it will go and lay the pull flat on the bench vise anvil:

    Notions drawer pull - hammering setup
    Notions drawer pull – hammering setup

    A few gentle whacks with a pin punch on top and bottom, plus a tap on each side, compressed the pull’s remaining threads around & into the screw:

    Notions drawer pull - reshaped
    Notions drawer pull – reshaped

    Put it back in its drawer, snug the screw, and it’s all good.

    That should suffice for at least the remainder of its first century …

  • Snowflake Coaster: One Year Later

    Snowflake Coaster: One Year Later

    After more-or-less constant use under a cup in the bathroom, a Snowflake Coaster has reached the end of its life:

    Snowflake coaster - 1 yr use
    Snowflake coaster – 1 yr use

    The acrylic flake is fine, but the wood has mildewed:

    Snowflake coaster - 1 yr use - detail
    Snowflake coaster – 1 yr use – detail

    It’s second from the left in the bottom row:

    Snowflake Coaster - assortment
    Snowflake Coaster – assortment

    All except the pair in the left column had a coat or two of rattlecan clear, which suggests wood-ish coasters need something much more durable, along the lines of clearcoat epoxy. No surprise there!

  • Optimum Internet: Wall o’ Words

    Optimum Internet: Wall o’ Words

    So. Many. Tiny. Words.:

    Optimum flyer fine print
    Optimum flyer fine print

    For the record, the typeface in that block of Fine Print is 1 mm tall = 3 point, which I find barely readable without magnification and impossible to follow without a pointer.

    I’ve come to realize being a “valued customer” does not mean what businesses want me to think it means.

  • Hood Heavy Cream Seal: Whoopsie

    Hood Heavy Cream Seal: Whoopsie

    I was certain this was badly spoiled cream:

    Hood Heavy Cream seal - exterior
    Hood Heavy Cream seal – exterior

    The seal was firmly affixed inside the cap, just like all the seals on all the other cartons we’ve ever bought, so this wasn’t a “broken seal”.

    The bottom of the seal looked about the same:

    Hood Heavy Cream seal - interior 1
    Hood Heavy Cream seal – interior 1

    The cream inside the carton looked & smelled fine, so it went into the morning omelette with no ill effect. Yes, I’m aware some bacterial contamination has no particular smell or taste.

    Scraping off the pure-white cream showed the crud had been molded inside the plastic:

    Hood Heavy Cream seal - interior 2
    Hood Heavy Cream seal – interior 2

    A closer look at the exterior surface of the seal:

    Hood Heavy Cream seal - exterior detail
    Hood Heavy Cream seal – exterior detail

    And the interior surface:

    Hood Heavy Cream seal - interior detail
    Hood Heavy Cream seal – interior detail

    Both of those are focused on the top surface; the blurred areas are inside the plastic.

    The date & production codes sprayed onto the carton were somewhat illegible:

    Hood Heavy Cream seal - illegible codes
    Hood Heavy Cream seal – illegible codes

    Getting a better angle helped:

    Hood Heavy Cream seal - date prod codes
    Hood Heavy Cream seal – date prod codes

    I sent in a report, but I’m sure I’ll never know the rest of the story …

  • Rolling Bed Stop

    Rolling Bed Stop

    The upstairs Sewing Room came with a couch-like bed incorporating a roll-out trundle bed. It doesn’t get a lot of use, but it lacks wheel locks and tends to scoot away unless you get into it rather more carefully than seems reasonable.

    So I made a pair of stops to capture the wheels:

    Rolling Bed Stops - installed
    Rolling Bed Stops – installed

    The solid model shows they’re just plastic blocks minus a model of the roller wheel:

    Rolling Bed Stops - solid model - show view
    Rolling Bed Stops – solid model – show view

    I like the wood-grain effect of the doubly curved recess on printed plastic layers, even if nobody will ever see it:

    Rolling Bed Stops - PrusaSlicer
    Rolling Bed Stops – PrusaSlicer

    The OpenSCAD code also exports a projection of the block as an SVG file to laser-cut the cork pad.

    Roll the trundle bed into position, push the stops against the wheels, lift and pull forward an inch, let it down, and the wheels snap into those recesses.

    These are considerably fancier than some of the other wheel stops / feet around the house, if only because I got to use the Chord Equation to solve for the radius of the circle parallel to the axle for a snug socket.

    The OpenSCAD source code as a GitHub Gist:

    // Rolling Bed roller stops
    // Ed Nisley – KE4ZNU
    // 2025-06-16
    include <BOSL2/std.scad>
    Layout = "Show"; // [Show,Build,Roller,Plan]
    /* [Hidden] */
    HoleWindage = 0.2;
    Protrusion = 0.1;
    ID = 0;
    OD = 1;
    LENGTH = 2;
    WallThick = 10.0; // default width for things
    BaseThick = 3.0; // bottom thickness
    RollerOA = [47.2,49.8,40.0]; // min & max dia, length
    FrameClearance = 11.0; // max height under bed frame at roller
    PadOA = [RollerOA[LENGTH] + 2*WallThick,RollerOA[OD],FrameClearance – 1.0];
    //———-
    // Define Shapes
    module Roller() {
    m = (RollerOA[OD] – RollerOA[ID])/2;
    RollerR = (m^2 + (RollerOA[LENGTH]^2)/4) / (2*m);
    up(RollerOA[OD]/2)
    yrot(90)
    rotate_extrude($fa=1)
    intersection() {
    left(RollerR – RollerOA[OD]/2)
    circle(r=RollerR,$fa=1);
    rect([RollerOA[OD]/2,RollerOA[LENGTH] + 2.0],anchor=LEFT);
    }
    }
    module RollerStop() {
    difference() {
    cuboid(PadOA,anchor=BOTTOM,rounding=WallThick/2,except=BOTTOM);
    up(BaseThick)
    Roller();
    }
    }
    //———-
    // Build things
    if (Layout == "Plan") {
    projection(cut=true)
    RollerStop();
    }
    if (Layout == "Roller") {
    Roller();
    }
    if (Layout == "Show") {
    RollerStop();
    color("Green",0.5)
    up(BaseThick)
    Roller();
    }
    if (Layout == "Build") {
    RollerStop();
    }