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.

Author: Ed

  • 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
  • Fairchild and Stoddard RF Current Probes / EMC Field Sniffers

    I’ve always wondered how noisy those Arduino + fake Neopixel lamps might be and these RF sniffers might come in handy:

    Fairchild MFC-25 and Stoddart 91550-1 Current Probes
    Fairchild MFC-25 and Stoddart 91550-1 Current Probes

    Even though they’re long obsolete, RF fields haven’t changed much in the intervening decades.

    Fairchild Electronics may have become Electro-Metrics before they vanished in turn; the single useful search result offers a limited spec sheet that describes it as part of a set of three “loop probes covering the frequency range 10kHz-230MHz designed to search for RF magnetic leaks, especially in cabinets and shielded enclosures”. This one, with the blue coating, has a bandwidth of 22 MHz to 230 MHz. It has a TNC connector that now sports a cheap BNC adapter; note that it has standard polarity, not the reverse polarity required by FCC regulations that don’t take Amazon Prime into consideration.

    Stoddard Aircraft Radio Co, Inc passed the 91550-1 baton to ETS-Lindgren, which (as of right now, anyway) offers a datasheet for a gadget that looks remarkably similar. The 30 Hz lower limit on the data plate suggests it’s roughly equivalent to ETS-L’s contemporary 20 Hz 91550-1L probe, but I doubt that makes much practical difference for my simple needs. The adapter takes the probe’s N connector to BNC.

    The Word According to Mad Phil: If you can get to BNC, you can get to anything.

     

  • Vacuum Tube LEDs: Bowl of Fire Floodlight

    Although I didn’t plan it like this, the shape of the first doodad on the mini-lathe reminded me that I really wanted something more presentable than the (now failed) ersatz Neopixel inside the ersatz heatsink atop that big incandescent bulb.

    So, drill a hole in the side:

    Ersatz aluminum heatsink - drilling
    Ersatz aluminum heatsink – drilling

    Epoxy a snippet of brass tubing from the Bottomless Bag o’ Cutoffs into the hole:

    Ersatz aluminum heatsink - tubing trial fit
    Ersatz aluminum heatsink – tubing trial fit

    Recycle the old wire and PET loom, solder to another fake Neopixel, blob epoxy inside to anchor everything, and press it into place:

    Ersatz aluminum heatsink - epoxying LED
    Ersatz aluminum heatsink – epoxying LED

    Cutting the failed LED & plastic heatsink off the wire left it a bit too short for that tall bulb, but some rummaging in the heap produced a 100 W incandescent floodlight with a nicely pebbled lens:

    Reflector floodlight - overview
    Reflector floodlight – overview

    A thin ring of clear epoxy secures the ersatz heatsink to the floodlight:

    Reflector floodlight - finned LED holder
    Reflector floodlight – finned LED holder

    This time, I paid more attention to centering it atop the General Electric logo ring in the middle of the lens, which you can just barely see around the perimeter of the aluminum fin. By pure raw good fortune, the cable ended up pointed in the general direction of the socket’s pull-chain ferrule; you can’t unscrew the bulb without tediously unsoldering the wires from connector atop the knockoff Pro Mini inside the base and squeezing them back out through the ferrule.

    With the firmware set for a single fake Neopixel on pin A3 and a 75 ms update rate, the floodlight bowl fills with color:

    Reflector floodlight - purple phase
    Reflector floodlight – purple phase

    It puts a colored ring on the ceiling and lights the whole room far more than you’d expect from 200 mW of RGB LEDs.

    Pretty slick, even if I do say so myself …

  • Mini-Lathe: First Cuts

    Despite the craptastic way finishing and the cross slide DRO malfeature, the Little Machine Shop 5200 lathe works well enough for my simple needs. I really like the quick change toolpost:

    LMS Mini-lathe - first cuts
    LMS Mini-lathe – first cuts

    The QC post and tool holders have very nice machining and surface finish; they evidently come from an entirely different production line than the lathe components. I can definitely get used to using carbide inserts, although I ordered some HSS inserts for interrupted cuts.

    The HSS cutoff tool does what you’d expect:

    LMS Mini-lathe - first cut - drilled and slotted
    LMS Mini-lathe – first cut – drilled and slotted

    The holes in the end came from short (“screw machine”) drill bits I got for the Sherline’s painfully limited Z axis travel. Even so, chucking one in the 1/2 inch capacity LMS drill chuck shows why a 16 inch bed isn’t excessive:

    LMS Mini-lathe - drill chuck vs bed length
    LMS Mini-lathe – drill chuck vs bed length

    The 6 inch = 150 mm scale on the bed (to the right of the tailstock) extends to the limit of tailstock travel, so you could have another half foot of stock sticking out of the 3 jaw chuck. A collet in the spindle would give you another two inches, but it’s snug in there.

    On the other paw, this is a little lathe intended to make little things. It’ll do fine…

  • Mini-Lathe: Control Box Cover Screws

    It’s easier to remove the leadscrew while dismantling the carriage and apron, which requires removing the cover from the control box containing all the switches & knobs. Come to find out the “cover” actually holds all the gadgetry onto the headstock:

    LMS mini-lathe - control box interior
    LMS mini-lathe – control box interior

    I want to replace the Power indicator with something visible in normal shop light; judging from the connectors and overall brightness, it’s a neon bulb inside a green housing.

    Anyhow, the four screws holding cover to the headstock weren’t identical:

    LMS Mini-lathe - cover screws
    LMS Mini-lathe – cover screws

    I thought the oddball screw was deliberate, perhaps fastening that corner to a plastic frame of some sort, but it turned out to be a quick fix for a boogered tap job:

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

    A bag of 4 mm knurled brass inserts will arrive in a while, after which I’ll drill out all four holes and epoxy inserts in their place. Might have to use stainless hardware, just for nice…

  • Tool Drawers: Cheap Foam Liner

    You can get fancy closed-cell foam sheets for the bottom of your tool chest drawers and tote, but it seems awfully spendy, even with Harbor Freight quality plastic, for something that you must cut-to-fit. The drawers are just under 22×11 and 22×17 inches, so a 18×72 inch roll would line maybe three drawers; call it three bucks per drawer and, with nearly three dozen drawers to line, I’d rather drop a hundred bucks on tools.

    Rather than do that, the usual eBay supplier provided 150 feet of 1/8 inch x 24 inch white polyethylene closed-cell foam sheet for $27 delivered:

    Polyethylene foam sheet - roll
    Polyethylene foam sheet – roll

    It’s intended for packaging small items for shipping, but I’ll never tell.

    I mooched Mary’s 2×3 foot rotary cutting mat (this reenactment shows the awkwardly sized 17×23 inch mat), her longest quilting rulers, and dullest rotary blades:

    Rotary cutting foam sheets
    Rotary cutting foam sheets

    After a few mis-steps, I got the hang of it:

    Foam-lined tool tray
    Foam-lined tool tray

    It’s not as contrast-y as black foam, but I can still find the tools:

    Foam-lined tool drawer
    Foam-lined tool drawer

    And I have plenty of foam left over for shipping small things, if I ever do any of that…