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

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

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.

Never, Ever Run Your Laser Cutter Unattended

While running some finger-joint test pieces, this happened:

Detached laser lens holder
Detached laser lens holder

The knurled ring just below the Tight→ label worked its way loose and released the lens holder tube collet, whereupon the whole affair fell out and dangled on the air hose & wires as the gantry continued to zigzag along the finger pattern.

As is my custom, I was watching the proceedings and managed to poke the controller’s STOP button, which was a mistake. What I should have done was slap the EMERGENCY STOP mushroom switch, because the STOP button just tells the controller to cancel the current action and return to the home position, which resulted in dragging the lens holder across the plywood and platform.

No harm done, as far as I could tell, and it realigned easily enough.

The more typical laser cutter failure seems to be having the controller execute the Halt and Catch Fire instruction, resulting in at least a ruined workpiece, sometimes a ruined laser, and occasionally a serious conflagration.

Lesson learned: practice slapping the Big Red Switch every now and then.

Laser Cutter: Scan vs. Cut Alignment

Laser-cutting alignment pin holes in the most recent smashed-glass coaster raised the question of whether it’s feasible to engrave a deep recess around a hole with Good Enough accuracy for things like recessed screw heads.

The test image:

Scan vs cut offset
Scan vs cut offset

The top two rows create engraved recesses and cut holes from 1.0 to 1.5 mm and the next two rows run from 1.5 to 2.0 mm. The bottom row has 1.0 mm holes centered in engraved pits from 0.5 mm to 3.0 mm; obviously, the first hole will subsume its pit.

The first pass looked promising, although the edges of the engraved pits seemed ragged:

Scan vs cut alignment - first test
Scan vs cut alignment – first test

Perhaps the replacement power supply has different timing than the original one?

I’m still surprised that the core of a laser-cut hole falls right out of the sheet, right down to a sliver from a 1 mm hole:

Cut hole cores
Cut hole cores

Recalibrating the scan offset got the errors down to 0.1 mm in either direction:

Scan offset - 300 200 mm-s 0.15mm offset
Scan offset – 300 200 mm-s 0.15mm offset

The lines in the middle column are spaced 0.15 mm apart at scan speeds of 300 mm/s (top) and 200 mm/s (bottom).

Another test pattern puts an engraved rectangle inside a dot-mode cut line with 1 mm spacing on all sides:

Scan vs cut alignment - 300 mm-s 0.15mm
Scan vs cut alignment – 300 mm-s 0.15mm

That’s wonderfully accurate!

A few more test pieces later:

Scan vs cut alignment - test pieces
Scan vs cut alignment – test pieces

Returning to the pits-and-holes test, with one engraving pass:

Scan vs cut alignment - holes x1 engrave
Scan vs cut alignment – holes x1 engrave

That’s lined up to be looking directly down the 3 mm pit in the lower right, which looks fine.

Two engraving passes makes the pits deeper (nearly through the 2.5 mm arylic) and somewhat messier, but still nicely aligned with the holes:

Scan vs cut alignment - holes x2 engrave
Scan vs cut alignment – holes x2 engrave

Engraving the recess before cutting the hole seems to produce a better result, perhaps because both the engraving and the cutting encounter uniform surfaces.

All in all, this worked out better than I expected.

High Impact Art: Coaster 5

This came out all glittery:

Smashed Glass Coaster 5 - top view
Smashed Glass Coaster 5 – top view

Epoxy tinted with transparent black dye does a pretty good job of not obliterating the cracks between the cuboids. In person, the cracks seem less conspicuous around the borders of the glass pieces, but they’re visible enough for this ahem use case.

Under the proper lighting, a few bubbles appear along and above the black layer:

Smashed Glass Coaster 5 - oblique view
Smashed Glass Coaster 5 – oblique view

The new thing this time around were three pins holding the layers in alignment while the epoxy cured:

Smashed Glass Coaster 5 - alignment pin
Smashed Glass Coaster 5 – alignment pin

The conical end comes from grabbing an 8 mm snippet of 3/64 inch steel rod in a pin vise and twirling it against Mr Bench Grinder for a few seconds.

The pins pretty much dropped into 1.1 mm holes created while cutting the sheets. The tiny circles mark the laser path around the pin holes:

Coaster 5 - layers
Coaster 5 – layers

The “holes” in the top sheet (upper middle) are in the Tool 2 layer so they’re not cut, because it was easier to match-drill holes halfway into the top sheet with the drill press than to figure out how to convince the laser to not punch all the way through. Engraving (along the lines of the earring borders) might work, but I’m not sure how well a high-aspect-ratio hole will engrave.

The mirror sheet is reversed left-to-right in order to cut it from the back of the reflective layer. I’m not certain this is necessary, because acrylic is basically opaque to 10.6 µm IR light and any doubly attenuated reflected light will diverge strongly from the focus point at the top surface, but it’s the recommended procedure and easy enough to do.

The cork cuts with its adhesive layer up and blue tape on the bottom to prevent soot from accumulating in all the surface crevices.

The alignment pins worked surprisingly well:

Smashed Glass Coaster 5 - edge alignment A
Smashed Glass Coaster 5 – edge alignment A

The top sheet sticks out 0.3 mm on one side:

Smashed Glass Coaster 5 - edge alignment B
Smashed Glass Coaster 5 – edge alignment B

Oddly, there’s no place where the top sheet is indented by any noticeable amount, so there may be slight size differences depending on all the colors and ages in that stack of plastic sheets.

I’ll cure the next one top-side down, giving the bubbles an opportunity to rise toward the mirror layer and maybe become less conspicuous:

Smashed Glass Coaster 5 - curing
Smashed Glass Coaster 5 – curing

The tricky part: finding and arranging glass chunks within a 100 mm circle!

Avoiding narrow gaps and acute angles in the perimeter, as the notch on the left side, should simplify draining the epoxy.

Smashed Glass Coaster: Conformal Perimeter

Snugging the perimeter around the smashed glass fragments definitely improves the result:

Smashed glass coaster - top view A
Smashed glass coaster – top view A

It’s just under 100 mm = 4 inch across the longest dimension and surprisingly glittery:

Smashed glass coaster - top view B
Smashed glass coaster – top view B

The coaster is a five-layer sandwich half an inch thick:

Smashed glass coaster - edge view
Smashed glass coaster – edge view

From the top:

  • Clear acrylic: 1.5 mm = 1/16 inch
  • Black acrylic: 1.5 mm = 1/16 inch
  • Clear acrylic: 3.2 mm = 1/8 inch
  • Mirror acrylic: 2.7 mm
  • Cork: 2.7 mm cut from a standard round coaster base

The smashed glass pieces sit atop the mirror, so the trick is making the layers around it add up to the same thickness. This is not possible by adding the nominal dimensions, because cast acrylic sheet thickness isn’t well controlled; I’ve finally written the actual (metric!) thickness on the sheets so I can select which 1/8 Inch sheet has the proper thickness.

A chipboard template (seen atop the finished coaster) verified the glass pieces fit easily within their openings:

Smashed glass coaster - top view - fit template
Smashed glass coaster – top view – fit template

I laid the clear frame on the mirror, poured generous epoxy puddles along the middle of the fragment openings, eased the glass in place, and gently pressed the slabs down to get a uniform epoxy layer, with the excess oozing under the frame all around. Then lay the black frame around the glass atop the clear, squirt more epoxy along the gaps around the glass, pour more epoxy atop the fragments, ease the top sheet in place paying considerable attention to coaxing the bubbles along to the edge, align the sides, and wait.

The epoxy cured while stuck atop a styrofoam pillar to let it drain smoothly off the edges:

Smashed glass coaster - epoxy curing
Smashed glass coaster – epoxy curing

I encouraged the epoxy out of the acute corners, as shown by the larger puddles, over the next few hours until the epoxy stiffened up. Those puddles also show the transparent black tint, to the tune of four drops in 8 ml of epoxy, which turned out to just barely suffice for the job. The whole assembly sat level while curing, but the layers didn’t remain aligned even after gently shoving them around while the stack cured.

The black epoxy joins nicely with the black frame layer to conceal most of the remaining bubbles. A different color frame with matching epoxy might looks less ominous, but colors more transparent than dark gray would likely reveal the bubbles.

It Would Be Nice™ if the acrylic sheet on the top had a transparent plastic film cover, but it arrived with brown paper on both sides. Despite that, I spattered only a few tiny drops on the bare surface and managed to scrape most of them off without further damage.

Overall, I think the conformal perimeter looks much better than the polygonal outline smashed glass coasters.