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

  • Sakura Pen Nib

    Emboldened by Erik’s suggestion to file the end of a smashed Sakura pen, I filed a notch around the metal snout, snapped it off, and pulled on the tip:

    Sakura pen - extended nib
    Sakura pen – extended nib

    Come to find out the end of the snout is compressed around the nib and holds it in place. I don’t know how long the fiber cylinder might be, but it slides right out of the pen body.

    So I squished the snout just a little, snipped off the metal tip, filed the fiber cylinder’s end to a point, and … it sorta-kinda works, but it’ll never again be a very good pen.

    Obviously, I should conjure a slightly compliant pen holder for the MPCNC.

  • MPCNC: Bar Clamp Mounts, Redux

    With the new thermistor installed and the nozzle at (pretty nearly) the right height, the final set of bar clamp mounts came out perfectly:

    MPCNC - reprinted bar clamp mounts
    MPCNC – reprinted bar clamp mounts

    They’re supporting the snippets produced by trimming the clamp extrusions to fit across the bench under the MPCNC; I figure they ought to come in handy for something.

    Both extrusions carry a warning sticker giving the bar’s serial number:

    Harbor Freight Bar Clamp Labels
    Harbor Freight Bar Clamp Labels

    Huh.

    I could be persuaded the number applies to a given production batch, although I’d be unsurprised to learn it’s a batch of labels, not clamps.

    They don’t look much different than the previous versions:

    MPCNC - bar clamp mount
    MPCNC – bar clamp mount

    The main change was to raise the bars by another 2 mm to give one of the clamp shoes more clearance. As you might expect, the top and bottom halves of the clamp castings aren’t quite symmetric.

    The plastic mounts come in mirror-image sets due to that off-center bolt hole.

    Yes, the threaded casting is slightly angled from the screw clamping force.

    All in all, the mounts look pretty good, in a bright-orange sort of way.

  • M2 Nozzle Coating and Installation

    Quite some time ago, Vedran described a silicone boot he put over the nozzle. Rather than building a mold and casting the RTV, I threw caution to the winds, ignored any acetic acid corrosion issues, and troweled a layer of RTV on the nozzle:

    M2 - nozzle silicone - applied
    M2 – nozzle silicone – applied

    That’s JB Weld Hi-Temp Red Silicone, rated up to 550 °F = 290 °C continuous operation, so it should be Just Fine at  PETG’s usual 250 °C.

    I slipped the rebuilt thermistor into its hole, slipped the hot end back into the M2’s extruder, raised it a bit higher than it was before, fired up the M2, and …

    • Home the X axis
    • Set X offset: G28 X-100
    • Move it off to the right: G0 X130
    • Home the Z axis
    • Set Z offset: G28 Z-2.15
    • The Y axis is pretty near the middle, so it’s all good
    • Move the nozzle to the middle: G0 X0
    • Move the platform to Z=0: G0 Z0

    N.B.: I have the XY=0 origin in the middle of the platform, so don’t do like I do and expect it to work if you put the origin elsewhere.

    Then loosen the hot end clamp, slide the hot end down until the nozzle touches the platform, tighten the clamp, and the tip of the nozzle should be pretty close to where it started out:

    M2 - nozzle silicone - Z 0.0 set
    M2 – nozzle silicone – Z 0.0 set

    The microswitch in the background senses the top of the platform, eliminating all the putzing around everybody else does to get a consistent Z offset. I verified the switch trip point by sliding my trusty Starrett No. 270 Taper Gage under the lever until it tripped at 2.1 mm; about as close to 2.15 mm as one might hope for.

    For reasons not relevant here, the test print was another set of Epson projector foot repair parts:

    Epson S5 Projector Foot - Slic3r preview
    Epson S5 Projector Foot – Slic3r preview

    The PETG hairs I described in the original post were conspicuous by their absence. It’s too early to tell if the silicone coating is a complete cure, but at least it’s not causing any obvious problems.

    The skirt around those parts came out close enough to its nominal 0.25 mm layer thickness:

    M2 - nozzle alignment - skirt thickness
    M2 – nozzle alignment – skirt thickness

    I must print some calibration squares to verify the platform alignment and the overall height.

    Just for completeness, here’s looking up at the new nozzle, snug inside its fuzzy fiberglas insulating wrap, with a PETG strand drooling from its orifice:

    M2 - nozzle silicone - bottom view
    M2 – nozzle silicone – bottom view

    I really should order a couple of thermistors, a cartridge heater, and maybe a nozzle …

  • M2 Thermistor Rebuild

    The MAXTEMP error killing the M2 while printing the bar clamp mounts (probably) came from a short in the thermistor pellet that lowered the thermistor resistance and raised the calculated temperature. I manually heated the extruder and, although the temperature stabilized at 250 °C, the history plot showed irregular downward jogs from increasing resistance. Whenever this constellation of symptoms appears on the M2 forums, I always recommend ordering another thermistor or two, so …

    Start by turning a 1/8 inch OD brass tube down to 3.00 mm, parting off a suitable length, facing the ends:

    M2 - thermistor brass tube turning
    M2 – thermistor brass tube turning

    Countersink the ends just for pretty.

    The tube should be a slip fit in the hot end:

    M2 - hot end thermistor - turned brass tube
    M2 – hot end thermistor – turned brass tube

    While I had the hot end on the bench, I scuffed the nozzle to remove (most of) the baked-on crud:

    M2 - nozzle silicone - cleaned nozzle
    M2 – nozzle silicone – cleaned nozzle

    The plan is to seal the thermistor bead inside the tube with JB Weld epoxy, which I’ve verified (!) to work at extrusion temperatures, depending on the epoxy to insulate the wiring and immobilize all the pieces.

    Harvest the original wire harness from the defunct thermistor, solder to the bead, lay out guide lines:

    M2 - thermistor - assembly 1 layout
    M2 – thermistor – assembly 1 layout

    Slobber epoxy over everytyhing, fill the tube, insert bead into tube, stabilize with tape:

    M2 - thermistor - assembly 1 curing
    M2 – thermistor – assembly 1 curing

    Verify connectivity through the thermistor and isolation from the brass tube, then return upstairs to warm up thaw out while the epoxy cures.

    At this point, the observant reader should be thinking “Uh, Ed, that bead looked a tad large. Are you absolutely sure  … ?”

    Halfway up the basement stairs I realized I’d meticulously entombed a 10 kΩ thermistor, not the 100 kΩ thermistor used in the M2’s hot end. You can easily verify the resistance, as I did, with a quick web search; I have hella-good SEO for some specific topics.

    Back to the lab …

    Fortunately, JB Weld has a pot life over an hour, so extract the wrong bead, unsolder, install the right thermistor using snippets of insulation harvested from the original wiring, realign components:

    M2 - thermistor - assembly 2 layout
    M2 – thermistor – assembly 2 layout

    Reapply epoxy:

    M2 - thermistor - assembly 2
    M2 – thermistor – assembly 2

    Re-verify resistances, return upstairs, fast-forward through the night, have another good idea …

  • MPCNC: Bar Clamps

    Using various prototypes of the bar clamp mounts, here’s the left-side clamp in action:

    MPCNC - bar clamp trial installation
    MPCNC – bar clamp trial installation

    In round numbers, the (yet to be installed) spindle won’t exert any upward force worth mentioning, so clamping the material in the horizontal plane should hold it firmly enough for my simple needs. A more robust router needs more downward force.

    The left-side clamp sits outside the MPCNC’s frame to prevent blocking the leftmost inch or so of the work area:

    MPCNC - bar clamp left
    MPCNC – bar clamp left

    Although the right-side clamp is inside the frame rails, the gantry’s asymmetry puts the clamp outside of the work area:

    MPCNC - bar clamp right
    MPCNC – bar clamp right

    Yes, those are nylon bolts; my 1/4-20 bolt stash is greatly depleted. I picked up a small assortment of stainless bolts in useful sizes, but they top out at 1-½ inch.

    Fastening the blocks to the bench required a bit of fiddling after squaring the bars against the edge. Transfer-punch the hole location, then drill a 1/16 inch pilot hole:

    Gingerly counterbore a t-nut recess in the bottom with a 3/4 inch Forstner bit marked with a suitable depth to completely sink the t-nut:

    MPCNC - t-nut counterbore
    MPCNC – t-nut counterbore

    The shop vac snout keeps the chips out of your face. Works like a champ!

    Redrill the pilot hole with a 5/16 inch brad-point bit to fit the 1/4-20 t-nut body:

    MPCNC - t-nut in counterbore
    MPCNC – t-nut in counterbore

    The t-nut may not be exactly centered in the counterbore, but nobody will ever notice.

    Rather than hammering the t-nut into the bench, gently & quietly pull it in place with a bolt atop a pair of washers:

    MPCNC - bolt for t-nut installation
    MPCNC – bolt for t-nut installation

    Again, the shop vac collected all the chips from the brad-point bit.

    Of course, Harbor Freight bar clamps aren’t intended for this duty, so they’re held together with assemble-only pins and clips. Disassemble the clip with a Dremel cutoff wheel and the pin will fall right out:

    Bar Clamp - pin removal
    Bar Clamp – pin removal

    I had to through-drill the bar + hardware + 3D printed mount to get a consistent hole, as the overall tolerances aren’t particularly tight and things tend to not fit back together the way they came apart.

    The bar clamps started out at 36 inches and stuck out over the far end of the bench. I hacksawed them to a suitable length, cleaned up the cut on the bandsaw, and the cut disappears in the end block:

    MPCNC - bar clamp end block
    MPCNC – bar clamp end block

    By complete coincidence, the rear bolt holes turned out to be exactly lined up with the edge of the metal bench frame, so I had to remove eleven of the twelve screws holding the bench to the frame, rotate it slightly, drill the rear holes, install the t-nuts, un-rotate the top, and reinstall all the screws. As it turns out, the four end screws are located in blind parts of the frame where I could remove three of them, but cannot re-install them with any tool at my command. I think I can conjure a modified finger wrench, but …

    The bars are made of the softest aluminum known to man in the thinnest cross-section that won’t crumple under a stiff glance, so they’re more flexy than you’d (well, I’d) like. Various comments suggest running a snug-fitting strip of 3/4 inch plywood inside the rail to stiffen it up; we’ll see how they fare against the MPCNC’s actual cutting forces before doing anything rash.

    The jaws are also way slicker than I’d like and may need screwed- or glued-on plywood pads for better grip.

    Those are all early versions of the mounting blocks, because this happened while printing the final set:

    MPCNC - failed bar clamp mounts
    MPCNC – failed bar clamp mounts

    The black smudge on the block in the upper right is what happens when a MAXTEMP error shuts the printer down in mid-stride, leaving the nozzle to cool in the part. Looks like it’s time for a new thermistor …

  • MPCNC: Bar Clamp Mounts

    Rather than attach a spoil board directly to the bench top under the MPCNC, one can grab it in bar clamps anchored to the bench, which requires suitable mounts. Because bar clamps are all the same, one must be flipped over to point the other way, soooo the mounts come in mirror-image sets.

    Holding the clamp on the left side of the table:

    Bar Clamp Mounts - Left - solid model
    Bar Clamp Mounts – Left – solid model

    For the right-side clamp:

    Bar Clamp Mounts - Right - solid model
    Bar Clamp Mounts – Right – solid model

    The chunky clamp prints on its end, with its bottom surface facing away from you, to let the block in the middle print without support. In that orientation, the bar slides in from the top.

    The fancy rounded corners happened while I iterated on getting the dimensions right.

    Actually printing and installing the things turned out to be separate challenges.

    The OpenSCAD source code as a GitHub Gist:

    // MPCNC Bar Clamp Mounts
    // Ed Nisley KE4ZNU – 2018-02-03
    Layout = "Build"; // BarEnd EndBlock ScrewBlock Build
    Chirality = "Right"; // bar handedness = side with opening
    /* [Extrusion] */
    ThreadThick = 0.25; // [0.20, 0.25]
    ThreadWidth = 0.40; // [0.40]
    /* [Hidden] */
    Protrusion = 0.1; // [0.01, 0.1]
    HoleWindage = 0.2;
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    ID = 0;
    OD = 1;
    LENGTH = 2;
    //- Adjust hole diameter to make the size come out right
    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);
    }
    /* [Clamp] */
    BarEndOut = [34.5,21.0]; // outside dimensions
    BarEndIn = [28.0,18.0]; // … inside
    BarEndSlot = [2.8,11.5]; // slot on open side
    BarEndRadius = 1.5; // corner rounding
    NumSides = 3*4; // … and sides
    BarHeightOC = 22.0; // min height above bench
    Clearance = 0.2; // overall bar clearance
    PinOffset = [14.0,2.5]; // clamp hardware pin location
    PinOD = 6.5; // … pin OD
    WallThick = 5.0; // basic wall & floor thickness
    EndBlockSize = [2*PinOffset.x + WallThick,BarEndOut.x + 2*WallThick,BarHeightOC + BarEndOut.y/2];
    ScrewBlockSize = [2*PinOffset.x,BarEndOut.x + 2*WallThick,BarHeightOC + BarEndOut.y/2];
    //—–
    // Define shapes
    // Aluminum bar extrusion
    module BarEnd(Length = 2.0,Hollow=true) {
    linear_extrude(height=Length,convexity=3)
    offset(delta=Clearance)
    difference() {
    hull()
    for (i=[-1,1], j=[-1,1])
    translate([i*(BarEndOut.x/2 – BarEndRadius),j*(BarEndOut.y/2 – BarEndRadius)])
    circle(r=BarEndRadius,$fn=3*4); // not related to block corner rounding
    if (Hollow) {
    translate([BarEndOut.x/2 – BarEndIn.x/2 – BarEndSlot.x,0])
    square(BarEndIn,center=true);
    translate([BarEndOut.x/2,0])
    square([BarEndOut.x,BarEndSlot.y],center=true);
    }
    }
    }
    // Block supporting open end of Bar
    module EndBlock() {
    Normal = (Chirality == "Left") ? [0,0,0] : [0,1,0];
    Radius = WallThick;
    mirror(Normal)
    difference() {
    if (true)
    hull() {
    dx = EndBlockSize.x/2 – Radius;
    dy = EndBlockSize.y/2 – Radius;
    for (i=[-1,1],j=[-1,1])
    translate([i*dx,j*dy,EndBlockSize.z – Radius]) {
    sphere(r=Radius,$fn=NumSides);
    cylinder(r=Radius,h=Protrusion,$fn=NumSides);
    }
    for (i=[-1,1],j=[-1,1])
    translate([i*dx,j*dy,0])
    cylinder(r=Radius,h=Protrusion,$fn=NumSides);
    }
    else
    translate([-EndBlockSize.x/2,-EndBlockSize.y/2,0])
    cube(EndBlockSize,center=false);
    translate([EndBlockSize.x/2 – PinOffset.x,0*PinOffset.y,-Protrusion])
    rotate(180/8)
    PolyCyl(PinOD,2*EndBlockSize.z,8);
    translate([EndBlockSize.x/2 – 2*PinOffset.x,0,BarHeightOC])
    rotate([0,90,0]) rotate(-90)
    BarEnd(Length=EndBlockSize.x);
    }
    }
    // Block supporting screw end of Bar
    // Ad-hoc chamfers to clear screw mount castings
    module ScrewBlock() {
    Normal = (Chirality == "Left") ? [0,0,0] : [0,1,0];
    Radius = WallThick;
    mirror(Normal)
    difference() {
    if (true)
    hull() {
    dx = ScrewBlockSize.x/2 – Radius;
    dy = ScrewBlockSize.y/2 – Radius;
    for (i=[-1,1],j=[-1,1])
    translate([i*dx,j*dy,ScrewBlockSize.z – Radius]) {
    sphere(r=Radius,$fn=NumSides);
    cylinder(r=Radius,h=Protrusion,$fn=NumSides);
    }
    for (i=[-1,1],j=[-1,1])
    translate([i*dx,j*dy,0])
    cylinder(r=Radius,h=Protrusion,$fn=NumSides);
    }
    else
    translate([0,0,ScrewBlockSize.z/2])
    cube(ScrewBlockSize,center=true);
    translate([0,PinOffset.y,-Protrusion])
    rotate(180/8)
    PolyCyl(PinOD,2*ScrewBlockSize.z,8);
    translate([-ScrewBlockSize.x/2 – Protrusion,0,BarHeightOC])
    rotate([0,90,0]) rotate(-90)
    BarEnd(Length=ScrewBlockSize.x + 2*Protrusion,Hollow=false);
    for (i=[-1,1])
    translate([i*ScrewBlockSize.x/2,ScrewBlockSize.y/2,ScrewBlockSize.z – Protrusion])
    rotate(45)
    cube([sqrt(2)*WallThick,sqrt(2)*WallThick,2*ScrewBlockSize.z],center=true);
    }
    }
    //—–
    // Build things
    if (Layout == "BarEnd")
    BarEnd();
    if (Layout == "EndBlock")
    EndBlock();
    if (Layout == "ScrewBlock")
    ScrewBlock();
    if (Layout == "Build") {
    translate([EndBlockSize.z/2,0.6*EndBlockSize.y,EndBlockSize.x/2])
    rotate([0,-90,0])
    EndBlock();
    translate([0,-0.6*ScrewBlockSize.y,0])
    ScrewBlock();
    }

    The original doodles, with initial dimensions & some bad ideas:

    Bar Clamp Mount - Dimension Doodles
    Bar Clamp Mount – Dimension Doodles

     

  • Juki TL-2010Q Sewing Machine: Thread Guide

    It turns out the thread guide on Mary’s new Juki TL-2010Q sewing machine has what’s euphemistcally known as “negative clearance” with the ruler foot she uses for quilting patterns. With the foot raised to move the cloth, inadvertently pressing the foot pedal or turning the handwheel can crunch the thread guide against the foot.

    As you might expect, the intricately bent wire thread guide doesn’t survive the encounter. Not having a spare ready to hand and not knowing quite what it should look like, I reshaped it as best I could:

    Juki thread guide - in vise
    Juki thread guide – in vise

    It worked moderately well:

    Juki thread guide - reshaped installed
    Juki thread guide – reshaped installed

    The automatic needle threader wasn’t reliable, but she could cope until the replacements arrived.

    Comparing the new one (left) with the wrecked one (right) shows I didn’t re-bend the loop tightly enough, putting the end on the right at the wrong angle:

    Juki thread guide - new vs reshaped
    Juki thread guide – new vs reshaped

    It’s the kind of shape you can duplicate by the thousands with a production machine, but can’t make at home without entirely too much tedious effort.

    The new one works fine, seen here in front of a walking foot, with the auto-threader looming in the upper foreground:

    Juki thread guide - new installed
    Juki thread guide – new installed

    Aaaand now we have spares!