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

  • Mini-Lathe: Electronics Box Screw Insert

    Two bags of knurled brass M4 inserts arrived from halfway around the planet, so I could fix the offending hole behind the LMS mini-lathe’s electronics box:

    LMS Mini-lathe - mistapped cover hole
    LMS Mini-lathe – mistapped cover hole

    Although you should remove the lathe from the chip pan and do it right, I gimmicked up a reducer for the long drill extension that, IIRC, came with the house:

    LMS mini-lathe - drill bit extension
    LMS mini-lathe – drill bit extension

    I figured that would be close enough, given the starting situation. The cast iron frame is perhaps half an inch thick at that point, with steel brackets bolted to the far side, so use the hole as a guide and don’t drill with wild abandon.

    A long M4 screw serves to align the insert eyeballometrically perpendicular to the surface while the JB Kwik epoxy cured:

    LMS mini-lathe - insert alignment
    LMS mini-lathe – insert alignment

    It definitely doesn’t look like it grew there and, indeed, looks like the obvious repair job it is:

    LMS mini-lathe - insert epoxied
    LMS mini-lathe – insert epoxied

    I thought about replacing all the screws, but decided it was so well hidden that, if I didn’t tell anybody, they’d never know:

    LMS mini-lathe - cover screw installed
    LMS mini-lathe – cover screw installed

    Done!

  • Kenmore Model 158 Power Switch: Laying-on-of-hands Repair

    The power switch on Mary’s “embroidery” Kenmore Model 158 sewing machine became exceedingly stiff, to the extent she said it was painful to push. Buying a shiny new switch seemed iffy, because a cursory search through the usual reputable electronic suppliers suggested there’s no way to specify how stiff the button might be, nor how that might feel in actual practice.

    The switch harvested from the pulse-drive machine felt somewhat less stiff, so I decided to (try to) loosen it up and, if that worked, swap it for the stubborn one.

    A pair of rivets hold the two halves of the switch together, obviously intended as a permanent solution. A carbide burr in the Dremel tool dealt with them easily enough:

    Model 158 Power Switch - grinding rivets
    Model 158 Power Switch – grinding rivets

    Inside, the actuator drives a rotating brass contact:

    Model 158 Power Switch - rotor
    Model 158 Power Switch – rotor

    Two stationary brass contacts are spot-welded to the wires:

    Model 158 Power Switch - contacts
    Model 158 Power Switch – contacts

    The actuator under the button consists of a helix-twisted steel rod, a rather stiff spring, and a four-vaned phenolic blade that engages those two little flaps on the rotor. The rivet holes exactly fit plain old 1-72 screws:

    Model 158 Power Switch - actuator stem
    Model 158 Power Switch – actuator stem

    Not seeing anything obviously fix-able inside, I wiped the excess oil off and reassembled it in reverse order:

    Model 158 Power Switch - reassembled
    Model 158 Power Switch – reassembled

    Astonishingly, that bit of attention loosened it up: the button now presses easily!

    I swapped it with the too-stiff switch and declared victory…

  • Tuning Whistle Case Cap

    Mostly as an excuse to use the mini-lathe’s MT3 headstock collets, I made a cover for a tuning whistle (it’s an A, if that matters) case that’s been rolling around on the bench for far too long:

    Tuner cap - trial fit
    Tuner cap – trial fit

    Yeah, it needs a bit more polishing and maybe a fancy 3D printed wrapper…

    By some small miracle, one of the cutoffs in the brass tubing heap was exactly the right diameter and length, needing only a cap.

    A cap looks a lot like a random piece of brass shimstock held in place with silver solder:

    Tuner cap - solder setup
    Tuner cap – solder setup

    Fire the propane torch:

    Tuner cap - soldered
    Tuner cap – soldered

    I trimmed the shimstock around the tube with scissors, grabbed it in a collet, and laid into it:

    Tuner cap - lathe trimming
    Tuner cap – lathe trimming

    That’s just before the last few passes bringing the shimstock and solder fillet down to the tube OD, which sat nicely concentric in the collet. The carbide insert worked surprisingly well and produced shavings resembling stringy dust.

    The collet drawbar, a.k.a. a hardened 3/8-15 bolt and washer, requires a distressing amount of effort to clamp the collet around the workpiece. I think it wants a Delrin / UHMW washer or some such to reduce the friction; a full-on thrust bearing seems uncalled for.

  • Vacuum Tube LEDs: Brass Ersatz Heatsink

    A chunk of 1/2 inch = 12.7 mm brass hex rod looks pretty good as an ersatz heatsink serving as an ersatz plate cap on a halogen bulb standing in for a vacuum tube:

    Halogen bulb brass cap - overview
    Halogen bulb brass cap – overview

    The knockoff Neopixels measure just over 10 mm at their widest points, but some judicious filing rounded it off and brought it down to fit in the 3/8 inch = 0.375 = 9.52 mm hole I drilled in the hex:

    Halogen bulb brass cap - wiring
    Halogen bulb brass cap – wiring

    I let it run for a day like that to make sure the thing wasn’t going to crap out, then epoxied everything in place. If the WS2812B controller fails, the repair will require drilling out all the electronics and wiring, then rebuilding it in place.

    The fins come from the same HSS cutoff tool I used for the Bowl o’ Fire cap, cut at 2.5 mm intervals to produce 0.9 mm fins that IMO better suit the smaller diameter. I stopped cutting when the tool got through the hex flats to produce a continuous ring, cut the hex off a bit above the top fin, rounded the end with a carbide insert cutting tool, then sanded the flats to shine ’em up a bit:

    Halogen bulb brass cap - detail flash
    Halogen bulb brass cap – detail flash

    It turns out that 12 inches of wire inside PET braid barely reaches from the cap to the Arduino Pro Mini in the base:

    Halogen bulb brass cap - Arduino Pro Mini
    Halogen bulb brass cap – Arduino Pro Mini

    Next time, I’m going to add half a foot more wire than I think it can possibly require, with PET braid to suit.

    A thin ring of clear epoxy holds the “heatsink” at the dead center of the bulb. It lights up a bit more than I expected, so opaque epoxy may be in order:

    Halogen bulb brass cap - detail red
    Halogen bulb brass cap – detail red

    It’s still too big to suit even the big 21HB5A tubes, but brass definitely wins over plastic!

    That blue PETG base has become the least-attractive part of the lamp, but it’s survivable for now.

    It runs the same TubeMood firmware as the Bowl o’ Fire.

  • Monthly Science: Silica Gel Regeneration In Bags

    Just for the record, heating four 500 g bags of silica gel at 230 °F for 12 hours overnight works exactly the way it should. Two of the bags baked down to 490 g, another was at 509 g, and the fourth had bulldog clips (rather than staples); given that they started with a measured 500 g of beads, that’s entirely good enough.

    Memo to Self: don’t try to cut corners: heat the silica gel packs above water’s boiling point, let them cook overnight, don’t worry about wrecking the weird ground-cloth landscaping bags, and be done with it.

  • SRAM Shift Indicator: Repair FAIL

    The little red shift indicator tab in the SRAM X.9 rear shifter on Mary’s bike snapped:

    SRAM Shift Indicator - broken tab
    SRAM Shift Indicator – broken tab

    In a triumph of hope over experience, I tried gluing the pieces with a bit of fixturing and a dab of IPS #3 solvent:

    SRAM Shift Indicator - gluing
    SRAM Shift Indicator – gluing

    Didn’t work any better than the last time, of course. Every gear shift snap must apply 1000 G to that poor little tab…

    What’s new & different: one can now obtain Official Repair Kits consisting of the indicator tab, the plastic cover, and the two screws for $6.47 delivered from eBay.

    Done!

  • Dust Collection: Vacuum Fittings

    The Micro-Mark bandsaw’s vacuum port forced me to finish up a long-stalled project: adding a bit of plumbing to simplify connecting the small shop vacuum I use for dust collection.

    It turns out that a 45° 3/4 inch Schedule 40 PVC elbow fits snugly into the bandsaw’s rubbery vacuum port and angles the hose in the right general direction:

    Vacuum Adapters - 3-4 PVC to vac nozzle
    Vacuum Adapters – 3-4 PVC to vac nozzle

    The elbow OD fits into an adapter with a tapered socket for the vacuum cleaner’s snout:

    Vacuum Hose Fittings - 3-4 PVC fitting to vac nozzle
    Vacuum Hose Fittings – 3-4 PVC fitting to vac nozzle

    That solid model doesn’t resemble the picture, because that gracefully thin tapered cylinder around the snout will definitely test PETG’s strength under normal shop usage; fat is where it’s at when it breaks. The interior has a tapered section between the elbow’s OD (at the bottom) and the nozzle taper (at the top) to eliminate the need for a tedious support structure.

    The elbow’s OD pretty much matches the nozzle’s ID and leaves the air flow unrestricted. The aperture in the bandsaw frame might be half the pipe’s area, so I’m surely being too fussy.

    With that in hand, I built more adapters to mate 1 inch PVC fittings with the two vacuum ports on the belt / disk sander to keep the canister out of my way and make the dust just vanish. A tee plugged into the belt sander side accepts the vacuum nozzle (bottom) and inhales dust from the disk sander (top):

    Vacuum Adapters - belt sander - tee
    Vacuum Adapters – belt sander – tee

    A U made from two 90° elbows aims the disk sander dust into the hose going across the back side of the belt:

    Vacuum Adapters - disk sander - double elbow
    Vacuum Adapters – disk sander – double elbow

    Those elbows have a 40 mm length of 1 inch PVC pipe between them; no need to print that!

    The hose has a left-hand thread rib which, of course, required throwing the first adapter away into the Show-n-Tell box:

    Vacuum Hose Fittings - hose to 1 inch PVC fitting
    Vacuum Hose Fittings – hose to 1 inch PVC fitting

    That’s a descendant of the broom handle thread, turned inside-out and backwards.

    Building two hose adapters with the proper chirality worked fine:

    Vacuum Hose Fittings - hose to 1 inch PVC fitting - Slic3r pair
    Vacuum Hose Fittings – hose to 1 inch PVC fitting – Slic3r pair

    Although you could lathe-turn adapters that plug PVC fittings into the sander’s vacuum ports starting with a chunk of 1 inch PVC pipe, it’s easier to just print the damn things and get the taper right without any hassle:

    Vacuum Adapters - vac port to 1 PVC
    Vacuum Adapters – vac port to 1 PVC

    The straight bore matches the ID of 1 inch PVC pipe for EZ air flow:

    Vacuum Hose Fittings - vac port to 1 inch PVC pipe
    Vacuum Hose Fittings – vac port to 1 inch PVC pipe

    The sleeve barely visible on the bottom leg of the tee looks like 1 inch PVC pipe on the outside and a vacuum port on the inside:

    Vacuum Hose Fittings - 1 inch PVC to vac nozzle
    Vacuum Hose Fittings – 1 inch PVC to vac nozzle

    The source code includes a few other doodads that I built, tried out while deciding how to make all this work, and eventually didn’t need.

    All the dimensions are completely ad-hoc and probably won’t work with PVC fittings from your local big-box retailer, as the fitting ODs aren’t controlled like the IDs that must fit the pipe. I cleaned things up a bit by putting the ID, OD, and length of the pipe / fittings / adapters into arrays, but each module gets its own copy because, for example, 1 inch 45° elbows have different ODs than 1 inch 90° elbows and you might want one special fitting for that. Ptui!

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

    // Vacuum Hose Fittings
    // Ed Nisley KE4ZNU July 2016
    Layout = "FVacFitting"; // PVCtoHose ExpandRing PipeToPort FVacPipe FVacFitting
    //- Extrusion parameters must match reality!
    // Print with 2 shells and 3 solid layers
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    HoleWindage = 0.2;
    Protrusion = 0.1; // make holes end cleanly
    //———————-
    // Dimensions
    ID = 0;
    OD = 1;
    LENGTH = 2;
    Pipe = [34.0,(41.0 + HoleWindage),16.0]; // 1 inch PVC pipe fitting
    VacPortSander = [30.0,31.3,25]; // vacuum port on belt sander (taper ID to OD over length)
    VacNozzle = [30.1,31.8,30.0]; // nozzle on vacuum hose (taper ID to OD over length)
    MINOR = 0;
    MAJOR = 1;
    PITCH = 2;
    FORM_OD = 3;
    HoseThread = [32.0,(37.0 + HoleWindage),4.25,(1.8 + 0.20)]; // vacuum tube thread info
    NumSegments = 64; // .. number of cylinder approximations per turn
    $fn = NumSegments;
    ThreadLength = 4 * HoseThread[PITCH];
    ScrewOAL = ThreadLength + HoseThread[PITCH];
    WallThick = 2.5;
    echo(str("Pitch dia: ",HoseThread[MAJOR]));
    echo(str("Root dia: ",HoseThread[MAJOR] – HoseThread[FORM_OD]));
    echo(str("Crest dia: ",HoseThread[MAJOR] + HoseThread[FORM_OD]));
    //———————-
    // Wrap cylindrical thread segments around larger plug cylinder
    module CylinderThread(Pitch,Length,PitchDia,ThreadOD,PerTurn,Chirality = "Right") {
    CylFudge = 1.02; // force overlap
    ThreadSides = 6;
    RotIncr = 1/PerTurn;
    PitchRad = PitchDia/2;
    Turns = Length/Pitch;
    NumCyls = Turns*PerTurn;
    ZStep = Pitch / PerTurn;
    HelixAngle = ((Chirality == "Left") ? -1 : 1) * atan(Pitch/(PI*PitchDia));
    CylLength = CylFudge * (PI*(PitchDia + ThreadOD) / PerTurn) / cos(HelixAngle);
    for (i = [0:NumCyls-1]) {
    Angle = ((Chirality == "Left") ? -1 : 1) * 360*i/PerTurn;
    translate([PitchRad*cos(Angle),PitchRad*sin(Angle),i*ZStep])
    rotate([90+HelixAngle,0,Angle]) rotate(180/ThreadSides)
    cylinder(r1=ThreadOD/2,
    r2=ThreadOD/(2*CylFudge),
    h=CylLength,
    center=true,$fn=ThreadSides);
    }
    }
    //– PVC fitting to vacuum hose
    module PVCtoHose() {
    Fitting = [34.0,41.0,16.0]; // 1 inch PVC elbow
    Adapter = [HoseThread[MAJOR],(Fitting[OD] + 2*WallThick + HoleWindage),(ScrewOAL + Fitting[LENGTH])]; // dimensions for entire fitting
    union() {
    difference() {
    cylinder(d=Adapter[OD],h=Adapter[LENGTH]); // overall fitting
    translate([0,0,-Protrusion]) // remove thread pitch dia
    cylinder(d=HoseThread[MAJOR],h=(ScrewOAL + 2*Protrusion));
    translate([0,0,(ScrewOAL – Protrusion)]) // remove PVC fitting dia
    cylinder(d=(Fitting[OD] + HoleWindage),h=(Fitting[LENGTH] + 2*Protrusion));
    }
    translate([0,0,HoseThread[PITCH]/2]) // add the thread form
    CylinderThread(HoseThread[PITCH],ThreadLength,HoseThread[MAJOR],HoseThread[FORM_OD],NumSegments,"Left");
    }
    }
    //– Expander ring from small OD to large ID PVC fittings
    // So a small elbow on the bandsaw fits into the hose adapter, which may not be long-term useful
    module ExpandRing() {
    Fitting_L = [34.0,41.0,16.0]; // 1 inch PVC pipe elbow
    Fitting_S = [26.8,32.8,17]; // 3/4 inch PVC elbow
    difference() {
    cylinder(d1=Fitting_L[OD],d2=(Fitting_L[OD] – HoleWindage),h=Fitting_L[LENGTH]); // overall fitting
    translate([0,0,-Protrusion])
    cylinder(d=(Fitting_S[OD] + HoleWindage),h=(Fitting_L[LENGTH] + 2*Protrusion));
    }
    }
    //– 1 inch PVC pipe into vacuum port
    // Stick this in the port, then plug a fitting onto the pipe section
    module PipeToPort() {
    Pipe = [26.5,33.5,20.0]; // 1 inch Schedule 40 PVC pipe
    difference() {
    union() {
    cylinder(d=Pipe[OD],h=(Pipe[LENGTH] + Protrusion));
    translate([0,0,(Pipe[LENGTH] – Protrusion)])
    cylinder(d1=VacNozzle[OD],d2=VacNozzle[ID],h=VacNozzle[LENGTH]);
    }
    translate([0,0,-Protrusion])
    cylinder(d=Pipe[ID],h=(Pipe[LENGTH] + VacNozzle[LENGTH] + 2*Protrusion));
    }
    }
    //– Female Vac outlet inside PVC pipe
    // Plug this into PVC fitting, then plug hose + nozzle into outlet
    module FVacPipe() {
    Pipe = [26.5,33.5,20.0]; // 1 inch Schedule 40 PVC pipe
    difference() {
    cylinder(d=Pipe[OD],h=VacPortSander[LENGTH]);
    translate([0,0,-Protrusion])
    cylinder(d1=VacPortSander[ID],d2=VacPortSander[OD],h=(VacPortSander[LENGTH] + 2*Protrusion));
    }
    }
    //– Female Vac outlet on 3/4 inch fitting OD
    // Jam this onto OD of fitting, plug hose + nozzle into outlet
    module FVacFitting() {
    Adapter = [26.5,(33.5 + 2*WallThick),17.0]; // overall adapter
    VacPortSander = [30.0,31.3,25]; // vacuum port on belt sander (taper ID to OD over length)
    Fitting = [26.8,32.8,17]; // 3/4 inch PVC elbow
    TaperLength = 5.0; // inner taper to avoid overhang
    difference() {
    cylinder(d=Adapter[OD],h=Adapter[LENGTH]); // overall fitting
    translate([0,0,-Protrusion])
    cylinder(d=(Fitting[OD] + HoleWindage),h=(Adapter[LENGTH] + 2*Protrusion));
    }
    translate([0,0,Adapter[LENGTH]])
    difference() {
    cylinder(d=Adapter[OD],h=TaperLength);
    translate([0,0,-Protrusion])
    cylinder(d1=(Fitting[OD] + HoleWindage),d2=VacPortSander[ID],h=(TaperLength + 2*Protrusion));
    }
    translate([0,0,(TaperLength + Adapter[LENGTH])]) // vac fitting
    difference() {
    cylinder(d=Adapter[OD],h=VacPortSander[LENGTH]);
    translate([0,0,-Protrusion])
    cylinder(d1=VacPortSander[ID],d2=VacPortSander[OD],h=(VacPortSander[LENGTH] + 2*Protrusion));
    }
    }
    //———-
    // Build things
    if (Layout == "PVCtoHose")
    PVCtoHose();
    if (Layout == "ExpandRing") {
    ExpandRing();
    }
    if (Layout == "PipeToPort") {
    PipeToPort();
    }
    if (Layout == "FVacPipe") {
    FVacPipe();
    }
    if (Layout == "FVacFitting") {
    FVacFitting();
    }

    Sketches of dimensions and ideas, not all of which worked out:

    Vacuum Fitting Doodles - hose thread - 3-4 pipe - nozzle
    Vacuum Fitting Doodles – hose thread – 3-4 pipe – nozzle
    Vacuum Fitting Doodles - hose thread forms - 3-4 elbow
    Vacuum Fitting Doodles – hose thread forms – 3-4 elbow
    Vacuum Fitting Doodles - port - male port - 45 deg 3-4 elbow
    Vacuum Fitting Doodles – port – male port – 45 deg 3-4 elbow