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

  • Inline Switch FAIL

    Inline Switch FAIL

    One of the inline switches I installed to replace the failed switches for the LED lights got unpleasantly warm enough to prompt an investigation:

    Inline lamp switch - heat damage
    Inline lamp switch – heat damage

    Yeah, that is not a nominal outcome, particularly in light of the claimed “10 A 250 V” rating.

    The overheated plastic pulled back enough to expose the terminal inside:

    Inline lamp switch - visible terminal
    Inline lamp switch – visible terminal

    There was a reason I’d wrapped those switches with known-good 3M electrical tape before deploying them.

    That crimp connector took some heat and its screw looks even more unhappy:

    Inline lamp switch - internal damage
    Inline lamp switch – internal damage

    It turned out the screw was an itsy too short to compress both the connector and the bent-metal conductor tab against the terminal block:

    Inline lamp switch - misfit screw terminal
    Inline lamp switch – misfit screw terminal

    A 6 mm brass screw with a brass washer did a better job of compressing all parties into one conductive lump.

    Although the switch now runs with the case at normal basement temperature, an allegedly UL listed replacement is on its way; it costs about five times more than that switch. If it behaves as it should, I’ll preemptively replace two other switches.

  • Ortur YRC-1: Petite Chuck Jaws

    Ortur YRC-1: Petite Chuck Jaws

    The standard jaws for the Ortur Rotary loom over small-diameter workpieces:

    Ortur Rotary Focus Pad - home offset adjustment
    Ortur Rotary Focus Pad – home offset adjustment

    Some measuring and modeling produced petite 3D printed jaws:

    Ortur Rotary - printed jaws
    Ortur Rotary – printed jaws

    Admittedly, those jaws aren’t doing much of anything, but they’re not nearly as much in the way. You (well, I) can screw them in closer to the center to overlap the chuck jaws or another hole outward for slightly larger cylinders.

    The solid model looks about the same:

    Ortur Rotary Jaws - 2-3 show view
    Ortur Rotary Jaws – 2-3 show view

    They build face-down with a little support under the screw recesses for a clean fit on the chuck:

    Ortur Rotary Jaws - Prusaslicer
    Ortur Rotary Jaws – Prusaslicer

    Teeny jaws might be handy:

    Ortur Rotary Jaws - 2-2 show view
    Ortur Rotary Jaws – 2-2 show view

    Screwing them in one hole outward lets them grip medium cylinders without sticking out from the chuck jaws:

    Ortur Rotary - small printed jaws
    Ortur Rotary – small printed jaws

    The OpenSCAD code lets you pick which screw holes you want, but it does not error-check the perverse choices.

    The OpenSCAD source code as a GitHub Gist:

    // Ortur Rotary Focus Pad
    // Ed Nisley – KE4ZNU
    // 2026-01-04
    include <BOSL2/std.scad>
    Style = "Show"; // [Build,Show,Chuck,ChuckJaw,Jaw]
    InnerScrew = 1; // [0:3]
    OuterScrew = 3; // [2:4]
    /* [Hidden] */
    ID = 0;
    OD = 1;
    LENGTH = 2;
    HoleWindage = 0.2;
    Protrusion = 0.1;
    Gap = 5.0;
    NumSides = 8*3*4;
    $fn=NumSides;
    WallThick = 2.0;
    ScrewHead = [4.0 + HoleWindage,7.0 + HoleWindage,4.0];
    ChuckOD = 66.0;
    ChuckThick = 10.0;
    ChuckBCR = [3.5,7.5,15.0,22.5,30.0]; // M4 tapped in chuck jaws
    ChuckJawOA = [ChuckOD/2,8.0 + HoleWindage,3.5];
    JawBlock = [0,15.0,2*WallThick + ScrewHead[LENGTH]]; // .x will be variable
    JawRound = 1.0; // tip rounding
    //—–
    // Single chuck jaw with holes
    module ChuckJaw(Holes=true) {
    difference() {
    intersection() {
    cuboid(ChuckJawOA,anchor=BOTTOM+LEFT);
    cyl(ChuckJawOA.z,d=ChuckOD,anchor=BOTTOM);
    linear_extrude(h=ChuckJawOA.z)
    hexagon(od=ChuckOD,rounding=2.0,anchor=LEFT);
    }
    if (Holes)
    for (i = [0:len(ChuckBCR)-1])
    right(ChuckBCR[i])
    down(Protrusion)
    cyl(2*ChuckJawOA.z,d=ScrewHead[ID],anchor=BOTTOM);
    }
    }
    // Chuck layout
    module Chuck(Holes=true) {
    cyl(ChuckThick,d=ChuckOD,anchor=TOP) position(TOP)
    for (a = [0:120:360])
    zrot(a)
    ChuckJaw(Holes);
    }
    // Gripping jaw
    module Jaw(Screws=[1,3]) {
    HoleOC = ChuckBCR[Screws[1]] – ChuckBCR[Screws[0]];
    JawOAL = HoleOC + ScrewHead[OD] + 2*WallThick + (JawBlock.y/2)/cos(30);
    difference() {
    left(JawOAL/2)
    intersection() {
    cuboid(JawBlock + [JawOAL,0,0],anchor=BOTTOM+LEFT);
    linear_extrude(h=JawBlock.z)
    hexagon(od=ChuckOD,rounding=JawRound,anchor=LEFT);
    right(JawOAL)
    linear_extrude(h=JawBlock.z)
    hexagon(od=ChuckOD,rounding=JawRound,anchor=RIGHT);
    }
    right(0*JawOAL/2)
    for (i=[-1,1])
    right(i*HoleOC/2) {
    down(Protrusion)
    cyl(JawBlock.z,d=ScrewHead[ID],anchor=BOTTOM);
    up(2*WallThick)
    cyl(JawBlock.z,d=ScrewHead[OD],anchor=BOTTOM);
    }
    down(Protrusion)
    cuboid([JawOAL,ChuckJawOA.y,WallThick + Protrusion],anchor=BOTTOM);
    }
    }
    //—–
    // Build things
    if (Style == "Chuck") {
    Chuck();
    }
    if (Style == "Show") {
    xrot(180)
    yrot(90) {
    color("Gray",0.8)
    Chuck();
    up(ChuckJawOA.z – WallThick)
    for (a = [0:120:360])
    zrot(a)
    right((ChuckBCR[InnerScrew] + ChuckBCR[OuterScrew])/2)
    Jaw(Screws=[InnerScrew,OuterScrew]);
    }
    }
    if (Style == "ChuckJaw")
    ChuckJaw();
    if (Style == "Jaw") {
    Jaw(Screws=[InnerScrew,OuterScrew]);
    }
    if (Style == "Build")
    for (j=[-1:1])
    fwd(j*(JawBlock.y + Gap))
    up(JawBlock.z) xrot(180)
    Jaw(Screws=[InnerScrew,OuterScrew]);
  • Ortur YRC-1: Autofocus Pad

    Ortur YRC-1: Autofocus Pad

    Ruida laser controllers do not allow the platform to rise above the U=0 origin set by the autofocus pen = switch. While this isn’t a problem for flat surfaces, focusing on the exact top of a horizontal cylinder, particularly a small rod, may be overly difficult.

    So a focusing pad seems like a Good Idea™:

    Ortur Rotary Focus Pad - focus pen positioning
    Ortur Rotary Focus Pad – focus pen positioning

    The general idea:

    • Align a flat horizontal surface with the rotary chuck’s axis
    • Do the autofocus operation with a well-defined landing zone under the pen
    • The Focus Distance puts the laser head at the proper height for a focused spot on the pad
    • Jogging the head upward (= platform downward) by the workpiece radius puts the focused spot exactly at the right height
    • Remove the focus pad
    • Install the workpiece
    • Fire The Laser

    The solid model:

    Ortur Rotary Focus Pad - solid model
    Ortur Rotary Focus Pad – solid model

    Features of note:

    • The chuck jaws fit into the recesses on the left end for a firm grip with good alignment
    • The lengthwise notch lies on the rotary axis parallel to the laser’s X axis
    • The crosswise notch is juuust rightward of the chuck jaws, marking the leftmost end of whatever you’re engraving

    Because I added a home switch to the Ortur YRC-1 case, Jaw 1 automagically ends up on top after homing, thus automagically making the focus pad horizontal. Getting that right required fine-tuning the rotary’s home switch trip point, which turned out to be easier to do using the Home Offset configuration value after I replaced the cam I thought would work:

    Ortur Chuck Rotary home switch - pulley cam
    Ortur Chuck Rotary home switch – pulley cam

    Instead, a simple M4 setscrew (standing proud of the pulley surface in one of the tapped holes for the real setscrew securing the pulley to the shaft) trips the switch much more repeatably :

    Ortur Rotary Focus Pad - home trip setscrew
    Ortur Rotary Focus Pad – home trip setscrew

    The setscrew on the right sits flush with the surface to prevent the switch roller from falling into the hole. The real setscrew underneath it locks the pulley to the shaft’s flat.

    With that in place, a quick binary search settled on a Y axis Home Offset = 1.75 mm to put the pad level with the top of the rotary’s case, which is Level Enough™ due to my tweaking the machine’s foot elevations after jacking the whole machine up on risers:

    Ortur Rotary Focus Pad - home offset adjustment
    Ortur Rotary Focus Pad – home offset adjustment

    The Home Offset value:

    The speed and acceleration values are much lower than used with the linear Y axis, because apparently Ruida computes the corresponding step values using the workpiece diameter in the Rotary section. Small diameters produce impossibly fast motions, which suggests they expect you to set the optimum values based on back-calculations from the object diameter; ain’t nobody got time for that.

    Anyhow.

    After autofocusing, the red-dot pointer now indicates the laser spot position, so jog the X axis and drag the gantry to put the spot on the axis mark:

    Ortur Rotary Focus Pad - gantry positioning
    Ortur Rotary Focus Pad – gantry positioning

    The orange rim on the red-dot pointer cuts down the beam intensity to make a smaller dot and provides easier position tweaks.

    Then jog the X axis to put the dot at the transverse mark just beyond the chuck jaws:

    Ortur Rotary Focus Pad - red dot at origin
    Ortur Rotary Focus Pad – red dot at origin

    Hit the Ruida Origin button to set that as the user origin, so you can reference the LightBurn design to the hardware position.

    Move the platform down by the workpiece radius, jog the nozzle along the X axis to get it out of the way, remove the focus pad, install the workpiece, and you’re good to go. The checklist visible beyond the bubble level shows it’s not quite that simple, but we’re getting there.

    The OpenSCAD source code as a GitHub Gist:

    // Ortur Rotary Focus Pad
    // Ed Nisley – KE4ZNU
    // 2026-01-04
    include <BOSL2/std.scad>
    Style = "Show"; // [Build,Show]
    /* [Hidden] */
    ID = 0;
    OD = 1;
    LENGTH = 2;
    HoleWindage = 0.2;
    Protrusion = 0.1;
    NumSides = 8*3*4;
    $fn=NumSides;
    // Magic numbers to fit Ortur jaws
    PadOAL = 60.0; // clear assist air fitting
    PadIR = 7.0; // jaw tip 35 mm above this point
    JawOAL = 14.0; // clear large jaws
    Reticle = [0.7,0.7,PadOAL];
    OriginOffset = 28.0; // X origin from chuck plate
    //—–
    // Pad to give autofocus probe a flat landing zone
    module FocusPad() {
    difference() {
    linear_extrude(PadOAL)
    hexagon(ir=PadIR,realign=true,rounding=3.0);
    up(JawOAL) {
    cube(PadOAL,anchor=BOTTOM+LEFT);
    cube(Reticle,spin=45,anchor=BOTTOM);
    }
    up(OriginOffset)
    cube(Reticle,spin=45,orient=FRONT,anchor=CENTER);
    for (a=[0:120:360])
    rotate(a)
    down(Protrusion)
    linear_extrude(JawOAL + 2*Protrusion)
    right(PadIR + 15 – 2) // eyeball fit
    hexagon(or=15,rounding=0.5);
    }
    }
    //—–
    // Build things
    if (Style == "Show")
    yrot(90)
    zrot(180)
    FocusPad();
    if (Style == "Build")
    FocusPad();
  • Silica Gel Beads: Regeneration Damage

    Silica Gel Beads: Regeneration Damage

    The silica gel beads I’ve been using in the PolyDryer boxes start out a uniform yellow / light brown:

    Polydryer Box desiccant tray - top view
    Polydryer Box desiccant tray – top view

    The humidity indicating chemical seems to be methyl violet, described as changing from yellow to green when saturated, which has never happened here. For example, these beads, retrieved from random corners of the workbench, have been sitting in 40-ish %RH basement air for weeks:

    Silica gel beads - 36pctRH ambient
    Silica gel beads – 36pctRH ambient

    The fragment just left of center looks greenish, but the rest are, at best, various shades of brown. This may be due to the (relatively) low humidity in the basement, but putting them under a damp sponge for a few hours didn’t change their color.

    The most recent regeneration session started with an open cast-iron pan on an induction cooktop:

    Silica gel beads - drying
    Silica gel beads – drying

    The variety of browns comes from various amounts of adsorbed water in the PolyDryer boxes, but AFAICT there really isn’t much correlation between the humidity level and the amount of adsorbed water.

    The drying process went like this:

    • 650 g at start
    • 50% power for 2 hr → 200 °F
    • Covered the pan & turned it off overnight
    • 623 g at start
    • 50% power for 2 hr → 220 °F
    • 612 g
    • 50% power for 1 hr → 236 °F
    • 610 g
    • 30% power for 30 min → 205 °F
    • 35% power for 30 min → 200 °F
    • 609 g

    So about four hours at 50% power would get all but the laser few grams of water out of the silica gel.

    After all that, the beads looked about the same in a white bowl for cooling:

    Silica gel beads - damaged indicator dye
    Silica gel beads – damaged indicator dye

    Each regeneration cycle leaves more dark brown beads in the mix, which may be due to poor temperature control, and they do not return to their original yellow / pale brown shade.

    Apparently cooking silica gel beads over 120 °C = 250 °F (various sources give various temperatures) can damage their structure or the methyl violet indicator; for sure some of those beads have been abused.

    Unsurprisingly, the bead temperature rises as they dry out. Although the induction cooktop has a temperature control, we’ve found the setting doesn’t match the pan temperature and the overall control is poor. I could set the gas oven to 200 °F, but I’m certain it doesn’t control the temperature all that closely, either.

    The original jug held 2 pounds = 907 g of beads. Add the 609 g from this session to the 350 g of allegedly dry beads in seven of the PolyDryer boxes: my regeneration hand is weak.

  • PolyDryer Humidity: December

    PolyDryer Humidity: December

    The measurements:

    2025-12-29
    Filament%RHWeight – gWt gain – gGain %
    PETG White1853.83.87.6%
    PETG Black1853.83.87.6%
    PETG Orange2252.32.34.6%
    PETG Natural2253.43.46.8%
    PETG-CF Blue1854.14.18.2%
    PETG-CF Gray2354.14.18.2%
    PETG-CF Black1853.83.87.6%
    PETG Blue1052.92.95.8%
    TPU Clear1854.44.48.8%
    TPU Black1855.15.110.2%

    I used to think there was some correlation between the indicated humidity and the amount of water adsorbed by the silica gel, with the humidity rising as the gel absorbed more water. That is obviously not the case.

    AFAICT, I’d been reading the chart wrong:

    Desiccant adsorption vs humidity
    Desiccant adsorption vs humidity

    Instead of the adsorption being a function of the equilibrium humidity, it’s the other way around. With the humidity held constant (by adding water vapor), the silica gel will adsorb thus-and-so percentage of its weight and equilibrate at that humidity. If the filament was an infinite reservoir of dampness, then the equilibrium humidity would indicate how much the silica gel had coped with.

    At least I think that’s how it goes. I have been wrong before.

    Anyhow, IMO the right way to proceed is to just replace the silica gel every month and be done with it.

    Also true: the humidity meters aren’t particularly accurate at the low humidity values in those boxes.

  • Prusa MK4 Foam Feet

    Prusa MK4 Foam Feet

    Along the same lines as the foam feet under the 3018XL plotter, the MK4 now has a bit of vibration isolation:

    Prusa MK4 Foam Feet - installed
    Prusa MK4 Foam Feet – installed

    I’d stuck four exercise mat tabs (scraps of a flooring project) under the feet, but the loading was much too high:

    Prusa MK4 Foam Feet - foam snippets
    Prusa MK4 Foam Feet – foam snippets

    It was really an excuse for some non-critical cutting with the 3 inch lens in the laser cutter:

    Prusa MK4 Foam Feet - assembled
    Prusa MK4 Foam Feet – assembled

    The foam cut nicely, albeit with a 1.3 mm kerf, and the chipboard & plywood seemed about the same. They’re 30 mm square and, should they flatten out, I have enough foam scraps for a larger set.

    Unlike the 3018 feet, my deflicted ears can’t tell the difference with these place, so I assume a standard MK4 squash-ball foot upgrade isn’t worth the filament.

  • OMTech Laser vs. Ortur Rotary: 3 Inch Lens

    OMTech Laser vs. Ortur Rotary: 3 Inch Lens

    The manual accompanying my OMTech 60 W CO₂ laser clearly states it has a 1.5 inch focus lens:

    OMTech laser packing list - 1.5 inch focus lens
    OMTech laser packing list – 1.5 inch focus lens

    Which I had always assumed was the case, even though a short lens like that would typically be used for fine engraving due to its smaller spot size. One could argue the carton should have included a 1.5 inch lens in addition to whatever was in “its optics”, but it didn’t.

    It has a 2 inch lens, as I confirmed while switching to a 3 inch lens to get more clearance over the Ortur rotary than the stock lens allows:

    Ortur Chuck Rotary - 2 inch focus lens
    Ortur Chuck Rotary – 2 inch focus lens

    The bottom of the lens (its planar surface) sits inside the nozzle at (about) the same level as the joint just above the assist air fitting:

    OMTech laser - 3 inch lens focus distance
    OMTech laser – 3 inch lens focus distance

    That’s the proper focus distance for the 3 inch lens, with the lens 3 inch = 3 × 25.4 = 76.2 mm above the platform. There’s obviously some room for quibbling about the optical center of the lens vs. the lower surface and so forth and so on, but a ramp test shows it’s Close Enough™:

    Ramp Test - 3inch lens - 2025-12-29
    Ramp Test – 3inch lens – 2025-12-29

    Which adds an inch of clearance, enough to prevent obvious collisions:

    Ortur Chuck Rotary - 3 inch focus lens
    Ortur Chuck Rotary – 3 inch focus lens

    Changing the lens requires removing the air fitting, during which operation I also moved the clamp holding the focus pen. Because that changed where the switch trips, the Focus Distance also changed:

    • 2 inch lens = 12.7 mm
    • 3 inch lens = 12.7 + 25.4 = 38.1 mm

    The clearance under the nozzle depends only on the lens:

    • 2 inch lens = 18.5 mm
    • 3 inch lens = 18.5 + 25.4 = 43.9

    I’ve been using step gauges for manual focusing with the 2 inch lens:

    OMTech focus pen - tripped vs nozzle
    OMTech focus pen – tripped vs nozzle

    I figured a rod would be more appropriate for the 3 inch lens and, hey, now that I have a rotary, I can engrave it:

    OMTech laser - 3 inch lens focus stick
    OMTech laser – 3 inch lens focus stick

    Through no fault of mine at the lathe, that stick is exactly 43.9 mm long, but “44 mm” fit better.