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

  • OMTech 60 W Laser: Replacement HV Power Supply Waveforms

    OMTech 60 W Laser: Replacement HV Power Supply Waveforms

    While I had the hatch open, I thought it would be interesting to look at the HV supply’s current waveforms:

    HV laser power supply - current probe setup
    HV laser power supply – current probe setup

    The Tek current probe over on the right measures return current through the cathode wire, the point in the circuit where you might be tempted to install an ordinary analog (moving-coil) panel milliammeter, oriented so (conventional) current returning from the tube will produce a positive voltage.

    Unfortunately, an analog meter isn’t up to displaying anything meaningful for this nonsense:

    HV laser power supply - 5 mA-div - 50 ms 10 pct pulse
    HV laser power supply – 5 mA-div – 50 ms 10 pct pulse

    Admittedly, that’s a 50 ms pulse, during which an analog meter would barely twitch. The vertical scale is 5 mA/div, so the highest peaks exceed 35 mA, more than twice the tube’s recommended “14-15 mA”.

    A closer look at the pulse startup waveform:

    HV laser power supply - 5 mA-div - 50 ms 10 pct pulse - detail
    HV laser power supply – 5 mA-div – 50 ms 10 pct pulse – detail

    It sure looks like the chaotic current through a forced neon-bulb relaxation oscillator. Remember neon bulbs?

    An even closer look:

    HV laser power supply - 5 mA-div - 50 ms 10 pct pulse - tight detail
    HV laser power supply – 5 mA-div – 50 ms 10 pct pulse – tight detail

    That’s at 10% PWM, close to the threshold below which the laser just won’t fire at all. The power supply must ramp up to produce enough voltage to fire the tube while simultaneously limiting the current to prevent the discharge from sliding down the negative resistance part of its curve.

    Apparently this supply isn’t quite up to the task.

    A 10 ms pulse at 50% PWM gives the supply enough time to stabilize the current:

    HV laser power supply - 5 mA-div - 10 ms 50 pct pulse
    HV laser power supply – 5 mA-div – 10 ms 50 pct pulse

    The 14-ish mA at the tail end of the pulse (note the baseline offset) matches my previous 13 to 14 mA measurements as closely as seems reasonable. That 2 ms of hash on the leading edge suggests the start of each cut or engraving line will be a bit darker than you might expect.

    Another 10 ms pulse, this time at 99% PWM:

    HV laser power supply - 5 mA-div - 10 ms 99 pct pulse
    HV laser power supply – 5 mA-div – 10 ms 99 pct pulse

    The peak 24-ish mA matches the previous measurements. Note that the peaks in all the previous pictures exceed the 99% PWM current level.

    AFAICT, all PWM values below about 25% produce equivalent results: random current spikes with unpredictable timing and amplitude. Changing the PWM value does not affect the (average) tube current or laser output power in any predictable way.

    Some samples to illustrate the point, starting with a different 50 ms pulse at 10% PWM than the first one up above:

    HV laser power supply – 5 mA-div – 50 ms 10 pct

    A 50 ms pulse at 15% PWM:

    HV laser power supply - 5 mA-div - 50 ms 15 pct
    HV laser power supply – 5 mA-div – 50 ms 15 pct

    A 50 ms pulse at 20% PWM:

    HV laser power supply - 5 mA-div - 50 ms 20 pct
    HV laser power supply – 5 mA-div – 50 ms 20 pct

    A 50 ms pulse at 25% PWM:

    HV laser power supply - 5 mA-div - 50 ms 25 pct
    HV laser power supply – 5 mA-div – 50 ms 25 pct

    Now, that last one is different. After the hash during the first 8 ms or so, the power supply actually produces a stable 5 mA beam current, which is roughly what I measured using the power supply’s meter.

    However, the other three are pretty much identical: the 10% PWM pulse does not delivers half as energy as the 20% PWM pulse. The waveforms may be different, but not in a meaningful or consistent way: the two 50 ms 10% pulses are different, but you’d (well, I’d) have trouble separating them from the 20% pulse.

    To summarize:

    • The first several millisconds of any pulse will consist of randomly distributed spikes with very large tube currents.
    • For PWM values greater than 25%, the tube current will settle down to the corresponding current after 5 to 10 ms. Before the current settles down, the tube will be firing those random spikes.
    • For PWM values less than 25%, the tube current never settles down: the entire pulse, no matter how long, will be short, high-intensity spikes, without a consistent DC-ish level.

    No matter what an analog meter might show.

    I have no way to know if this power supply is defective, but I’ll certainly ask …

  • OMTech 60 W Laser: Replacement HV Power Supply

    OMTech 60 W Laser: Replacement HV Power Supply

    The original HV power supply in the OMTech 60 W laser went casters-up just barely inside OMTech’s six month tube-and-supply warranty period. For the record, the laser controller reports this status info since mid-March:

    Laser Stats - replacement supply
    Laser Stats – replacement supply

    I think the Total job laser on time line says the power supply failed after firing the laser for a little over eight hours. The OMTech manual says the laser tube should last 1000 to 2000 hours (low vs high power), which suggests I should stock up on power supplies.

    Its replacement just arrived:

    OMTech replacement HV supply
    OMTech replacement HV supply

    It (bottom) seems to be a knockoff of the original ZYE Laser supply (top), with a similar model number and a “serial number” resembling a date from last year. All the connectors matched up, which isn’t too surprising.

    The three most interesting inputs:

    • L = controller’s active-low L-ON enable output
    • IN = controller’s PWM output
    • P = jumper to G (circuit ground) — not water flow sensor

    Also note the two AC power-line terminals directly adjacent to the TEST button, then consider insulation and stand-off distances before poking the button with your index finger.

    The power supply has a digital current meter, so I plotted output current against PWM input:

    Laser Power Supply - mA vs PWM - overview
    Laser Power Supply – mA vs PWM – overview

    Taking more points at the low end, with vertical bars indicating single-digit flicker on the meter:

    Laser Power Supply - mA vs PWM - 0 to 20 PWM
    Laser Power Supply – mA vs PWM – 0 to 20 PWM

    I have little reason to believe the meter reading indicates the true current with any accuracy and I know CO₂ laser output power does not scale linearly with the current.

    But it’s cutting again, which is a step in the right direction.

  • Smashed Glass vs. Epoxy

    Smashed Glass vs. Epoxy

    Just to see what happens, I laid some smashed glass in puddles of epoxy:

    Smashed Glass vs epoxy - samples
    Smashed Glass vs epoxy – samples

    Backlighting with the LED light pad reveals more detail:

    Smashed Glass vs epoxy - backlit samples
    Smashed Glass vs epoxy – backlit samples

    The chunk on the left is the proof-of-concept shot glass coaster with a form-fit black acrylic mask atop a clear epoxy layer on a clear acrylic base. The chunk at the top is raw shattered glass fresh from the pile. The two chunks on teardrop acrylic scraps are bedded in transparent black and opaque black tinted epoxy.

    A look through the microscope at all four, laid out in that order, with the contrast blown out to emphasize the grain boundaries:

    Smashed Glass vs epoxy - magnified comparison
    Smashed Glass vs epoxy – magnified comparison

    You may want to open the image in a new tab for more detail.

    The raw chunk has air between all its cuboids, so it’s nicely glittery. All the others have much of their air replaced by epoxy.

    Clear epoxy produces an essentially transparent layer where it fills the gaps, because its refractive index comes close enough to the glass. The stretched contrast makes the gaps visible again, but the backlit image shows the unassisted eyeball view.

    Transparent black dye sounds like an oxymoron, but it fills the gaps with enough contrast to remain visible. The overall chunk is not particularly glittery, but it’s OK.

    Opaque black dye produces a much darker tint; the slightly tapered thin layer between the glass and acrylic (the small white circles are air bubbles) cuts down on the transmitted light. The gaps remain nearly as prominent as in the air-filled chunk, although with very little glitter.

    Bedding the glass in epoxy against an acrylic sheet should reduce its tendency to fall apart at the slightest provocation, although the proof-of-concept poured coaster showed the epoxy must cover the entire edge of the glass sheet to bond all the slivers in place.

  • OMTech 60 W Laser: Failed HV Power Supply

    OMTech 60 W Laser: Failed HV Power Supply

    Setting up a piece of MDF and hitting the Frame button produced a lightly scorched line around the part perimeter, plus a slightly diagonal track leading from / to the Home position in the far right corner:

    Fire while framing tracks
    Fire while framing tracks

    Doing another pass with LightBurn’s rubber-band frame produced the faint dotted circle.

    Huh. Didn’t useda do that.

    The laser should not fire while framing and, having just installed LightBurn’s 1.2.01 update, suspicion instantly fell on the most recently changed thing.

    Which turned out not to be the case, as LightBurn’s tech support pointed out:

    This is generally an indication of a failed high-voltage power supply, not a software issue.

    OMTech’s support requested a video of the equipment bay, which didn’t seem like a useful way to convey the situation. Instead, I sent pix.

    This picture shows the status of the 60 W laser power supply while the laser is incorrectly firing:

    OMTech 60W Laser - uncommanded framing fire
    OMTech 60W Laser – uncommanded framing fire

    The power supply has two LEDs on what looks like, but is not, an Ethernet jack near the bottom:

    • Orange P LED: good water flow
    • Green L LED: controller’s PWM signal

    The LASER orange LED near the top turns on when the HV output is active and the laser should be firing.

    In this case, L LED is off and the LCD shows “Laser signal OFF”, but the LASER LED is on and the LCD shows 2 mA beam current: the laser beam is ON, even though the controller has not activated the PWM signal.

    Not only that, but I discovered the laser would fire while framing even with the lid up and the “safety interlock” sensor active.

    Totally did not expect that.

    For comparison, the power supply status during a manual pulse at 49% power:

    OMTech 60W Laser - manual pulse 49%
    OMTech 60W Laser – manual pulse 49%

    In that case, the L LED shows the PWM signal is active, the LASER LED is on, and the LCD shows 14 mA of current to the tube. That’s how it should work.

    Although the function of the TEST button seems very lightly documented, pressing it did not turn on the output (the LASER LED is off), despite lighting the L LED:

    OMTech 60W Laser - Test button pressed
    OMTech 60W Laser – Test button pressed

    OMTech confirmed my suspicion:

    We are afraid that the laser power supply is defective

    A replacement should arrive in a few days.

    Protip: always practice laser eye safety.

  • Coaster Generator: Rounded Petals

    Coaster Generator: Rounded Petals

    Making a coaster with petals from the NBC peacock turned out to be trickier than I expected:

    Chipboard coaster - rounded petals
    Chipboard coaster – rounded petals

    Protracted doodling showed that I cannot math hard enough to get a closed-form solution gluing a circular section onto the end of those diverging lines:

    Chipboard coaster - rounded petal geometry doodle
    Chipboard coaster – rounded petal geometry doodle

    However, I can write code to recognize a solution when it comes around on the guitar.

    Point P3 at the center of the end cap circle will be one radius away from both P2 at the sash between the petals and P4 at the sash around the perimeter, because the circle will be tangent at those points. The solution starts by sticking an absurdly small circle around P3 out at P4, then expanding its radius and relocating its center until the circle just kisses the sash, thus revealing the location of P2:

    t1 = tan(PetalHA);
    sc = (Sash/2) / cos(PetalHA);
    
    << snippage >>
    
    P3 = P4;        // initial guess
    r = 1.0mm;      // ditto
    delta = 0.0mm;
    do {
      r += sin(PetalHA) * delta;
      P3.x = P4.x - r;
      dist = abs(P3.x * t1 - sc) / sqrt(pow(t1,2) + 1);
      delta = dist - r;
      message("r: ",r,"  delta: ",delta);
    } while (abs(delta) > 0.001mm);
    
    P2 = [P3.x - r*sin(PetalHA),r*cos(PetalHA)];
    

    The dist variable is the perpendicular distance from the sash line to P3, which will be different than the test radius r between P3 and P4 until it’s equal at the kissing point. The radius update is (pretty close to) the X-axis difference between the two, which is (pretty close to) how wrong the radius is.

    As far as I can tell, this will eventually converge on the right answer:

    r: 1.0000mm  delta: 13.3381mm
    r: 6.1043mm  delta: 6.2805mm
    r: 8.5077mm  delta: 2.9573mm
    r: 9.6394mm  delta: 1.3925mm
    r: 10.1723mm  delta: 0.6557mm
    r: 10.4232mm  delta: 0.3087mm
    r: 10.5414mm  delta: 0.1454mm
    r: 10.5970mm  delta: 0.0685mm
    r: 10.6232mm  delta: 0.0322mm
    r: 10.6355mm  delta: 0.0152mm
    r: 10.6413mm  delta: 0.0071mm
    r: 10.6441mm  delta: 0.0034mm
    r: 10.6454mm  delta: 0.0016mm
    r: 10.6460mm  delta: 0.0007mm

    Obviously, efficiency isn’t a big concern here.

    Having found the center point of the end cap, all the other points fall out easily enough and generating the paths follows the same process as with the simple petals. The program performs no error checking and fails in amusing ways.

    As before, laser cutting the chipboard deposits some soot along both sides of the kerf. It’s noticeable on brown chipboard and painfully obvious on white-surface chipboard, particularly where all those cuts converge toward the middle. I applied low-tack blue masking tape as a (wait for it) mask:

    Chipboard coaster - tape shield
    Chipboard coaster – tape shield

    Whereupon I discovered the white surface has the consistency of tissue paper and removing the tape pretty much peels it right off:

    Chipboard coaster - white surface vs tape
    Chipboard coaster – white surface vs tape

    Putting the chipboard up on spikes and cutting it from the back side, with tabs holding the pieces in place (so they don’t fall out and get torched while cutting the next piece), should solve that problem.

    In the meantime, a black frame conceals many issues:

    Chipboard coaster - rounded petals - front vs back cut
    Chipboard coaster – rounded petals – front vs back cut

    I must up my coloring game; those fat-tip markers just ain’t getting it done.

    The GCMC and Bash source code as a GitHub Gist:

    // Round Petals Test Piece
    // Ed Nisley KE4ZNU
    // 2022-07-17 Coasters with round-end petals
    layerstack("Frame","Petals","Rim","Base","Center","Tool1"); // SVG layers map to LightBurn colors
    //—–
    // Library routines
    include("tracepath.inc.gcmc");
    include("tracepath_comp.inc.gcmc");
    include("varcs.inc.gcmc");
    include("engrave.inc.gcmc");
    FALSE = 0;
    TRUE = !FALSE;
    //—–
    // Command line parameters
    // -D various useful tidbits
    // add unit to speeds and depths: 2000mm / -3.00mm / etc
    if (!isdefined("OuterDia")) {
    OuterDia = 100.0mm;
    }
    if (!isdefined("CenterDia")) {
    CenterDia = 0.0mm;
    }
    if (!isdefined("NumPetals")) {
    NumPetals = 6;
    }
    if (!isdefined("Sash")) {
    Sash = 5.0mm;
    }
    // Petal values
    PetalAngle = 360.0deg/NumPetals; // subtended by inner sides
    PetalHA = PetalAngle/2;
    PetalOD = OuterDia – 2*Sash;
    PetalID = CenterDia + 2*Sash;
    PetalOAL = OuterDia/2 – Sash – (Sash/2)/sin(PetalHA);
    //message("petalOAL: ",PetalOAL);
    P4 = [PetalOD/2,0.0mm];
    // Find petal vertices
    P0 = [(Sash/2) / sin(PetalHA),0.0mm];
    t1 = tan(PetalHA);
    sc = (Sash/2) / cos(PetalHA);
    if (P0.x < PetalID/2) {
    a = 1 + pow(t1,2);
    b = -2 * t1 * sc;
    c = pow(sc,2) – pow(PetalID/2,2);
    xp = (-b + sqrt(pow(b,2) – 4*a*c))/(2*a);
    xn = (-b – sqrt(pow(b,2) – 4*a*c))/(2*a);
    y = xp*t1 – sc;
    if (FALSE) {
    message("a: ",a);
    message("b: ",b);
    message("c: ",c);
    message("p: ",xp," n: ",xn," y: ",y);
    }
    P1 = [xp,y];
    }
    else {
    P1 = P0;
    }
    P3 = P4; // initial guess
    r = 1.0mm; // ditto
    delta = 0.0mm;
    do {
    r += sin(PetalHA) * delta;
    P3.x = P4.x – r;
    dist = abs(P3.x * t1 – sc) / sqrt(pow(t1,2) + 1);
    delta = dist – r;
    message("r: ",r," delta: ",delta);
    } while (abs(delta) > 0.001mm);
    P2 = [P3.x – r*sin(PetalHA),r*cos(PetalHA)];
    PetalWidth = 2*r;
    if (FALSE) {
    message("P0: ",P0);
    message("P1: ",P1);
    message("P2: ",P2);
    message("P3: ",P3);
    message("P4: ",P4);
    }
    // Construct paths
    PetalPoints = {P1,P2};
    OutArc = varc_cw([P2.x,-P2.y] – P2,-r);
    OutArc += P2;
    PetalPoints += OutArc;
    if (P0 != P1) {
    PetalPoints += {[P1.x,-P1.y]};
    InArc = varc_ccw(P1 – [P1.x,-P1.y],PetalID/2);
    InArc += [P1.x,-P1.y];
    PetalPoints += InArc;
    }
    else {
    PetalPoints += {P0};
    }
    //— Lay out the frame
    linecolor(0xff0000);
    layer("Frame");
    if (CenterDia) {
    goto([CenterDia/2,0mm]);
    circle_cw([0mm,0mm]);
    }
    repeat(NumPetals;i) {
    a = (i-1)*PetalAngle;
    tracepath(rotate_xy(PetalPoints,a));
    }
    goto([OuterDia/2,0]);
    circle_cw([0mm,0mm]);
    //— Lay out internal pieces for oriented cutting
    // baseplate
    layer("Base");
    relocate([OuterDia + 2*Sash,0]);
    goto([OuterDia/2,0]);
    circle_cw([0mm,0mm]);
    // central circle
    if (CenterDia) {
    layer("Center");
    relocate([OuterDia/2 + Sash,-(OuterDia – CenterDia)/2]);
    goto([CenterDia/2,0mm]);
    circle_cw([0mm,0mm]);
    }
    // petals
    layer("Petals");
    repeat(NumPetals;i) {
    org = [PetalWidth/2 – OuterDia/2,-(OuterDia + Sash)];
    relocate([(i-1)*(PetalWidth + Sash) + org.x,org.y]);
    tracepath(rotate_xy(PetalPoints,90deg));
    }
    // Debugging by printf()
    if (FALSE) {
    layer("Tool1");
    linecolor(0xff1f00);
    goto([Sash/2,0mm]);
    circle_cw([0mm,0mm]);
    goto(P0);
    circle_cw([0mm,0mm]);
    goto([0,0]);
    move([OuterDia/2,0]);
    goto([0,0]);
    move(OuterDia/2 * [cos(PetalHA),sin(PetalHA)]);
    goto(P2);
    move_r([0,-PetalWidth/2]);
    }
    #!/bin/bash
    # Round petals test piece
    # Ed Nisley KE4ZNU – 2022-07-17
    Flags='-P 4 –pedantic' # quote to avoid leading hyphen gotcha
    SVGFlags='-P 4 –pedantic –svg –svg-no-movelayer –svg-opacity=1.0 –svg-toolwidth=0.2'
    # Set these to match your file layout
    ProjPath='/mnt/bulkdata/Project Files/Laser Cutter/Coasters/Source Code'
    LibPath='/opt/gcmc/library'
    ScriptPath=$ProjPath
    Script='Round Petals.gcmc'
    [ -z "$1" ] && petals="6" || petals="$1"
    fn=RoundPetals-$petals.svg
    echo Output: $fn
    gcmc $SVGFlags \
    -D "NumPetals=$petals" \
    –include "$LibPath" \
    "$ScriptPath"/"$Script" > "$fn"
    view raw roundpetals.sh hosted with ❤ by GitHub

  • Epoxy Mixing Rack

    Epoxy Mixing Rack

    First you mix the epoxy, then you blend in the dye, then you dispense it into the thing you are making. If you’re using many colors, this is obviously not the right way to go about it:

    Acrylic Coaster - epoxy coloring
    Acrylic Coaster – epoxy coloring

    A bit of pondering converted some scrap MDF into a rack holding the little cups and dispensing pipettes:

    Epoxy Mixing Rack
    Epoxy Mixing Rack

    The bar magnet holds the backplate against a bench block to keep it at right angles to the base while the adhesive cures. The base is three layers of MDF with no, small, and large holes fitting the cups. I expect many epoxy spills; scrap MDF reduces deep emotional bonding to the result.

    The LightBurn project has the sign outline as a tool layer to simplify aligning the victims with the laser path, plus one layer defining the cuts for the three plates. I exported it as an SVG image with the same information as colored vectors for use in whatever laser control program you might use.

    The SVG image as a GitHub Gist:

    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.

  • Poured Epoxy Coaster: Proof of Concept

    Poured Epoxy Coaster: Proof of Concept

    Although I’m getting better about fitting laser-cut pieces into frames, it occurred to me that mashing colored epoxy together with coaster-shaped scrap acrylic might be interesting:

    Acrylic Coaster - epoxy petals
    Acrylic Coaster – epoxy petals

    I eased a thin bead of clear epoxy along the frame sash, using less than I thought necessary, and aligned it atop the base plate:

    Acrylic Coaster - frame epoxy
    Acrylic Coaster – frame epoxy

    The excess epoxy formed fillets along the petals, a little oozed out the perimeter, and even less smeared on the top surface. The scrap acrylic didn’t have a surface mask, but that’s definitely a Good Idea for the next attempt.

    Two drops of transparent red tinted the remainder of the epoxy well enough:

    Acrylic Coaster - first color pour
    Acrylic Coaster – first color pour

    The clear epoxy was still liquid (which is why the red epoxy was still pourable!), but the red tint stayed atop the fillet around the spot.

    The next day:

    Acrylic Coaster - epoxy coloring
    Acrylic Coaster – epoxy coloring

    Obviously, coloring epoxy for a single coaster makes absolutely no sense whatsoever, but ya gotta start somewhere.

    You (well, I) can suck most of the inevitable bubbles out of the epoxy back into the dispensing pipette, but those last few bubbles will remain forever. Popping bubbles by waving a propane torch flame over the surface seems better-suited to tabletop-scale projects not involving an acrylic frame.

    The epoxy puddles are about 1 mm deep inside the 2.5 mm thick frame, so (if this were a real coaster) the sashes between the petals would support the chilled mug and the petals would collect all the condensation.

    Thicker epoxy would have more saturated colors and a white base plate might be in order.