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

  • Prusa MK4 Input Shaper: Accelerometer Tuneup

    Prusa MK4 Input Shaper: Accelerometer Tuneup

    After adding bling to the Prusa MK4, I touched up the belt tensions and re-measured the axis resonances with the Prusa Accelerometer gadget to update the Input Shaper settings.

    The Prusa belt tension guide pretty much explains that subject, with their Belt Tuner making up for my utter tone deafness. FWIW, if the Belt Tuner produces inconsistent results differing by an octave, either up or down from the correct value, the belt is way too loose: give the axis belt tension screw a turn or two to drag the results into the right time zone, then fine-tune from there.

    While it is possible to reach both tensioning screws without too much trouble, they’re definitely not convenient.

    The accelerometer fits on the hot end:

    Prusa MK4 Accelerometer - on hot end
    Prusa MK4 Accelerometer – on hot end

    Then under the steel sheet, where it’s clamped by the platform magnets:

    Prusa MK4 Accelerometer - on platform
    Prusa MK4 Accelerometer – on platform

    The MK4 firmware measures the resonant frequencies while prompting you to put the accelerometer in the proper locations, then computes the best shaper values.

    For reference, the stock OEM values:

    • X = MZV 50 Hz
    • Y = MZV 40 Hz

    Just after I got the accelerometer and without doing anything to prep the MK4, these results popped out:

    • X = MZV 56 Hz
    • Y = MZV 42 Hz

    Now, with bling and properly tensioned belts:

    • X = MZV 59 Hz
    • Y = MZV 45 Hz

    The most recent values were also the most stable, once again pointing out the value of careful assembly and maintenance.

    With that in mind, though, I built the laser ramp focus fixture shortly after doing the first recalibration and it has no visible ripples on any of its walls:

    Ramp Test Fixture - corner detail
    Ramp Test Fixture – corner detail

    That’s a square corner perpendicular to the sloped top surface at the default 45 mm/s. It’s not as difficult a test as some you’ll see, but it suffices for my simple needs. The MK4 definitely behaves better around corners than the Makergear M2.

  • Sears Microwave: Laying-On of Hands Repair

    Sears Microwave: Laying-On of Hands Repair

    Although essentially all kitchens feature a microwave over the stove, essentially all women have difficulty reaching it. As a result, our kitchen has two microwaves: the built-in Samsung over the stove and our trusty Sears Kenmore on the counter.

    We’ve had it for a while:

    Sears Microwave - data plate
    Sears Microwave – data plate

    Apart from the turntable rollers, it’s been utterly reliable for the last two decades, until the Start button stopped working:

    Sears Microwave - control panel
    Sears Microwave – control panel

    The membrane switch panel seems to be in good shape, with no cracks in the plastic surface. Only the Start button failed, which suggested the switch contact pad had failed and ruled out broken matrix traces on the flexible circuitry.

    Back in the day, they kept casual tinkerers out of the dangerous interior:

    Sears Microwave - Torx security screw
    Sears Microwave – Torx security screw

    That would not be me:

    Sears Microwave - security bit set
    Sears Microwave – security bit set

    Over the course of two decades, an occasional food explosion produces a surprising amount of debris:

    Sears Microwave - exhaust vent spatter
    Sears Microwave – exhaust vent spatter

    Go ahead, I dare you, show us your microwave exhaust vent.

    The control panel circuit board & wiring looks like this:

    Sears Microwave - control board - in place
    Sears Microwave – control board – in place

    Unplugging all the connectors proceeds as you’d expect, whereupon a single screw (out of sight to the top) releases the control assembly and pulling the whole thing upward gets it out of the cabinet:

    Sears Microwave - control board
    Sears Microwave – control board

    The capacitors show no signs of The Plague, but those resistors near the optoisolator (?) in the middle have a suspicious thermal plume.

    The ribbon cable from the control surface goes into a connector with the usual locking collar:

    Sears Microwave - control panel cable connector
    Sears Microwave – control panel cable connector

    The cable also has cutouts latching into tabs molded into the collar:

    Sears Microwave - control panel ribbon cable - locking tabs
    Sears Microwave – control panel ribbon cable – locking tabs

    Removing two screws at the transformer releases the PCB:

    Sears Microwave - control panel interior
    Sears Microwave – control panel interior

    Which promptly slammed the whole repair mission to a dead stop: with the entire membrane switch assembly glued to the front of the plastic shell, there is no way to get to the Start switch. Trying to peel the membrane off will most certainly destroy it.

    Because all the other functions still worked, including the Add Minute button, we figured we can eke out a few more years before something else fails or the lack of one button gets intolerably annoying.

    I reassembled everything in reverse order, plugged it in, and, while setting the clock, discovered the Start button once again worked perfectly.

    It’s a classic laying-on of hands repair: take something apart, replace nothing, reassemble, and it works!

    If the Start button is not part of the overall switch matrix, with a separate conductor through the ribbon cable, un- and re- plugging would be enough to restore a flaky contact. We’ll never know the rest of the story, although with this post as a reminder, maybe I can remember to tear the matrix apart when we scrap it out.

    Somebody give me an Amen!

  • Roof Rake

    Roof Rake

    If they think you’re crude, go technical; if they think you’re technical, go crude. I’m a very technical boy. So I decided to get as crude as possible. These days, thought, you have to be pretty technical before you can even aspire to crudeness.

    William Gibson — Johnny Mnemonic

    Now that the trees have shed most of their leaves / needles, it’s time to get the accumulation off the roof edges. Fortunately, the upstairs windows overlook the biggest piles and, after I considered and rapidly rejected the notion of using the wind stick, Mary convinced me a roof rake would suffice by deploying a too-short broom.

    After considering and rejecting several decreasingly elaborate variations of 3D-printed pole-to-pusher-plate adapter nonsense that almost involved our pole saw, this happened:

    Roof Rake - in use
    Roof Rake – in use

    The wood pole comes from a left-behind assortment atop the garage’s open ceiling joists and the pusher plate comes from the cardboard box treasure trove.

    A laser cutter makes close-fitting rings and hot-melt glue sticks those plates together with gleeful abandon:

    Roof Rake - detail
    Roof Rake – detail

    The blue-and-white cardboard plate consists of two box flaps glued together, the glued-up stack of half a dozen rings transfers the torque from the plate to the pole, and the whole affair took the better part of fifteen minutes from idea to cool-enough glue.

    It’s back on the garage joists for next year, unless we decide that pole has a higher purpose in life. Worst case, it loses two inches of length.

    Bonus: Chore accomplished before the predicted weekend snowfall!

  • Prusa MK4 Bling

    Prusa MK4 Bling

    While figuring out an X Axis homing problem (about which, more later), I printed a bunch of add-ons for the Prusa MK4, all from printables.com.

    Stipulated: Using something other than black PETG and PETG-CF would make them more like bling.

    The heatsink fan gets a scoop inlet to keep fingers and tools farther from the blades:

    Prusa MK4 - fan cover - fan duct
    Prusa MK4 – fan cover – fan duct

    The small upward duct on the right side directs the exhaust air away from the platform. This is apparently critical for very high-temperature plastics like ABS and PC, but I did have one print fail due to excessively cold breezes on the platform.

    I made three different ducts in case I break one:

    Prusa MK4 - fan ducts on platform
    Prusa MK4 – fan ducts on platform

    The aluminum extrusions now have dust covers:

    Prusa MK4 - Extrusion cover - front
    Prusa MK4 – Extrusion cover – front

    There’s also an angled heater cable connector cover, with a matching cover on the electronics box routing the cable rearward to dress it away from the hulking extruder cable:

    Prusa MK4 - Extrusion cover - rear
    Prusa MK4 – Extrusion cover – rear

    And the Z axis stepper mounts have tidy dust covers:

    Prusa MK4 - Z axis motor cover
    Prusa MK4 – Z axis motor cover

    None of which are necessary, but they’re all easy to print while thinking of other things.

  • Sears Sewing Table: Caster Pads

    Sears Sewing Table: Caster Pads

    Mary’s much-improved / -repaired Sears Sewing Table wanted to move around on the wood floor in the Sewing Room, so I captured its casters in little pads:

    Sears Sewing Table caster pad - installed
    Sears Sewing Table caster pad – installed

    A layer of 1 mm cork with PSA adhesive provides griptivity against the floor, a solid layer of 3 mm plywood spreads the wheel force over the cork, and a top ring of 3 mm plywood captures the wheel.

    Which looked like this during gluing:

    Sears Sewing Table caster pad - gluing fixtures
    Sears Sewing Table caster pad – gluing fixtures

    The scrap on the left served to align cork & plywood; it came from the plywood contributing the shapes. The ring around the cork is a glued-up pair of plywood rings (4 mm wide, outset from the perimeter of the pads) serving to align the two plywood layers.

    Verily: time spent making a fixture is never wasted!

    And having a laser cutter makes fixtures trivially easy, at least for simple fixtures like those.

  • Layered Paper: Mariner’s Compass in Colors

    Layered Paper: Mariner’s Compass in Colors

    Having recently shotgunned Amazon’s selection of colored art paper, this becomes possible:

    Mariners Compass - inset browns
    Mariners Compass – inset browns

    It’s the same geometry as the plain white layered version, with somewhat more attention to detail, and consists of a dozen layers glued and stacked on an assembly fixture.

    The quilt-block version uses simple layering:

    Layered Paper - Mariners Compass - Beyer 133
    Layered Paper – Mariners Compass – Beyer 133

    No commercial potential, but I like the effect.

  • 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();