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

  • 3D Printed Smashed Glass Coasters: Optimization

    3D Printed Smashed Glass Coasters: Optimization

    A pair of 3D printed smashed glass coasters for a friend:

    Printed Coasters - in use
    Printed Coasters – in use

    The black PETG coaster under the French Press:

    Printed Coasters - black PETG finished
    Printed Coasters – black PETG finished

    The white PETG coaster under the mug:

    Printed Coasters - white PETG finished
    Printed Coasters – white PETG finished

    They’re considerably improved from the first attempt:

    Smashed glass printed coaster - front view
    Smashed glass printed coaster – front view

    More details to follow …

  • Baseboard Radiator Sleds

    Baseboard Radiator Sleds

    Cleaning the baseboard radiator fins before moving the houseplants back to their winter abode by the living room window made sense, so I took the trim covers off and vacuumed a remarkable accumulation of fuzz off the top and out from between the fins. The covers had an equally remarkable accumulation of sawdust along their bottom edge, apparently deposited when the previous owners had the floor sanded before they moved in a decade ago.

    If you happen to live in a house with baseboard radiators, I’m guessing you never looked inside, because nobody (else) does.

    Anyhow, the radiator fins should rest on plastic carriers atop the bent-metal struts also supporting the trim covers, so that they slide noiselessly when the copper pipe expands & contracts during the heating cycle. Over the last six decades, however, the plastic deteriorated and most of the carriers were either missing or broken to the point of uselessness:

    Baseboard Radiator Sled - old vs new
    Baseboard Radiator Sled – old vs new

    The shapes on the bottom are replacements made with a 3D printed base (“sled”) and a chipboard wrap around the radiator preventing the fins from contacting the strut:

    Baseboard Radiator Sled - OpenSCAD show
    Baseboard Radiator Sled – OpenSCAD show

    Although it was tempting to 3D print the whole thing, because plastic, I figured there was little point in finesse: chipboard would work just as well, was much faster to produce, and I need not orient the shapes to keep the printed threads in the right direction.

    The Prusa MK4 platform was just big enough for the number of sleds I needed:

    Baseboard Radiator Sled - printed
    Baseboard Radiator Sled – printed

    The sleds along the left and right edges lost traction as the printing progressed, but everything came out all right.

    The OpenSCAD program also produces 2D SVG shapes for the chipboard wraps and adhesive rectangles sticking them to the sleds:

    Baseboard Radiator Sled - OpenSCAD SVGs
    Baseboard Radiator Sled – OpenSCAD SVGs

    Import those into LightBurn, duplicate using the Grid Array, Fire The Laser, then assemble:

    Baseboard Radiator Sled - assembly
    Baseboard Radiator Sled – assembly

    The slits encourage the chipboard to bend in the right direction at the right place, so I didn’t need any fancy tooling to get a decent result.

    A few rather unpleasant hours crawling around on the floor got the struts bent back into shape and the sleds installed under the fins:

    Baseboard Radiator Sled - installed
    Baseboard Radiator Sled – installed

    Protip: Gloves aren’t just a good idea, they’re essential.

    The trim cover presses the angled chipboard where it should go against the fins. The covers carry shadows of the plastic carriers, suggesting the clearance was tighter than it should have been and thermal cycling put more stress on the plastic than expected. We’ll never know.

    Although I’ll make more for the other baseboards as the occasion arises, I hope to never see these again …

    The OpenSCAD source code as a GitHub Gist:

    // Baseboard radiator sled
    // Ed Nisley – KE4ZNU
    // 2025-10-11
    include <BOSL2/std.scad>
    Layout = "Sled"; // [Show,Build3D,Build2D,Sled,Wrap,Glue]
    /* [Hidden] */
    HoleWindage = 0.2;
    Protrusion = 0.1;
    Gap = 5.0;
    Radiator = [25.0,62.0,50.0]; // X = support base, YZ = radiator element
    SledBase = [Radiator.x + 10.0,Radiator.y,1.0]; // support under wrap
    Runner = [SledBase.x – 2.0,3.0,1.6]; // bars contacting radiator support
    GlueOA = [SledBase.x,SledBase.y] – [2.0,2.0]; // glue sheet
    Wrap = [SledBase.x,Radiator.y + 1.0,Radiator.z + 1.0]; // chipboard wrap around radiator
    WrapFlat = [Wrap.x,Wrap.y + 2*Wrap.z];
    WrapThick = 1.2;
    WrapSlit = 0.4;
    //—–
    // Sled base
    module Sled() {
    cuboid(SledBase,rounding=2.0,edges="Z",anchor=BOTTOM)
    position(TOP)
    for (j=[-1,1])
    fwd(j*SledBase.y/3)
    cuboid(Runner,rounding=Runner.z/2,edges="Z",anchor=BOTTOM);
    }
    //—–
    // Glue sheet
    // Export as SVG for laser cutting
    module Glue() {
    rect(GlueOA,rounding=2.0);
    }
    //—–
    // Radiator wrap
    // Export as SVG for laser cutting
    module Wrap() {
    difference() {
    rect(WrapFlat,rounding=2.0);
    for (j=[-1,1])
    fwd(j*Wrap.y/2)
    rect([Wrap.x/2,WrapSlit]);
    }
    }
    //—–
    // Build things
    if (Layout == "Sled")
    Sled();
    if (Layout == "Glue")
    Glue();
    if (Layout == "Wrap")
    Wrap();
    if (Layout == "Show") {
    xrot(180)
    Sled();
    color("Yellow",0.6)
    Glue();
    up(1)
    color("Brown") {
    cuboid([Wrap.x,Wrap.y,WrapThick],anchor=BOTTOM);
    for (j=[-1,1])
    fwd(j*Wrap.y/2)
    cuboid([Wrap.x,WrapThick,Wrap.z],anchor=BOTTOM);
    }
    }
    if (Layout == "Build3D") {
    Sled();
    }
    if (Layout == "Build2D") {
    left(GlueOA.x/2 + Gap/2)
    Glue();
    right(Wrap.x/2 + Gap/2)
    Wrap();
    }
  • Mostly Removing Acrylic Scratches

    Mostly Removing Acrylic Scratches

    Some time ago I made a simple guide / carrier to help select & arrange smashed glass fragments to fit within a given diameter:

    Coaster Layout - selected fragments
    Coaster Layout – selected fragments

    The laser-engraved guide lines confused GIMP’s edge detection to no end.

    It came from a large sheet of 1 mm acrylic, formerly a poster cover, bearing scars of its long history in the “might be useful someday” stash. I wondered if I could remove enough scratches and scuffs to ease GIMP’s workload.

    Stipulated: I am a cheapskate.

    Laser-cut a suitable sheet and sand both sides with 220 grit paper to what looked like a uniform surface:

    Acrylic polishing - 220
    Acrylic polishing – 220

    Continue scrubbing with 400, 800, 1000, 1500, and 3000 grit papers:

    Acrylic polishing - 3000
    Acrylic polishing – 3000

    Massage it with Novus Polish 3, 2, and 1:

    Acrylic polishing - Novus 1
    Acrylic polishing – Novus 1

    At best, it’s more translucent than transparent and definitely not an optical-quality polishing job:

    Acrylic polishing - translucency
    Acrylic polishing – translucency

    Fortunately, I need not care about the edges, because it goes in a square frame with a circular cutout.

    Tape it into that cardboard frame, scan it against a black background, and blow out the contrast to show I should have started with 100 grit paper and paid more attention to that “uniform surface” thing:

    Acrylic polishing - scratches
    Acrylic polishing – scratches

    In use, though, it doesn’t look all that bad:

    Fragment layout - 5in Set B - scan tweaked
    Fragment layout – 5in Set B – scan tweaked

    Come to find out those glittery cracks between all the cuboids still confuse GIMP’s edge detection, but at least hand-tracing the outline is easier without all the lines.

    The entire “polishing” series as a slideshow for your amusement:

    • Acrylic polishing - 220
    • Acrylic polishing - 400
    • Acrylic polishing - 800
    • Acrylic polishing - 1000
    • Acrylic polishing - 1500
    • Acrylic polishing - 3000
    • Acrylic polishing - Novus 3
    • Acrylic polishing - Novus 2
    • Acrylic polishing - Novus 1

    FWIW, those fragments turned out nicely:

    Smashed Glass 3D Printed Coaster - Set B
    Smashed Glass 3D Printed Coaster – Set B

    More on that later …

  • Glow In The Dark Pool Sandals

    Glow In The Dark Pool Sandals

    For reasons not relevant here, after Having Been Advised to not walk barefoot on our wood floors, I picked up a pair of beach / pool sandals with comfy soles. Although they have a white logo, they’re black and essentially invisible in the dark when I need them most.

    Start by taking a photo of the logo on the clamped-flat upper strap:

    UnderArmour logo - flattened
    UnderArmour logo – flattened

    Use GIMP to select the white area, clean it up a little, convert the selection into a path, export it as an SVG file, import into LightBurn, scale to match reality, and Fire The Laser:

    UnderArmour logo - GITD tape cutting
    UnderArmour logo – GITD tape cutting

    That’s a roll of glow-in-the-dark tape which is almost certainly a lethal combination of PVC and phosphorescent stuff, so hold your breath while it cuts.

    It’s “actually a “kiss cut” through the tape, but not through the backing paper, letting the whole thing hang together after the operation.

    Peel-n-stick on the (still flattened) sandals, expose them to light, and It Just Works:

    UnderArmour logo - glowing
    UnderArmour logo – glowing

    The fit isn’t perfect, perhaps due to insufficient flattening, but it’s close enough for my simple needs.

  • Worm Bin Fly Trap

    Worm Bin Fly Trap

    Despite freezing the kitchen scraps going into the worm bin since the previous fruit fly infestation, a zillion flies are now in residence. Lacking the peppermint-stick tube of yesteryear, I conjured another fly trap from common household items:

    Worm Bin Fly Trap - overview
    Worm Bin Fly Trap – overview

    The gap around the top got a strip of tape after I took the picture.

    The gallon jug has cardboard stiffeners supporting a sheet of the sticky paper I used for the onion fly traps:

    Worm Bin Fly Trap - sticky paper holder
    Worm Bin Fly Trap – sticky paper holder

    I was all set to 3D print a threaded adapter to join the two bottles when I realized they already had lids. A few minutes of lathe work added a passageway:

    Worm Bin Fly Trap - Bottle caps
    Worm Bin Fly Trap – Bottle caps

    They’re held together by a generous ring of hot melt glue:

    Worm Bin Fly Trap - lighting detail
    Worm Bin Fly Trap – lighting detail

    The LED strip provides enough light to simultaneously attract the flies and repel the worms.

    The laser cuttery looks like this:

    Worm Bin Fly Trap - LightBurn parts
    Worm Bin Fly Trap – LightBurn parts

    The white shape in the black block is a scan of the cut-open jug, with the other shapes in that row being rectangularized versions. The two tiny notches in the Top and Bottom shapes hold the sticky paper.

    The two rings at the top adapt the LED-wrapped bottle to the existing fitting on the worm bin from the previous episode. They’re visible as shadows near the bottom of the bottle.

    The circle is a laser-cut hole in the gallon jug bottom for the screened plug made for the pepermint-stick tube; the less said about that operation the better.

    So far, so good, although previous experience suggests the flies will be breeding ahead of their (considerable) losses for the next few weeks.

  • Fitbit Charge 5 Charging Stand

    Fitbit Charge 5 Charging Stand

    My Fitbit Charge 5 has become fussy about its exact position while snapped to its magnetic charger, so I thought elevating it above the usual clutter might improve its disposition:

    FitBit Charge 5 stand - installed
    FitBit Charge 5 stand – installed

    The Charge 5 now snaps firmly onto its charger, the two power pins make solid contact, and it charges just like it used to.

    The solid model comes from Printables, modified to have a neodymium ring magnet screwed into its base:

    Fitbit Charge 5 stand - solid model section
    Fitbit Charge 5 stand – solid model section

    Which looks about like you’d expect;

    FitBit Charge 5 stand - added magnet
    FitBit Charge 5 stand – added magnet

    A layer of cork covers the bottom and it sits neatly atop the USB charger.

    The OpenSCAD source code punches the recesses and produces the bottom outline so LightBurn can cut the cork:

    // FitBit Charge 5 Stand - base magnet
    // Ed Nisley - KE4ZNU
    // 2025-09-05
    
    include <BOSL2/std.scad>
    
    Layout = "Build";       // [Build, Base, Section]
    
    module Stand() {
      difference() {
        left(38/2) back(65/2)
          import("Fitbit Charge 5 Stand.stl",convexity=10);
    
          down(0.05)
            cylinder(d=12.5,h=5.05,$fn=12);
          up(5.2)
            cylinder(d=3.0,h=10.0,$fn=6);
      }
    }
    
    //-----
    // Build things
    
    if (Layout == "Build")
      Stand();
    
    if (Layout == "Base")
      projection(cut = false)
        Stand();
    
    if (Layout == "Section")
      difference() {
        Stand();
        down(0.05) fwd(50)
          cube(100,center=false);
    }
    
    

  • Smashed Glass: 3D Printed Coaster Epoxy Fill

    Smashed Glass: 3D Printed Coaster Epoxy Fill

    After positioning the smashed glass fragments atop reflective metalized paper in the 3D printed coaster base, I poured epoxy over everything and, after popping some bubbles, left it to cure:

    Smashed glass printed coaster - detail
    Smashed glass printed coaster – detail

    I sprayed the white-ish fragments (on the left) with satin-finish clear rattlecan “paint” in the hopes it would keep epoxy out of the cracks between the glass cuboids and leave the highly reflective air gaps. While it did a reasonable job of sealing, it bonded poorly with the epoxy and produced a dull surface finish.

    The unsprayed fragments (on the right) turned out better, although the one in the upper right has a thin air bubble / layer on top. The unsealed cracks between the cuboids show well against the reflective layers, so I think spraying the fragments isn’t worth the effort.

    The printed base has a 1 mm tall rim to retain the epoxy:

    Printed Coaster Layout - solid model
    Printed Coaster Layout – solid model

    I mixed enough epoxy to fill half the volume of a disk with the same overall OD and depth (V = h × π × d²/4), which turned out to be barely enough produce a level surface at the rim. There didn’t seem that much epoxy left on the various measuring / mixing cups, but next time I’ll round upward.

    Many of the bubbles emerged from below the metalized paper, as well as between the glass and paper, so next time:

    • Set up a level platform with a sacrificial cover
    • Omit the adhesive sheet under the metallized paper
    • Pour a little epoxy into the recesses
    • Squish the metallized paper into place
    • Pour more epoxy to cover the paper
    • Gently squish the glass fragments into place
    • Ease more epoxy around the fragments
    • Chivvy the bubbles away
    • Fill to the rim

    The top isn’t exactly flat and has some dull areas, so at some point I want to make it flat with 220 grit sandpaper, work up to some 3000 grit paper I’ve been saving for a special occasion, then finish it off with Novus polish. Which seems like enough hassle to keep the coaster under my sippy cup for a while.