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: Improvements

Making the world a better place, one piece at a time

  • Rattlecan Coasters

    Rattlecan Coasters

    Rattlecan spray paint, unlike scribbled markers, produces vivid colors on white chipboard:

    Coaster Assortment
    Coaster Assortment

    Cut the painted sheets cut face-down atop magnetic spikes on the honeycomb platform, with tabs to keep the petals in place and 0.15 mm kerf compensation. A light touch with an Xacto knife severs the tabs, after which the petals press firmly into the frames. Spread yellow PVA wood glue across the bottom disk, align the perimeters and press together, lay parchment paper between the coasters, clamp the stack between plywood sheets, and they emerge perfectly flat the next day.

    They’re too labor-intensive for any economic activity, but I like ’em:

    Coaster assortment
    Coaster assortment

    The pale gray petals in a white frame looks remarkably like the washed-out color scheme on whatever device you’re reading this, doesn’t it?

  • Dell Sound Bar Under-Shelf Mount

    Dell Sound Bar Under-Shelf Mount

    A bedroom rearrangement displaced the Dell Sound Bar attached to the streaming music player from its accustomed perch, so I conjured a mount from the parts bin to hang it from a shelf:

    Dell sound bar mount - installed
    Dell sound bar mount – installed

    The sound bar originally fit below any Dell monitor with the appropriate lugs under the bezel, but a bit of bandsaw work and hand filing produced a reasonable facsimile from an aluminum sheet:

    Dell sound bar mount - plate installed
    Dell sound bar mount – plate installed

    The bar’s plastic bits require a few millimeters of clearance above the sheet, now provided by a matching plywood shape:

    Dell sound bar mount - parts
    Dell sound bar mount – parts

    A trial fit showed all the parts would fly in formation:

    Dell sound bar mount - trial fit
    Dell sound bar mount – trial fit

    A laser-cut cardboard template maintained alignment and spacing while I stood on my head screwing the mount in place.

    All’s well that ends well!

  • CO₂ Laser Cutter: Icemaker as Water Chiller

    CO₂ Laser Cutter: Icemaker as Water Chiller

    A discussion on the LightBurn forums prompted me to pick up a cheap icemaker to see how it works as a laser water chiller:

    Silonn icemaker - installed
    Silonn icemaker – installed

    It has a drain hole in the bottom that made this whole thing practical, because a PVC pipe hot-melt-glued atop the drain maintains the water level in the reservoir without any further attention:

    Silonn icemaker - drain pipe
    Silonn icemaker – drain pipe

    The water line from the laser, formerly run directly into the bucket, now goes into the reservoir and through the drain into the bucket. The bucket holds about five gallons of water, with the pump submerged in the bottom.

    The icemaker pumps water from the reservoir into the little icemaker tray, freezes nine little ice bullets, and scrapes them into the reservoir:

    Silonn icemaker - new ice dump
    Silonn icemaker – new ice dump

    It does that about every eight minutes.

    A plot of water temperature vs. time shows what happens:

    Silonn icemaker - cooling water plot
    Silonn icemaker – cooling water plot

    It’s as exponential as you could want.

    The ice bullets drop into the reservoir and melt there, the cooled water continuously flows into the bucket, and mixes with the rest of the water before being pumped back through the laser. As a result, there are no sudden water temperature changes and the laser remains perfectly happy.

    Some numbers for an idea of the cooling capacity:

    Freezing 28 pounds = 12.7 kg of ice a day (which, in normal use, would require me to babysit the thing overnight to empty the ice and refill the reservoir) works out to:

    12.7 kg × 334 kJ/kg = 4.2 MJ

    Spread across 24 hours, that’s 49 W of cooling power. There will be a bit more going into the chilled water surrounding the bullets, but most of the energy goes into the water-to-ice phase change.

    Run another way, 5 gallons of water is 42 pounds. The initial cooling slope looks like 2 °C = 3.6 °F in 2 hr, which is 75 BTU/hr = 23 W. However, the water is cooling the laser (which was inert except for one brief cut) as well as the basement, plus (most importantly) there’s a water pump dissipating 20 W submerged in the bucket, so the icemaker is delivering at least 43 W, which is pretty much its rated performance.

    It’s obviously incapable of keeping up with a laser doing full-time production work, but for my simple needs it seems better than dunking ice packs in the bucket.

    More study (and maybe getting an air-cooled water pump) is in order …

    The original data:

    Silonn icemaker - cooling water data
    Silonn icemaker – cooling water data
  • CO₂ Laser Cutter: Improved PIN-10D Photodiode Filter Holder

    CO₂ Laser Cutter: Improved PIN-10D Photodiode Filter Holder

    Anything would be better than just taping some gel filters to the front of the bare photodiode package:

    Laser output - photodiode kludge
    Laser output – photodiode kludge

    Right?

    I heaved the slab of ½ inch black acrylic left over from the Totally Featureless (WWVB) Clock into the laser cutter and, two passes at 90% power later, had a somewhat lumpy 32 mm donut with an 11 mm hole in the middle. Because acrylic is opaque to the IR light from a CO₂ laser (which is why it cuts so well) and black acrylic is opaque to visible light (which is what the photodiode is designed for), this is at least as good as an aluminum housing and much easier to make.

    Chuck the donut into Tiny Lathe and bore out the hole:

    PIN-10D photodiode filter holder - boring ID
    PIN-10D photodiode filter holder – boring ID

    When it’s a snug fit to ½ inch brass tube (about the same size as the photodiode’s active area), flip it around, and bore the other size out to fit the photodiode case.

    Ram the tube in place, grab the large recess, and center the tube:

    PIN-10D photodiode filter holder - centering snout
    PIN-10D photodiode filter holder – centering snout

    That’s the chuck-in-chuck trick I used with the coasters, because the neither of the larger four-jaw chucks close far enough to get their inside jaws inside those little holes.

    [Edit: Got that backwards: I bored the big recess first.]

    Skim most of the OD down, then, because I am a dolt forgot to put a spacer in there, flip it around again, get it running true (the chuck aligns the flat side):

    PIN-10D photodiode filter holder - turning OD
    PIN-10D photodiode filter holder – turning OD

    Then skim the rest of the OD to clean it up.

    Cut some filter gels to fit inside the recess:

    PIN-10D photodiode filter holder - filter disc cutting
    PIN-10D photodiode filter holder – filter disc cutting

    Even though they’re pretty much transparent to thermal IR, a focused IR laser beam cuts them just fine. The little tab at 6 o’clock (remember round clocks with hands?) keeps the cut circle from falling out.

    Drill & tap for an M3 setscrew to hold the photodiode in place:

    PIN-10D photodiode filter holder - parts
    PIN-10D photodiode filter holder – parts

    Put them all together:

    PIN-10D photodiode filter holder - assembled
    PIN-10D photodiode filter holder – assembled

    I must conjure a better mount for the thing, because this is way too precarious:

    PIN-10D photodiode filter holder - test install
    PIN-10D photodiode filter holder – test install

    Early results suggest it works better than the previous hack job, without ambient light sneaking around the edges of the filter pack.

  • Laser Cutter: Improving the Red-Dot Pointer

    Laser Cutter: Improving the Red-Dot Pointer

    The red-dot pointer on the OMTech laser cutter has the same problem as my laser aligner for the Sherline mill: too much brightness creating too large a visual spot. In addition, there’s no way to make fine positioning adjustments, because the whole mechanical assembly is just a pivot.

    The first pass involved sticking a polarizing filter on the existing mount while I considered the problem:

    OMTech red dot pointer - polarizing filter installed
    OMTech red dot pointer – polarizing filter installed

    The red dot pointer module is 8 mm OD and the ring is 10 mm ID, but you will be unsurprised to know the laser arrived with the module jammed in the mount with a simple screw. Shortly thereafter, I turned the white Delrin bushing on the lathe to stabilize the pointer and installed a proper setscrew, but it’s obviously impossible to make delicate adjustments with that setup.

    Making the polarizing filter involves cutting three circles:

    OMTech red dot pointer - polarizing filter
    OMTech red dot pointer – polarizing filter

    Rotating the laser module in the bushing verified that I could reduce the red dot to a mere shadow of its former self, but it was no easier to align.

    Replacing the Delrin bushing with a 3D printed adjuster gets closer to the goal:

    Pointer fine adjuster - solid model
    Pointer fine adjuster – solid model

    Shoving a polarizing filter disk to the bottom of the recess, rotating the laser module for least brightness, then jamming the module in place produces a low-brightness laser spot.

    The 8 mm recess for the laser module is tilted 2.5° with respect to the Y axis, so (in principle) rotating the adjuster + module (using the wide grip ring) will move the red dot in a circle:

    Improved red-dot pointer - overview
    Improved red-dot pointer – overview

    The dot sits about 100 mm away at the main laser focal point, so the circle will be about 10 mm in diameter. In practice, the whole affair is so sloppy you get what you get, but at least it’s more easily adjusted.

    The M4 bolt clamping the holder to the main laser tube now goes through a Delrin bushing. I drilled out the original 4 mm screw hole to 6 mm to provide room for the bushing:

    Improved red-dot pointer - drilling bolt hole
    Improved red-dot pointer – drilling bolt hole

    The bushing has a wide flange to soak up the excess space in the clamp ring:

    Improved red-dot pointer - turning clamp bushing
    Improved red-dot pointer – turning clamp bushing

    With all that in place, the dimmer dot is visually about 0.3 mm in diameter:

    Improved red-dot pointer - offset
    Improved red-dot pointer – offset

    The crappy image quality comes from excessive digital zoom. The visible dot on the MDF surface is slightly larger than the blown-out white area in the image.

    The CO₂ laser hole is offset from the red laser spot by about 0.3 mm in both X and Y. Eyeballometrically, the hole falls within the (dimmed) spot diameter, so this is as good as it gets. I have no idea how durable the alignment will be, but it feels sturdier than it started.

    Because the red dot beam is 25° off vertical, every millimeter of vertical misalignment (due to non-flat surfaces, warping, whatever) shifts the red dot position half a millimeter in the XY plane. You can get a beam combiner to collimate the red dot with the main beam axis, but putting more optical elements in the beam path seems like a Bad Idea™ in general.

    The OpenSCAD source code as a GitHub Gist:

    // Laser cutter red-dot module fine adjust
    // Ed Nisley KE4ZNU 2022-09-22
    Layout = "Show"; // [Build, Show]
    /* [Hidden] */
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    HoleWindage = 0.2;
    Protrusion = 0.1; // make holes end cleanly
    inch = 25.4;
    ID = 0;
    OD = 1;
    LENGTH = 2;
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    //———————-
    // Dimensions
    PointerOD = 8.0 + 0.2; // plus loose turning fit
    Aperture = 5.0; // clear space for lens
    SkewAngle = 2.5;
    MountRing = [10.0,16.0,8.0]; // OEM laser module holder
    GripRim = [Aperture,MountRing[OD] + 2*1.5,3.0]; // finger grip around OD
    NumSides = 24;
    //———————-
    // Useful routines
    module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
    Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
    FixDia = Dia / cos(180/Sides);
    cylinder(r=(FixDia + HoleWindage)/2,
    h=Height,
    $fn=Sides);
    }
    //———————-
    // Holder geometry
    module Holder() {
    difference() {
    union() {
    cylinder(d=GripRim[OD],h=GripRim[LENGTH],$fn=NumSides);
    PolyCyl(MountRing[ID],MountRing[LENGTH] + GripRim[LENGTH],NumSides);
    }
    translate([0,0,-Protrusion]) // close enough without skew angle
    PolyCyl(Aperture,2*MountRing[LENGTH],NumSides);
    translate([0,0,MountRing[LENGTH]/2 + GripRim[LENGTH]])
    rotate([0,SkewAngle,0])
    translate([0,0,-MountRing[LENGTH]/2])
    PolyCyl(PointerOD,2*MountRing[LENGTH],NumSides);
    }
    }
    //———————-
    // Build it
    if (Layout == "Show") {
    Holder();
    }
    if (Layout == "Build") {
    Holder();
    }
  • Laser Cutter: Sheet Holder

    Laser Cutter: Sheet Holder

    Applying a laser cutter to paper-like materials requires balancing two contradictory imperatives:

    • Hold the sheet flat to avoid distortions
    • Have nothing below to avoid schmutz on the bottom

    This seemed like a good compromise:

    Sheet Holder - Tek CC bottom deck
    Sheet Holder – Tek CC bottom deck

    The orange 3D printed blocks hold aluminum miniblind blades:

    Sheet Holder - steel sheet magnet pads
    Sheet Holder – steel sheet magnet pads

    The curved slots hold the blades flush with the upper surface and align their top sides parallel to the laser beam, giving the beam very little blade to chew on near the focus point and allowing plenty of room below the sheet to dissipate cutting fumes.

    The gold-ish squares are thin steel sheets covered with Kapton tape, painstakingly filed en masse from small snippets:

    Sheet Holder - filed steel pads
    Sheet Holder – filed steel pads

    The first iteration used precisely laser-cut refrigerator magnet pieces, in the expectation a crappy rubber magnet would provide just enough attraction to let a neodymium magnets hold the paper flat, without risk of blood blisters between fingers and steel:

    Sheet Holder - ferrite magnet pads
    Sheet Holder – ferrite magnet pads

    As expected, contact with the neo magnet completely wiped away the alternating pole magnetism in the rubber sheet, leaving a weakly attractive non-metallic surface. Alas, the rubber had too little attraction through a laminated sheet of paper, so I switched to real steel and risked the blisters.

    Most of the blocks are narrow:

    Sheet Holder Bracket - solid model
    Sheet Holder Bracket – solid model

    The four corners are wider:

    Sheet Holder Bracket - wide - solid model
    Sheet Holder Bracket – wide – solid model

    They’re symmetric for simplicity, with recesses for the magnets / steel sheets on the top. The through-holes have recesses for M3 SHCS holding them to T-nuts in Makerbeam rails, with a slightly overhanging alignment ledge keeping them perpendicular to the rail.

    The magnets come from an array of worn-out Philips Sonicare toothbrush heads:

    Sheet Holder - magnet holders curing
    Sheet Holder – magnet holders curing

    They’re epoxied inside a two-piece mount, with the lower part laser-machined from 3 mm acrylic to put the two magnets in each assembly flush with the lower surface; the green area gets engraved 1 mm below the surface for the steel backing plate. The 1.5 mm upper frame fits around the plate and protrudes over the ends just enough for a fingernail grip:

    Magnet Holder Cuts
    Magnet Holder Cuts

    The epoxy got a few drops of fuschia dye, because why not:

    Sheet Holder - trimmed magnet holders
    Sheet Holder – trimmed magnet holders

    The garish trimmings came from slicing the meniscus around the lower part of the holder off while the epoxy was still flexy.

    The holders must be flat for clearance under the focus pen:

    Sheet Holder - focus probe clearance
    Sheet Holder – focus probe clearance

    Some experimentation suggests I can raise the pen by maybe 2 mm (with a corresponding increase in the Home Offset distance) , but the switch travel requires nearly all of the protruding brass-colored tip and there’s not much clearance under the nozzle at the trip point.

    With all that in hand, it works fairly well:

    Sheet Holder - Tek CC cutout
    Sheet Holder – Tek CC cutout

    The lower deck has very little margin for gripping, which is why the four corner blocks must be a bit wider than the others.

    The lamInator tends to curl the sheets around their width, so most of the clamping force should be along the upper and lower edges to remove the curl at the ends. This requires turning the whole affair sideways and deploying more magnets, which is possible for the smaller middle and upper decks:

    Sheet Holder - Tek CC middle deck
    Sheet Holder – Tek CC middle deck

    Protruding SHCS heads on the four corners snug up against the edge of the knife-edge bed opening for Good Enough™ angular alignment.

    Plain paper (anything non-laminated) seems generally flat enough to require no more than the corner magnets.

    It’s definitely better than the honeycomb surface for fume control!

    The OpenSCAD source code as a GitHub Gist:

    // Bracket for sheet holder
    // Ed Nisley KE4ZNU 2022-09-09
    Layout = "Show"; // [Show, Build, Blade]
    /* [Hidden] */
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    HoleWindage = 0.2;
    Protrusion = 0.1; // make holes end cleanly
    ID = 0;
    OD = 1;
    LENGTH = 2;
    module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
    Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
    FixDia = Dia / cos(180/Sides);
    cylinder(r=(FixDia + HoleWindage)/2,
    h=Height,
    $fn=Sides);
    }
    // Sizes
    Magnet = [10,30,0.5]; // magnetic sheet size
    //Magnet = [10,14,0.5];
    MagnetRim = 1.0;
    Screw = [3.0,5.5,3.0]; // SHCS OD=head LEN=head
    MakerBeam = 10.0; // beam size, screw = half height
    BeamRecess = 0.5; // slight overhang for alignment
    BladeSlot = 0.15 * 4; // slot with plenty of clearance
    BladeSocket = 5.0; // recess to hold miniblind
    BladeWidth = 24.6; // miniblind width
    BladeM = 1.6; // height of miniblind curve
    BladeSides = 12*8;
    BladeRadius = (pow(BladeM,2) + pow(BladeWidth,2)/4)/(2*BladeM);
    BladeAngle = 2*asin(BladeWidth/(2*BladeRadius));
    echo(BladeRadius = BladeRadius);
    echo(BladeAngle = BladeAngle);
    Block = [Magnet.x + 2*MagnetRim + ceil(BladeRadius*(1 – cos(BladeAngle)) + 2.0),
    Magnet.y + 2*MagnetRim,
    BladeRadius*sin(BladeAngle)];
    echo(Block = Block);
    // Cutter for spline recess
    // approximately correct and good enough
    module BladeRing() {
    rotate([90,0,0])
    translate([0,0,-BladeSocket])
    linear_extrude(height=2*BladeSocket,convexity=2)
    difference() {
    circle(r=BladeRadius,$fn=BladeSides);
    circle(r=BladeRadius – BladeSlot,$fn=BladeSides);
    }
    }
    // Overall bracket
    module Bracket() {
    difference() {
    translate([0,-Block.y/2,0])
    cube(Block,center=false);
    translate([Magnet.x/2 + MagnetRim,0,Block.z – Magnet.z/2 + Protrusion/2])
    cube(Magnet + [0,0,Protrusion],center=true);
    for (j=[-1,1])
    translate([0,j*Block.y/2,MakerBeam/2 – Protrusion/2])
    cube([3*Block.x,2*BeamRecess,MakerBeam + Protrusion],center=true);
    for (j=[-1,1])
    translate([Magnet.x + 2*MagnetRim + BladeRadius,j*Block.y/2,Block.z])
    BladeRing();
    for (j=[-1,1])
    translate([Block.x – 2.0 – BladeSlot,j*Block.y/2,5*ThreadThick/2 – Protrusion/2])
    cube([2*BladeSlot,2*BladeSocket,5*ThreadThick + Protrusion],center=true);
    translate([MakerBeam/2,Block.y,MakerBeam/2])
    rotate([90,0,0])
    PolyCyl(Screw[ID],2*Block.y,6);
    for (j=[-1,1])
    translate([MakerBeam/2,j*(Block.y/2 – Screw[LENGTH] – 1.0),MakerBeam/2])
    rotate([-j*90,0,0])
    PolyCyl(Screw[OD] + HoleWindage,2*Block.y,6);
    }
    }
    //———-
    // Build it
    if (Layout == "Blade")
    BladeRing();
    if (Layout == "Show")
    Bracket();
    if (Layout == "Build")
    Bracket();
  • Laser-cut Plywood Can Rack

    Laser-cut Plywood Can Rack

    On occasion I will do something practical:

    Salmon can storage boxes
    Salmon can storage boxes

    It’s not that we needed a rack for those cans, but it did get a laugh from Mary and that’s what counts.

    The magic URL encoding all the parameters to generate a rack, using a recent addition to the wonderful boxes.py collection:

    https://www.festi.info/boxes.py/CanStorage?FingerJoint_angle=90.0&FingerJoint_style=rectangular&FingerJoint_surroundingspaces=0.0&FingerJoint_edge_width=1.0&FingerJoint_extra_length=0.0&FingerJoint_finger=2.0&FingerJoint_play=0.0&FingerJoint_space=2.0&FingerJoint_width=1.0&Stackable_angle=60&Stackable_height=2.0&Stackable_holedistance=1.0&Stackable_width=4.0&fillHoles_bar_length=50&fillHoles_fill_pattern=no+fill&fillHoles_hole_max_radius=15&fillHoles_hole_min_radius=5&fillHoles_hole_style=hexagon&fillHoles_max_random=1000&fillHoles_space_between_holes=10.0&fillHoles_space_to_border=15.0&top_edge=%C5%A0&bottom_edge=%C5%A1&canDiameter=80&canHight=115&canNum=6&chuteAngle=5.0&thickness=3.2&format=svg&tabs=0&debug=0&labels=0&labels=1&reference=0&inner_corners=loop&burn=0.04&render=0
    

    In order from left to right, the three successive racks represent:

    • A good laugh
    • Finding that a burn correction parameter of 0.04 produces a much better fit than 0.05.
    • Discovering that I must orient finger joints along the same axis to minimize small axis scale errors errors

    The Burn Correction Factor encapsulates many physical effects and, much like 3D printing’s Extrusion Multiplier, must be determined empirically.

    The axis scale error, however, took me by surprise.The X axis travels on the order of 0.2 mm more along 250 mm, about 0.08%, than the Y axis, even after my tedious calibration. I must do that calibration again, because, as Miss Clavel observed in a different context, Something Is Not Right.

    And, yes, that tiny difference is enough to misalign the last few fingers with their holes, to the extent of requiring somewhat more than Gentle Persuasion with a plastic mallet.