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

  • Let the Dead Past Bury Its Dead

    My old Gen 1 Kindle Fire hasn’t seen much action lately, so I figured maybe it could end its days by becoming a slide show / picture frame. While fiddling around, I tried to fire up the Amazon Shopping app:

    Amazon App Unsupported on Amazon Gen 1 Kindle
    Amazon App Unsupported on Amazon Gen 1 Kindle

    Clicking the big orange button fired up Amazon’s Silk browser, which promptly crashed.

    Some days, the punch line writes itself …

  • Kenmore Progressive Vacuum Tool Adapters: Third Failure

    The adapter for an old Electrolux crevice tool (not the dust brush) snapped at the usual stress concentration after about three years:

    Crevice tool adapter - broken vs PVC pipe
    Crevice tool adapter – broken vs PVC pipe

    The lower adapter is the new version, made from a length of 1 inch PVC pipe (that’s the ID, kinda-sorta) epoxied into a revised Kenmore adapter fitting.

    The original OpenSCAD model provided the taper dimensions:

    Electrolux Crevice Tool Adapter - PVC taper doodles
    Electrolux Crevice Tool Adapter – PVC taper doodles

    The taper isn’t quite as critical as it seems, because the crevice tool is an ancient molded plastic part, but a smidge over half a degree seemed like a good target.

    Start by boring out the pipe ID until it’s Big Enough (or, equally, the walls aren’t Scary Thin) at 28 mm:

    Crevice tool adapter - boring PVC
    Crevice tool adapter – boring PVC

    Alas, the mini-lathe’s craptastic compound has 2° graduations:

    Minilathe compound angle scale
    Minilathe compound angle scale

    So I set the angle using a somewhat less craptastic protractor and angle gauge:

    Crevice tool adapter - compound angle
    Crevice tool adapter – compound angle

    The little wedge of daylight near the gauge pivot is the difference between the normal perpendicular-to-the-spindle axis setting and half-a-degree-ish.

    Turning PVC produces remarkably tenacious swarf:

    Crevice tool adapter - PVC swarf
    Crevice tool adapter – PVC swarf

    The gash along the top comes from a utility knife; just pulling the swarf off didn’t work well at all.

    The column of figures down the right side of the doodles shows successive approximations to the target angle, mostly achieved by percussive adjustment, eventually converging to about the right taper with the proper dimensions.

    Cutting off the finished product with the (newly angled) cutoff bit:

    Crevice tool adapter - cutoff
    Crevice tool adapter – cutoff

    And then It Just Worked™.

    The OpenSCAD source code for all the adapters as a GitHub Gist:

    // Kenmore vacuum cleaner nozzle adapters
    // Ed Nisley KE4ZNU November 2015 and ongoing
    // Layout options
    Layout = "CrevicePipe"; // MaleFitting CoilWand FloorBrush
    // CreviceTool Crevice Pipe ScrubbyTool LuxBrush DustBrush
    //- Extrusion parameters must match reality!
    // Print with +1 shells and 3 solid layers
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    HoleWindage = 0.2;
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    Protrusion = 0.1; // make holes end cleanly
    //———————-
    // Dimensions
    ID1 = 0; // for tapered tubes
    ID2 = 1;
    OD1 = 2;
    OD2 = 3;
    LENGTH = 4;
    OEMTube = [35.0,35.0,41.7,40.5,30.0]; // main fitting tube
    EndStop = [OEMTube[ID1],OEMTube[ID2],47.5,47.5,6.5]; // flange at end of main tube
    FittingOAL = OEMTube[LENGTH] + EndStop[LENGTH];
    $fn = 12*4;
    //———————-
    // Useful routines
    module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
    Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
    FixDia = Dia / cos(180/Sides);
    cylinder(r=(FixDia + HoleWindage)/2,h=Height,$fn=Sides);
    }
    //——————-
    // Male fitting on end of Kenmore tools
    // This slides into the end of the handle or wand and latches firmly in place
    module MaleFitting() {
    Latch = [40,11.5,5.0]; // rectangle latch opening
    EntryAngle = 45; // latch entry ramp
    EntrySides = 16;
    EntryHeight = 15.0; // lower edge on *inside* of fitting
    KeyRadius = 1.0;
    translate([0,0,6.5])
    difference() {
    union() {
    cylinder(d1=OEMTube[OD1],d2=OEMTube[OD2],h=OEMTube[LENGTH]); // main tube
    hull() // insertion guide
    for (i=[-(6.0/2 – KeyRadius),(6.0/2 – KeyRadius)],
    j=[-(28.0/2 – KeyRadius),(28.0/2 – KeyRadius)],
    k=[-(26.0/2 – KeyRadius),(26.0/2 – KeyRadius)])
    translate([(i – (OEMTube[ID1]/2 + OEMTube[OD1]/2)/2 + 6.0/2),j,(k + 26.0/2 – 1.0)])
    sphere(r=KeyRadius,$fn=8);
    translate([0,0,-EndStop[LENGTH]]) // wand tube butts against this
    cylinder(d=EndStop[OD1],h=EndStop[LENGTH] + Protrusion);
    }
    translate([0,0,-OEMTube[LENGTH]]) // main bore
    cylinder(d=OEMTube[ID1],h=2*OEMTube[LENGTH] + 2*Protrusion);
    translate([0,-11.5/2,23.0 – 5.0]) // latch opening
    cube(Latch);
    translate([OEMTube[ID1]/2 + EntryHeight/tan(90-EntryAngle),0,0]) // latch ramp
    translate([(Latch[1]/cos(180/EntrySides))*cos(EntryAngle)/2,0,(Latch[1]/cos(180/EntrySides))*sin(EntryAngle)/2])
    rotate([0,-EntryAngle,0])
    intersection() {
    rotate(180/EntrySides)
    PolyCyl(Latch[1],Latch[0],EntrySides);
    translate([-(2*Latch[0])/2,0,-Protrusion])
    cube(2*Latch[0],center=true);
    }
    }
    }
    //——————-
    // Refrigerator evaporator coil wand
    module CoilWand() {
    union() {
    translate([0,0,50.0])
    rotate([180,0,0])
    difference() {
    cylinder(d1=EndStop[OD1],d2=42.0,h=50.0);
    translate([0,0,-Protrusion])
    cylinder(d1=35.0,d2=35.8,h=100);
    }
    translate([0,0,50.0 – Protrusion])
    MaleFitting();
    }
    }
    //——————-
    // Samsung floor brush
    module FloorBrush() {
    union() {
    translate([0,0,60.0])
    rotate([180,0,0])
    difference() {
    union() {
    cylinder(d1=EndStop[OD1],d2=32.4,h=10.0);
    translate([0,0,10.0 – Protrusion])
    cylinder(d1=32.4,d2=30.7,h=50.0 + Protrusion);
    }
    translate([0,0,-Protrusion])
    cylinder(d1=28.0,d2=24.0,h=100);
    }
    translate([0,0,60.0 – Protrusion])
    MaleFitting();
    }
    }
    //——————-
    // Crevice tool
    module CreviceTool() {
    union() {
    translate([0,0,60.0])
    rotate([180,0,0])
    difference() {
    union() {
    cylinder(d1=EndStop[OD1],d2=32.0,h=10.0);
    translate([0,0,10.0 – Protrusion])
    cylinder(d1=32.0,d2=30.4,h=50.0 + Protrusion);
    }
    translate([0,0,-Protrusion])
    cylinder(d1=28.0,d2=24.0,h=100);
    }
    translate([0,0,60.0 – Protrusion])
    MaleFitting();
    }
    }
    //——————-
    // Crevice tool
    // Hacked for 1 inch Schedule 40 PVC pipe stiffening tube
    module CrevicePipe() {
    PipeOD = 33.5;
    union() {
    translate([0,0,10.0])
    rotate([180,0,0])
    difference() {
    cylinder(d1=EndStop[OD1],d2=PipeOD+2*8*ThreadWidth,h=10.0);
    translate([0,0,-Protrusion])
    cylinder(d=PipeOD,h=100);
    }
    translate([0,0,10.0])
    MaleFitting();
    }
    }
    //——————-
    // Mystery brush
    module ScrubbyTool() {
    union() {
    translate([0,0,60.0])
    rotate([180,0,0])
    difference() {
    union() {
    cylinder(d1=EndStop[OD1],d2=31.8,h=10.0);
    translate([0,0,10.0 – Protrusion])
    cylinder(d1=31.8,d2=31.0,h=50.0 + Protrusion);
    }
    translate([0,0,-Protrusion])
    cylinder(d1=26.0,d2=24.0,h=100);
    }
    translate([0,0,60.0 – Protrusion])
    MaleFitting();
    }
    }
    //——————-
    // eBay horsehair dusting brush
    // Hacked for 3/4" Schedule 40 PVC stiffening tube
    // eBay: 30.0 32.0 30.0
    // Shopvac: 30.3 31.0 25.0
    // Must build snout down with brim to avoid support
    module DustBrush() {
    PipeOD = 27.0; // stiffening pipe
    Snout = [0,0, 31.0, 30.3, 25.0];
    TaperLength = 10.0; // transition cone from fitting to snout
    union() {
    translate([0,0,Snout[LENGTH] + TaperLength])
    rotate([180,0,0])
    difference() {
    union() {
    cylinder(d1=EndStop[OD1],d2=Snout[OD1],h=TaperLength);
    translate([0,0,TaperLength – Protrusion])
    cylinder(d1=Snout[OD1],d2=Snout[OD2],h=Snout[LENGTH] + Protrusion);
    }
    translate([0,0,-Protrusion]) // 3/4 inch Sch 40 PVC
    PolyCyl(PipeOD,100);
    }
    translate([0,0,Snout[LENGTH] + TaperLength – Protrusion])
    MaleFitting();
    }
    }
    //——————-
    // Electrolux brush ball
    module LuxBrush() {
    union() {
    translate([0,0,30.0])
    rotate([180,0,0])
    difference() {
    union() {
    cylinder(d1=EndStop[OD1],d2=30.8,h=10.0);
    translate([0,0,10.0 – Protrusion])
    cylinder(d1=30.8,d2=30.0,h=20.0 + Protrusion);
    }
    translate([0,0,-Protrusion])
    cylinder(d1=25.0,d2=23.0,h=30 + 2*Protrusion);
    }
    translate([0,0,30.0 – Protrusion])
    MaleFitting();
    }
    }
    //———————-
    // Build it!
    if (Layout == "MaleFitting")
    MaleFitting();
    if (Layout == "CoilWand")
    CoilWand();
    if (Layout == "FloorBrush")
    FloorBrush();
    if (Layout == "CreviceTool")
    CreviceTool();
    if (Layout == "CrevicePipe")
    CrevicePipe();
    if (Layout == "DustBrush")
    DustBrush();
    if (Layout == "ScrubbyTool")
    ScrubbyTool();
    if (Layout == "LuxBrush")
    LuxBrush();
  • Cheese Slicer Rebuild

    Cheese Slicer Rebuild

    The cheese slicer frame looked much better after sandblasting with 220 aluminum oxide grit:

    Cheese slicer - sandblasted
    Cheese slicer – sandblasted

    The flower bed outside the Basement Laboratory door seems a bit dusty, though.

    Slathering it with JB Weld steel-filled epoxy went reasonably well:

    Cheese slicer - JB Weld curing
    Cheese slicer – JB Weld curing

    JB Weld is much much more viscous than the clear XTC-3D I used last year and the final coating, while smoother than what you see here, has too many sags and dents to say “good job”. I didn’t bother coating the upper tips, because the epoxy will wear off from my morning KP.

    The aluminum roller turned on those bare stainless steel screws in the tray, with the threads chewing into the roller bore. While the epoxy was curing, I drilled out the roller to remove most of the ridges:

    Cheese slicer - drilling roller
    Cheese slicer – drilling roller

    Cut a pair of stainless screws slightly longer than the old screws, then turn the threads off to make a shaft:

    Cheese slicer - screw reshaping
    Cheese slicer – screw reshaping

    The lathe spindle runs in reverse, so the cutting force tends to tighten the screw in the nuts. The big old South Bend lathe had a screw-on chuck and didn’t really like turning backwards.

    The new screws won’t win any beauty prizes, but they get the job done:

    Cheese slicer - screw shafts
    Cheese slicer – screw shafts

    Turn a Delrin rod to a press fit in the drilled-out roller:

    Cheese slicer - turning Delrin bearing
    Cheese slicer – turning Delrin bearing

    Part it off, repeat, ram them into the roller, then drill to a loose fit around the smooth-ish screw shafts:

    Cheese slicer - drilling Delrin bearing
    Cheese slicer – drilling Delrin bearing

    Reassemble in reverse order:

    Cheese slicer - rebuilt
    Cheese slicer – rebuilt

    Looks downright industrial, it does.

    Stipulated: this makes no economic sense, absent the simple fact we appreciate utensils that just work.

  • Monthly Science: End of the Cheese Slicer Epoxy Coating

    The corrosion growing on our long-suffering cheese slicer finally ruptured its epoxy coating:

    Cheese Slicer - epoxy coating split
    Cheese Slicer – epoxy coating split

    Most of the epoxy remains in good shape, but it’s obviously not the right hammer for this job.

    Having recently spotted my tiny sandblaster, I think I can clear off the corrosion and epoxy well enough to try again with good old JB Weld epoxy. It’s not rated for underwater use, so I don’t expect long-term goodness, but it’ll be an interesting comparison.

    Bonus: the slicer will start with a uniform gray surface!

     

  • MPCNC Vinyl Cutting: Squidwrench Logo

    The Mighty Thor provided the new-ish Squidwrench logo in various digital formats, not including DXF, but dxf2gcode can process PDF files (and a few others), and the cutting / weeding / transfer ended well:

    MPCNC Vinyl Cutting - Squidwrench logo on mug
    MPCNC Vinyl Cutting – Squidwrench logo on mug

    That’s the same 14 mil gold vinyl you saw in the Crown test.

    Alas, I re-covered the pattern with the transfer film when I ran the mug through the dishwasher, in the mistaken belief the film would protect the vinyl. Come to find out the film adheres better to the vinyl than to the mug: it pulled loose during washing and peeled most of the logo off the mug.

    Setting the drag knife to cut hot pink 9 mil = 0.25 mm vinyl film produced another logo:

    SqWr logo - hot pink
    SqWr logo – hot pink

    It’s now survived several trips through the dishwasher with no protection, so I’ll call it a win.

    I set dxf2gcode to use a cutting depth = 1.0 mm for about 400 g of downforce, which seems to work, although the vinyl surface showed some marks from the flat nose around the drag knife blade.

    The USB camera provides a convenient way to set the “workpiece origin” before cutting:

    bCNC - Video align
    bCNC – Video align

    Because the camera sits 130 mm beyond the blade in the +Y direction, it can’t see the swathe along the front of the MPCNC. Hard and soft limits in bCNC / GRBL keep you (well, me) from smashing the gantry into the rails, but it’s a nuisance when you forget to tape the vinyl far enough from the front.

  • Congratulations!!

    This just in (clicky for more dots, but not clearer dots):

    Spam image - xxx
    Spam image – xxx

    Yes, the attachment was named xxx.jpg, presumably so I wouldn’t suspect it of containing anything untoward.

    The name-dropping definitely adds verisimilitude: not just Microsoft (or Micro Soft) Windows and Google, but Yahoo, too. Be still, my heart!

    It’s unclear how I would contact their “fiduciary agent in LIMA PERU” by dialing a 909 area code in California or sending an email to, um, eaaj@europe.com, but, hey, why not? Perhaps another version of me in a parallel universe used the Peruvian Internet?

    This must be one of those scams where, if you’re bright enough to notice the problems, they won’t need to waste any time on you.

    You’re welcome to my identification numbers. When you get the check, slip me maybe 100 large, preferably under the table, and we’ll call it square.

    Sheesh

  • Doorknob Repair

    The outer doorknob on the kitchen pantry became very loose and sloppy, with the screw holding the inner knob on the shaft remaining snug. Obviously, something else was wrong inside the door.

    A spring clip should retain the outer knob in the escutcheon:

    Doorknob - worn retaining flange - detail
    Doorknob – worn retaining flange – detail

    The flange holding the clip has worn away, letting the clip fall loose. A side view shows the problem:

    Doorknob shaft - worn retaining flange
    Doorknob shaft – worn retaining flange

    Yes, the knob’s chrome plating is in sorry shape after six decades of wear. I’d rather keep using a solid knob, instead of force-fitting some contemporary half-assed / cost-reduced junk into the door.

    Reference: beausage. I say it “beau-sage”, the beauty that comes from usage.

    The shaft consists of three triangular rods, with the setscrew on the inner knob pressing against the smaller rod to lock all three of them in place and eliminate all rattle & play:

    Doorknob shaft - detail
    Doorknob shaft – detail

    A tapered pin (!) locks the three shaft rods into the outer knob:

    Doorknob shaft - tapered pin
    Doorknob shaft – tapered pin

    Some doodling, most of which turned out to be irrelevant, captured the essential dimensions and suggested how to replace the flange:

    Doorknob - dimension doodles
    Doorknob – dimension doodles

    The stock is 11/16 inch O-1 oil-hardening rod, forever to remain unhardened:

    Doorknob - retainer ring boring
    Doorknob – retainer ring boring

    I drilled a few holes to get up to 1/2 inch, the largest drill bit I have and just barely clearing the the boring bar.

    With the hole bored out to fit the end of the knob, cut it off:

    Doorknob - retainer ring cutoff
    Doorknob – retainer ring cutoff

    Trial-fit the ring on the knob with the spring clip:

    Doorknob - retainer trial fit
    Doorknob – retainer trial fit

    Reinstall the shaft, tap in the retaining pin, then epoxy the ring in place with the knob supported from below to eliminate having to fiddle with the spring clip:

    Doorknob - retainer ring epoxy
    Doorknob – retainer ring epoxy

    Add a few dots of oil here & there, reinstall the parts in reverse order, and the knob works perfectly again. Still looks heavily used, of course, but that’s OK.

    They definitely don’t make ’em like that any more …