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.

Tag: Laser Cutter

  • 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();
  • 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.

  • Ortur YRC-1: Conical Tailstock Centers

    Ortur YRC-1: Conical Tailstock Centers

    A conical (a.k.a. bullnose) center in the tailstock simplifies supporting cylindrical objects:

    Ortur Chuck Rotary conical center - installed
    Ortur Chuck Rotary conical center – installed

    The spring-loaded tailstock bearing has a 5 mm bore. The bullnose rests against a small spacer on its 5 mm shaft to hold it away from the bearing’s mounting screws with some bearing spring compression. I turned the spacer from aluminum rod because lathe work is satisfying, but a printed spacer would work fine.

    The bullnose is a cone with steps encouraging the cylinder to sit properly:

    Ortur Rotary Conical Center - 10-50mm
    Ortur Rotary Conical Center – 10-50mm

    With both ends centered, the cylinder sits concentric with the chuck axis:

    Ortur Chuck Rotary home switch - jaw position
    Ortur Chuck Rotary home switch – jaw position

    The chuck grabs the OD and the bullnose supports the ID, so removing crud from both ends is in order.

    The bullnose won’t work for a solid rod, so a negative cone = cup center may come in handy:

    Ortur Chuck Rotary cup center - installed
    Ortur Chuck Rotary cup center – installed

    Stipulated: A CO₂ laser will bounce right off a solid aluminum rod. Imagine I chucked up a wood dowel, OK?

    A cup center is what remains afteryoinking a bullnose out of a cylinder:

    Ortur Rotary Conical Centers - cup
    Ortur Rotary Conical Centers – cup

    Looks like I did exactly that:

    Ortur Chuck Rotary conical centers
    Ortur Chuck Rotary conical centers

    Somewhat surprisingly, the two parts nest perfectly:

    Ortur Chuck Rotary conical centers - nested
    Ortur Chuck Rotary conical centers – nested

    That’s without the shaft installed on the cup, so they won’t sit quite so neatly on the shelf.

    Aligning the rotary axis along the laser’s X axis and setting the focus requires attention to detail, but a decent tailstock center makes that effort meaningful.

    The OpenSCAD code as a GitHub Gist:

    // Ortur Rotary Conical centers
    // Ed Nisley – KE4ZNU
    // 2025-12-27
    include <BOSL2/std.scad>
    Style = "Bullnose"; // [Build,Cone,Bullnose,Cup,Cone]
    MinDia = 10.0;
    MaxDia = 50.0;
    /* [Hidden] */
    LayerThick = 0.2; // should match slicer thickness
    Ramp = 1.0;
    ID = 0;
    OD = 1;
    LENGTH = 2;
    HoleWindage = 0.2;
    Protrusion = 0.1;
    NumSides = 8*3*4;
    $fn=NumSides;
    Gap = 5.0;
    WallThick = 2.0;
    TailBearing = [5.0,7.0,10.0]; // tailstock shaft, LENGTH = insert depth
    StepHeight = 2*LayerThick;
    NumSteps = (((MaxDia – MinDia)/2) / Ramp);
    ConeOAH = NumSteps * (Ramp + StepHeight);
    //—–
    // Bullnose shape
    module Bullnose() {
    difference() {
    union()
    for (i = [0:NumSteps – 1])
    up(i*(Ramp + StepHeight)) hull()
    cyl(StepHeight + Protrusion,r=(MaxDia/2 – i*Ramp),anchor=BOTTOM) position(TOP)
    cyl(Ramp,r1=(MaxDia/2 – i*Ramp),r2=(MaxDia/2 – (i+1)*Ramp),anchor=BOTTOM);
    }
    }
    module Cone() {
    difference() {
    Bullnose();
    down(Protrusion)
    cyl(TailBearing[LENGTH] + Protrusion,d=TailBearing[ID],circum=true,anchor=BOTTOM);
    }
    }
    module Cup() {
    difference() {
    cyl(ConeOAH + TailBearing[LENGTH],d=MaxDia + 2*WallThick,anchor=BOTTOM);
    up(ConeOAH + TailBearing[LENGTH] + Protrusion)
    yrot(180)
    Bullnose();
    down(Protrusion)
    cyl(TailBearing[LENGTH] + 2*Protrusion,d=TailBearing[ID],circum=true,anchor=BOTTOM);
    }
    }
    //—–
    // Build things
    if (Style == "Bullnose")
    Bullnose();
    if (Style == "Cone")
    Cone();
    if (Style == "Cup")
    Cup();
    if (Style == "Build") {
    right(MaxDia/2 + Gap)
    Cone();
    left(MaxDia/2 + WallThick + Gap)
    Cup();
    }
  • Ortur YRC-1: Adding a Home Switch

    Ortur YRC-1: Adding a Home Switch

    Stipulated: A chuck rotary doesn’t need a home switch.

    With that in mind, a home switch seemed like it might come in handy and this is the simplest workable design:

    Ortur Chuck Rotary home switch - installed
    Ortur Chuck Rotary home switch – installed

    The cover mimics the size & shape of the Ortur cover, minus the stylin’ rounding & chamfering along the edges:

    Ortur Rotary Belt Cover - exterior - solid model
    Ortur Rotary Belt Cover – exterior – solid model

    It has a certain Cybertruck aspect, doesn’t it?

    Two beads of hot melt glue hold the switch flush along the cover’s inside surface:

    Ortur Chuck Rotary home switch - case exterior
    Ortur Chuck Rotary home switch – case exterior

    One might argue for a tidy cover over those terminals.

    While contemplating the layout by holding the switch here & there, seeing the switch roller neatly centered on the pulley hub told me the Lords of Cosmic Jest favored this plan:

    Ortur Chuck Rotary home switch - case interior
    Ortur Chuck Rotary home switch – case interior

    A simple cam lifts the roller:

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

    That’s obviously laser-cut acrylic sitting on double-sided tape. Some finicky repositioning put the #1 chuck jaw on top after homing:

    Ortur Chuck Rotary home switch - jaw position
    Ortur Chuck Rotary home switch – jaw position

    A more permanent adhesive under the cam may be in order.

    Update: The switch triggers more reliably with a simple setscrew standing proud of the pulley hub:

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

    Wiring the normally open switch contacts in parallel with the existing Y axis home switch lets both the gantry and the rotary trigger the controller. The front-panel switch ensures only one of those two can move:

    Laser Rotary - control switch
    Laser Rotary – control switch

    With all that in place and the switch flipped, the chuck rotates happily and homes properly with the controller in normal linear mode.

    Spoiler: A Ruida-ish KT332N controller ignores the Y-axis Home enable setting with Rotary mode enabled, because everybody knows a rotary has no need for a home switch.

    The OpenSCAD code as a GitHub Gist:

    // Ortur Rotary belt cover
    // Ed Nisley – KE4ZNU
    // 2025-12-23
    include <BOSL2/std.scad>
    Layout = "Show"; // [Show,Build,Block,Shell]
    /* [Hidden] */
    ID = 0;
    OD = 1;
    LENGTH = 2;
    HoleWindage = 0.2;
    Protrusion = 0.1;
    NumSides = 2*3*4;
    $fn=NumSides;
    Gap = 5.0;
    WallThick = 1.6; // OEM wall
    CoverOA = [81.5,50.5,23.0]; // open side down
    CoverRadius = 4.0;
    CoverTrimZ = 6.0;
    CoverTrimAngle = 45;
    BreakX = (CoverOA.z – CoverTrimZ)/tan(CoverTrimAngle);
    ScrewOC = [51.0,38.0];
    ScrewHoleID = 3.5;
    ScrewHeadRecess = [ScrewHoleID,7.0,1.8];
    ScrewOffset = 8.0; // cover edge to hole centerline
    SwitchOA = [21.0,20.0,6.5]; // X = body + roller, excludes terminals
    SwitchOffset = [0,0,17.0]; // nominal end = roller at centerline
    //—–
    // Overall cover shape
    module CoverBlock() {
    cuboid([CoverOA.x,CoverOA.y,CoverTrimZ],anchor=BOTTOM) position(TOP+LEFT)
    prismoid(size1=[CoverOA.x,CoverOA.y],size2=[CoverOA.x – BreakX,CoverOA.y],
    height=CoverOA.z – CoverTrimZ,shift=[-BreakX/2,0],anchor=BOTTOM+LEFT);
    }
    // Cover shell
    module CoverShell() {
    difference() {
    CoverBlock();
    down(Protrusion)
    resize(CoverOA – [2*WallThick,2*WallThick,WallThick – Protrusion])
    CoverBlock();
    }
    }
    // The complete cover
    module Cover() {
    difference() {
    union() {
    CoverShell();
    left((CoverOA.x – ScrewOC.x)/2 – ScrewOffset)
    for (i = [-1,1], j=[-1,1])
    translate([i*ScrewOC.x/2,j*ScrewOC.y/2,0])
    cyl(CoverOA.z,d=ScrewHoleID + 2*WallThick,anchor=BOTTOM);
    }
    left((CoverOA.x – ScrewOC.x)/2 – ScrewOffset) down(Protrusion)
    for (i = [-1,1], j=[-1,1])
    translate([i*ScrewOC.x/2,j*ScrewOC.y/2,0]) {
    cyl(CoverOA.z + 2*Protrusion,d=ScrewHoleID + HoleWindage,anchor=BOTTOM);
    up(CoverOA.z – ScrewHeadRecess[LENGTH])
    cyl(ScrewHeadRecess[LENGTH] + 2*Protrusion,
    d1=ScrewHeadRecess[ID] + HoleWindage,d2=ScrewHeadRecess[OD] + HoleWindage,
    anchor=BOTTOM);
    }
    translate(SwitchOffset) left(CoverOA.x/2 – WallThick – Protrusion)
    cuboid(SwitchOA,anchor=RIGHT+FWD);
    }
    }
    //—–
    // Build things
    if (Layout == "Block") {
    CoverBlock();
    }
    if (Layout == "Shell") {
    CoverShell();
    }
    if (Layout == "Show") {
    Cover();
    }
    if (Layout == "Build") {
    up(CoverOA.z)
    xrot(180)
    Cover();
    }
  • OMTech Laser: It Was The Focus Pen Wire

    OMTech Laser: It Was The Focus Pen Wire

    Because the focus pen worked on the bench, I was certain this had to be true:

    OMTech focus pen - failed 24V wire
    OMTech focus pen – failed 24V wire

    There is a break somewhere along the blue wire carrying 24 V to the focus pen. The signal and 0 V wires are fine.

    I updated the original post, because I’m going to use that picture a lot whenever the subject of laser machine wiring comes up.

  • Basement Air Filter Box

    Basement Air Filter Box

    A box of air filters that Came With The House™ (and fit nothing therein) surfaced during a recent heap probe and prompted a quick-n-dirty project:

    Basement Air Filter Box - installed
    Basement Air Filter Box – installed

    It replaces a tired box fan (barely visible at the top) that’s been shoving air around the basement to equalize the humidity.

    The quintet of 140 mm fans seems quieter, although they don’t move quite as much air. Given that I have no way to know how much air circulation is enough, it’s likely sufficient.

    The strip of black tape covers a hole for the knob on the fan power / speed control, although I cranked it up to full throttle and expect to leave it there:

    Basement Air Filter Box - speed control
    Basement Air Filter Box – speed control

    The controller sits on a platform cut from 1.5 mm cardboard:

    Basement Air Filter Box - wiring
    Basement Air Filter Box – wiring

    The 3D printed holder came with the controller. I cannot imagine how they have enough time to print a holder for each controller; maybe it’s a QC check for a 3D printer manufacturer.

    I intended the controller to sit on the other side of the middle fan, but realized I had to cut the opening after mounting the fans and got the chirality wrong; the wiring in there layout leaves something to be desired.

    The fans mount on a sheet of cardboard cut from one side of a Home Depot Extra Large Box and the bottom of the filter box comes from the other side. Because I don’t have a deep emotional attachment to the filters, they’re attached to each other (and the bottom sheet) with hot melt glue. I do have a slight attachment to the fans, but four dabs of glue hold each one in place. More gaffer tape holds the fan sheet to the front of the assembled box, in the unlikely event I must get in there again.

    Hey, it’s Christmas: good things come in boxes, right?