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

  • HQ Sixteen: Improved Anchor

    HQ Sixteen: Improved Anchor

    The original anchor / weight keeping the HQ Sixteen from rolling away suffered a disastrous fall, so I conjured a much better-looking replacement from the vasty digital deep:

    HQ Sixteen - improved anchor
    HQ Sixteen – improved anchor

    The handle and fancy nut came from the deceased pepper mill, sitting on laser-cut acrylic in a 3D printed base, with a drawer liner disk peeking out from underneath.

    The orange disk in the solid model represents the steel slug harvested from the old anchor:

    HQ Sixteen Anchor - solid model - Show view
    HQ Sixteen Anchor – solid model – Show view

    A ring of hot-melt glue under the weight keeps it from rattling around in there, with the snug-fitting central post encouraging good positioning. I made the acrylic lid sit flush with the top of the base by the simple expedient of running another ring of glue around it, plunking the base + weight atop it on a flat surface, then taking a deep breath while the glue solidified. The nut & screw thus compress a solid stack of acrylic + glue + steel + glue + PETG-CF, rather than just parts flying in formation.

    The OpenSCAD source code also produces a pair of outlines for laser-cutting the adhesive sheet and acrylic, suitable for export to an SVG file:

    HQ Sixteen Anchor - solid model - cuts
    HQ Sixteen Anchor – solid model – cuts

    They’re offset inward by amounts appropriate for my CO₂ laser:

    if (Layout == "Cuts") {
      left(BaseOD/2 + Gap)
        offset(r=-1.0)
          circle(d=BaseOD);
      right(Cap[OD]/2 + Gap)
        offset(r=-0.2/2)
          projection()
            tube(1.0,id=Cap[ID],od=Cap[OD],anchor=BOTTOM);
    }
    

    It might be prudent to apply those offsets to the original outlines in LightBurn or whatever you use for lasering.

    The OpenSCAD source code as a GitHub Gist:

    // Anchor block for HQ Sixteen
    // Ed Nisley – KE4ZNU
    // 2026-09-29
    include <BOSL2/std.scad>
    Layout = "Show"; // [Show,Build,Cuts]
    /* [Hidden] */
    ID = 0;
    OD = 1;
    LENGTH = 2;
    Gap = 10.0/2; // build platform minimum spacing
    HoleWindage = 0.2;
    Protrusion = 0.1;
    NumSides = 8*3*2*4;
    $fn=NumSides;
    // Sizes
    Screw = [5.5,25.5,5.0]; // 10-24 screw + washer holding it together
    Weight = [11.0,80.0,11.5]; // stamped steel slug
    Cap = [26.0,Weight[OD],5.5]; // acrylic disk with handle hole
    BaseFloor = 10.0;
    BaseOD = 90.0; // printed anchor
    Spacing = 25.0; // Show view separation
    //———-
    // Model things
    module Housing() {
    tube(Screw[LENGTH],id=Screw[OD],od=BaseOD,anchor=BOTTOM) position(TOP) {
    tube(Weight[LENGTH],id=Screw[ID],od=Weight[ID],anchor=BOTTOM); // weight bushing
    tube(BaseFloor – Screw[LENGTH],id=Screw[ID],od=BaseOD,anchor=BOTTOM) position(TOP)
    tube(Cap[LENGTH] + Weight[LENGTH],id=Cap[OD],od=BaseOD,anchor=BOTTOM);
    }
    }
    //———-
    // Build things
    if (Layout == "Show") {
    Housing();
    color("Orange",0.7)
    up(BaseFloor + Spacing)
    tube(Weight[LENGTH],id=Weight[ID],od=Weight[OD],anchor=BOTTOM);
    color("Gray",0.8)
    up(BaseFloor + 2*Weight[LENGTH] + Spacing)
    tube(Cap[LENGTH],id=Cap[ID],od=Cap[OD],anchor=BOTTOM);
    }
    if (Layout == "Cuts") {
    left(BaseOD/2 + Gap)
    offset(r=-1.0)
    circle(d=BaseOD);
    right(Cap[OD]/2 + Gap)
    offset(r=0.2/2)
    projection()
    tube(1.0,id=Cap[ID],od=Cap[OD],anchor=BOTTOM);
    }
    if (Layout == "Build") {
    Housing();
    }

  • HQ Sixteen: Grip Cap Assembly

    HQ Sixteen: Grip Cap Assembly

    After 3D printing another set of cap parts, glob the switches into place with tan JB Weld Plastic Bonder:

    HQ Sixteen grip cap - switch gluing
    HQ Sixteen grip cap – switch gluing

    More Plastic Bonder joins the cap body to the plug fitting into the handlebars:

    HQ Sixteen grip cap - gluing fixture
    HQ Sixteen grip cap – gluing fixture

    I laser-cut an acrylic disk to fit the plug stem and hold the bottom of the plug flush with the bottom of the cap, with the PTFE fabric preventing inadvertent bonding of All The Things. It’s perched atop an empty thread cone to cure: quilting requires a lot of thread and I have a good stock of cones.

    The button cap body solid model now includes alignment marks to eliminate the need for the bench block & clamps:

    HQ Sixteen grip cap - alignment marks
    HQ Sixteen grip cap – alignment marks

    Soldering the cable directly to the switch terminals is déclassé, but the collar prevents the cable from exerting any force on them:

    HQ Sixteen grip cap - wiring
    HQ Sixteen grip cap – wiring

    This time around, dabs of hot-melt glue hold the faceplate to the cap body.

    I also used hot-melt glue to stick the transparent cover onto the handlebar body, as the OEM sticky tape was losing its mojo:

    HQ Sixteen grip cap - wiring closeout
    HQ Sixteen grip cap – wiring closeout

    The rightmost three LEDs went dark a while ago and, while I had everything apart, I tracked the failure to the third LED from the right, replaced it, and it’s all good again. Those LEDs (plus the side groups) still can’t hold a candle to the Nose Ring Lights and Under-arm Lights, but it’s good to have all the lights working.

    I managed to break one tiny wire on the header (wrapped in black silicone tape next to the IC on the right) joining the two cables from the control caps, but other than that things went smoothly.

    Now I can start on other long-awaited tweaks before the next quilt arrives.

  • HQ Sixteen: New Grip Control Cap Labels

    HQ Sixteen: New Grip Control Cap Labels

    The Run/Stop (⏯) button on the HQ Sixteen’s left-hand grip control cap recently became intermittent:

    HQ Sixteen - grip cap installed - left
    HQ Sixteen – grip cap installed – left

    Which is a little more than a year after I built it, so I’m not red-hot pleased with the switch reliability. On the other paw, Mary has done a lot of quilting in the last year, generally controlling the machine with her left thumb, so that particular button has gotten a lot of use.

    Because I glued the caps together, rather than trying to hide screws in finger-friendly locations, the replaceable unit is the whole cap.

    I originally cut the cap labels using LightBurn’s Print-and-Cut tool to align the laser to the printed label, but subsequent experience making punched cards showed it’s generally easier (at least for my simple projects) to skootch the layout to match the laser position at known features:

    HQ Sixteen control caps - laser alignment
    HQ Sixteen control caps – laser alignment

    Those small magnets hold the laminated label flat against the honeycomb.

    The Position Laser tool puts the laser at a selected corner of the square, with Object Snap ensuring it’s really at the corner. Firing a test pulse to verify the red-dot pointer is aligned with the focused CO₂ laser spot is good practice.

    Unlike the cards, the control caps don’t have fractional-millimeter tolerances, so, after verifying the printed label alignment at all four outer corners, it’s Close Enough™:

    HQ Sixteen control caps - label cut
    HQ Sixteen control caps – label cut

    Cutting the adhesive sheet pose no alignment problems:

    HQ Sixteen control caps - adhesive cut
    HQ Sixteen control caps – adhesive cut

    Then it’s just a matter of peel-n-stick.

  • Shower Squeegee Hanger

    Shower Squeegee Hanger

    Perhaps a 3 mm spacer behind the Command Hook holding the shower squeegee to the stall will let the blade dry out between uses:

    Shower Squeegee Hanger - installed
    Shower Squeegee Hanger – installed

    It’s fluorescent green acrylic, because why not?

    As with all such things, start with a scan of the base:

    Command Hook - base scan
    Command Hook – base scan

    Then:

    • Import into LightBurn
    • Draw a rectangle fitting the base
    • Convert to a path
    • Node Edit to put the corner nodes on the perimeter
    • Tweak node handles to match curves to perimeter
    • Fire The Laser

    Contrary to what I expected, the base is not symmetric.

    The layout includes another, slightly inset, path to cut a matching shape of 3M 300LSE adhesive to stick the Command Hook onto the acrylic:

    Shower Squeegee Hanger - spacer plate
    Shower Squeegee Hanger – spacer plate

    You could stick a rectangle of 300LSE to the acrylic and cut both in one operation, but making the sheet slightly smaller prevents sticky edges, at the cost of aligning the cut sheet on the fly.

    The Command Hook’s base is not flat, even after mostly removing the remainder of the previous Hook adhesive, so the 300LSE didn’t bond across the whole thing. If water weakens the bond and it falls off the wall (surely in the middle of the night), the next time around I’ll sand the base flat.

  • Printed Fragment Coaster: Delamination and Pinhole

    Printed Fragment Coaster: Delamination and Pinhole

    Although “chipboard” is also known as “beer mat”, it’s not intended for long-term use under sweaty mugs. After a few weeks of daily use, this is obviously out of spec:

    Printed Fragment Coaster - moisture damage
    Printed Fragment Coaster – moisture damage

    The aforementioned sweaty mug lifted part of a fragment off the coaster:

    Printed Fragment Coaster - delamination
    Printed Fragment Coaster – delamination

    The chipboard is Quickboard from Makerstock, which is basically recycled-fiber chipboard with the advantage of being through-dyed in cheerful colors. It’s described as “2 mm-thick, three-layered board” and it looks like the core delaminated from the bottom layer.

    Seeing as how it’s near the end of Sweaty Mug season, I smeared Elmer’s Glue Stick PVA adhesive over the fragment, stuck it back in place, and declared victory.

    While doing that, however, I noticed a pinhole:

    Printed Fragment Coaster - delamination detail
    Printed Fragment Coaster – delamination detail

    You may recall the outline came from hand-tracing a fragment of smashed glass in GIMP to get a path, then 3D printing a base to hold it:

    Printed Coaster - Set C - oblique
    Printed Coaster – Set C – oblique

    Going back to the original GIMP tracing (storage being cheap, never delete anything), I missed a pixel:

    Printed Fragment Set C - GIMP selection - errant pixel
    Printed Fragment Set C – GIMP selection – errant pixel

    Surely you can see it, particularly because you know exactly where it is. Right?

    The (degenerate) path around that pixel becomes a tiny vector in LightBurn:

    Printed Fragment Coaster - Set C - orphan vector
    Printed Fragment Coaster – Set C – orphan vector

    It’s easier to see there. Right?

    Whereupon LightBurn dutifully punched a pinhole through the chipboard, because that’s what I asked it to do. It also punched that pinhole into the metallized paper reflector under the smashed glass fragment, but I didn’t notice it then, either.

    Shrinking the GIMP selection by one pixel width, then growing it by one pixel would eliminate single-pixel selections: just another item on the to-do list while tracing fragments.

    Ya learn something new every day around here …

  • Another Snowflake Coaster Reaches EOL

    Another Snowflake Coaster Reaches EOL

    Apparently a year in the bathroom under a cup with constant moisture is enough to ruin untreated wood inlaid in an acrylic coaster:

    Mildew on wood snowflake coaster
    Mildew on wood snowflake coaster

    A small 3D printed chipboard fragment coaster now enters service:

    Printed Fragment Coaster - small
    Printed Fragment Coaster – small

    I recently ran into an interesting chipboard failure suggesting this one won’t last forever, so the clock is ticking.

    About which, more later.

  • Dog Paw Coaster

    Dog Paw Coaster

    Start with a picture of a dog paw:

    Dog Paw Coaster - starting picture
    Dog Paw Coaster – starting picture

    Rescale the paw to about 100 mm vertically to properly fit a normal-size glass / tumbler / mug. This may be considerably larger than life, but dog owners always want more dog, so it’ll work.

    Generate an outline mask in GIMP:

    Dog Paw Coaster - paw mask
    Dog Paw Coaster – paw mask

    Generate another mask for the pads & toenails:

    Dog Paw Coaster - pad mask
    Dog Paw Coaster – pad mask

    Convert those into paths, save them as SVG files, and hand them to OpenSCAD:

    include <BOSL2/std.scad>
    
    /* [Hidden] */
    
    PadThick = 1.2;
    BaseThick = 2.0;
    
    RimHeight = 0.4;
    RimWidth = 0.8;
    RimOffset = 1.0;
    
    Clearance = 0.1;    // embiggen pad recesses
    
    OutlineFN = "Dog Paw - Outline.svg";
    PadFN = "Dog Paw - Pads.svg";
    
    union() {
    
    
      linear_extrude(h=BaseThick)
        import(OutlineFN);
    
      color("Green")
        up(BaseThick)
          linear_extrude(h=PadThick)
            difference() {
              import(OutlineFN);
              offset(r=Clearance)
                import(PadFN);
            }
    
      
    }
    

    Which will get you a solid model like this:

    Dog Paw Coaster - OpenSCAD model
    Dog Paw Coaster – OpenSCAD model

    Should you want decorative raised rims around the perimeter and pads:

    Dog Paw Coaster - raised rim - OpenSCAD model
    Dog Paw Coaster – raised rim – OpenSCAD model

    Then turn this on:

    if (false)
      color("Red")
        up(BaseThick + PadThick)
          linear_extrude(h=RimHeight) {
            difference() {
              offset(r=RimOffset + RimWidth)
                import(PadFN);
              offset(r=RimWidth)
                import(PadFN);
            }
            difference() {
              offset(r=-RimOffset)
                import(OutlineFN);
              offset(r=-(RimOffset + RimWidth))
                import(OutlineFN);
            }
          }
    

    Run the solid model through PrusaSlicer, send it to the MK4, and, while the printer is buzzing away, run the pads through an online nesting program to see how well that works:

    Dog Paw Coaster - Pads nesting - LightBurn layout
    Dog Paw Coaster – Pads nesting – LightBurn layout

    While nesting didn’t save much material, it might come in handy for something more intricate and now I’ll be able to find it again.

    Then get busy:

    • Stick adhesive sheet to the chipboard
    • Mirror the pads to cut adhesive side up
    • Cut the pads, rescue a toenail from the chip tray
    • Import the paw outline SVG
    • Offset 0.75 mm inward
    • Stick adhesive sheet on the cork
    • Cut paw outline (adhesive up, but not mirrored!)
    • Peel & stick

    Which turned out pretty good:

    Dog Paw Coaster - assembled
    Dog Paw Coaster – assembled

    I used Concentric infill on the top to resemble the fur pattern, but it came out way too subtle.

    The owner liked it, though, which made it all worthwhile.