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
It’s (still) an upcycled laser line projector, minus the cylindrical lens stretching the dot into a line, running from a pair of AA alkaline cells:
Sherline laser aligner – rear view
The three small screws provide simpleminded angle adjustment, with the disadvantage of simultaneously moving the lens in the XY plane.
The upper bubble level shows it’s not at all vertical:
Sherline laser aligner – front view
That’s because the beam must fall down the middle of the Sherline’s spindle bore:
Sherline laser aligner – beam at spindle top
Getting the alignment right requires a mirror on the tooling plate, which I will not attempt to photograph again, reflecting the beam upward through the spindle, where it will light up the bottom of the no-longer-a-line projector’s lens mount. When that happens, the projector is boresighted on the spindle, regardless of whether the tooling plate is perpendicular to the local gravitational field.
With the Z axis / spindle near the top of its travel, screwing the lens (mounted in a toolholder) onto the spindle produces a defocused beam on the tooling plate:
Sherline laser aligner – defocused spot – on scale
If the spot doesn’t look similarly round-ish, then the beam isn’t completely filling the entrance pupil of the lens and you must twiddle the projector’s angle / position until it does.
With that done, running the Z axis to put the lens about 30 mm above the plate produces a suitably teeny spot:
Sherline laser aligner – focused spot on scale
The Sherline’s previous home atop that same gray countertop had been firmly affixed to the basement wall, with the gantry and laser projector screwed to the floor joists: everything immovable. The countertop now sits atop a workbench not firmly affixed to anything: a good solid bump will likely knock the Sherline out of alignment with the beam.
How often that happens and how awful recovery will be remains to be seen. For now, It Just Works™ again.
Feeding Sherline aligner into the search box will reveal much of the backstory.
I extracted an XZ positioner from the Box o’ Optics Lab Stuff before coming to my senses: this is not nearly such a critical application.
Notes on finally getting the Sherline CNC mill operating in its new home, with a suitable Axis startup image:
Sherline setup 2026-06
The gray countertop from its former home sits on foam strips soaking up a slight warp with enough isolation to keep things quiet.
The gantry required the usual fiddling to make the cable hoist the Z axis directly upward, with the orange flag on the counterweight barely visible below the monitor.
A clean installation of LinuxCNC 2.9.8 on an ancient Dell Optiplex 9020 proceeded smoothly. Installing x11vnc let the rest of the proceedings happen from upstairs in the Comfy Chair. For unknown reasons, vinagre works better than Reminna as a VNC client, after recalling F11 enters / exits fullscreen mode.
The mesaflash utility accompanying LinuxCNC 2.9.8 did not recognize the Mesa 6i25 card. Fetching & compiling the most recent version (3.5.17) cleared that hump and flashed the bitmap:
The 6i25 wants to be known as a 5i25, with its jumpers in their default positions:
Mesa 6i25 – jumper locations
For unknown reasons, the button originally known as btn-triggerbecame btn-joystick for a while and has now reverted to btn-trigger. It’s labeled 1 in the four-button cluster:
Logitech Dual-Action Gamepad – relabeled
Which required changing the pin name in the Kicad library component:
Sherline HAL schematic – Logitech button 1 name
Which required converting the old Kicad library format into the new Kicad library format, a completely automatic process without, AFAICT, any unpleasant side effects.
The new name fed into the schematic as expected, after minor fumbling while re-adding the modified component and setting its annotation number:
Sherline HAL schematic – Logitech AZ button logic
The X axis home microswitch has (apparently) become more bouncy while it was idle, so I increased the number of samples before HAL sees a change in that GPIO input:
Sherline HAL schematic – home switch debounce
The dbounce block runs in the servo thread at 1 m per tick, so those 20 samples take all of 20 ms while the X axis moves 0.15 mm. At some point I should apply a scope to that switch, but for now It Just Works™.
Kicad produces an “intermediate XML file” containing the netlist data intended for a conversion / export program, which is basically what my Kicad-to-HAL lashup does. I told Kicad to use Bash’s true command as a converter:
You don’t have one of these, but your bench needs something like it:
Workbench scrap can
Tiny Bandsaw perches just above it and now I have a place to drop the scraps you see collecting in its tray.
The can hangs by its rim from a completely kludged two-layered MDF hook stuck to the metal table frame with good 3M foam tape:
Workbench scrap can hanger
It’s not in the way of Tiny Bandsaw, because I stand at the left end of the bench, and it’s not in the way of the Sherline / LinuxCNC keyboard, because I stand to its right. So far, so good.
Should it fall off, I’ll think of something better.
All the parts arrived jammed into the clear box where I had trouble figuring out the collet sizes.
A few minutes with LightBurn and a scrap of 6 mm white acrylic produced a collet holder / organizer:
Dremel collet holder – detail
Seen in the cold light of day, the upper 1.8 and 2.0 mm collets look swapped, which pretty much demonstrates the need for the holder.
The nice engraved letters come from scribbling a chisel-tip black marker before peeling the protective paper off the acrylic. The black lacquer crayon I intended to use must be in a different box than the markers, but the results suffice for the intended purpose.
The instructions for the Photo Backdrop frame (upon which we hang Mary’s quilts for photos) suggest the crossbar fits on like this:
Photo Backdrop – OEM crossbar installation
The slot in the bottom is wider than the M10 stud, so the crossbar tends to flop around while assembling it overhead. I immediately replaced the wingnut with a chunky knob for better griptitude, but was never happy with how poorly the whole thing fit together.
This is dramatically better:
Photo Backdrop – fitting installed
The crossbar is upside-down from the OEM instructions, but the bottom of the gray plug holds the tube firmly to the tripod while the nut seats firmly on the plug’s flat top:
Photo Backdrop – fitting top view
A snippet of 3M 300LSE adhesive sheet holds the plug in place, so that’s one less thing to fiddle with on each end.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Under the plausible, but herein undefended, assumption that all rivnuts of a given size from any source are identical, the first three terms of the formula for each size become the number penciled into second column. Subtracting the range of material thickness from that number produces the stroke length range penciled over on the right.
Neither manual explains how to set the tool to a specific stroke length, although eyeballing the distance on the scale from first contact until the going gets tough seems to cover smaller rivnuts:
Stop applying more power on the handles when the decrease in the distance on the gauge approaches the calculated working stroke.
For larger rivnuts, you just hit it again, harder:
turn the knob clockwise to bring the riveter closer to the rivet nut, and close the handles until the rivet nut is secure in the hole. Repeat as necessary until the rivet nut is firmly in place.
This post is my attempt to figure out how to adjust the tool to a specific stroke length, mostly because I’m that type of guy.
Start with a diagram from the manual naming the parts:
Rivnut Tool – parts diagram
The unlabeled black cylinder between the “Installation Knob” and the “Scale Identification” is a nut determining the zero setting of the scale with the handles closed:
Rivnut Tool – zero nut
Presumably that nut should be snug-to-tight with the scale at zero, because loosening it pushes the knob away from the body and puts the scale indicator below zero. It was finger-loose on my tool, so I snugged it firmly. A thin shim would align an indicator starting above zero with a snug nut; there may be an internal adjustment, but I didn’t go there.
The diagram does not show that the “Sliding Sleeve” is spring-loaded away from the tool body:
Rivnut Tool – mandrel installed – detail
The “Outer Sleeve” normally covers the Sliding Sleeve and hides the spring:
Rivnut Tool – mandrel installed – no nosepiece
Which makes it awkward / difficult / painful to slide the sleeve toward the body while installing the “Mandrel Stem”, because you’re supposed to reach through those two openings, pinch the sleeve, and push it against the spring:
Rivnut Tool – mandrel alignment
The Mandrel must screw completely into the Sleeve to engage all its threads, then back out a fraction of a turn to align its hex flats with those on the nut inside the Sleeve. Releasing the Sleeve covers both hexes and locks the Mandrel in that position:
A solid shaft connects the nut inside the Inner Sleeve (and, thus, the Sleeve and Mandrel) to the Knob. Turning the Knob turns the Mandrel, which is how you unscrew the Mandrel from the rivnut after crunching it in the workpiece.
The “Nosepiece” screws into the Outer Sleeve until it seats:
Rivnut Tool – mandrel installed – sleeve minimum
Each Mandrel and Nosepiece corresponds to a specific screw thread, so the Mandrel length & shape depend on the thread:
Rivnut Tool – M3 M12 mandrels
You might expect this rivnut to be compressed by 10 mm when you close the handles:
Rivnut Tool – sleeve minimum – handles extended
You would be wrong, as was I.
Since this is the rivnut’s first appearance, note that the rivnut is screwed onto the Mandrel to show a thread or two of the Mandrel. The Mandrel must engage all the rivnut threads to prevent stripping the guts out of the poor thing. The plain end of the rivnut (on the left, away from the Nosepiece) has internal threads, as hinted by the diagrams in the chart, with the ribbed end (on the right) being a cylinder collapsing around the workpiece under pressure, which is the whole purpose of the tool.
It turns out the handles will close freely, without applying any force to the M4 rivnut, for about 8 mm of travel:
Rivnut Tool – sleeve minimum
Closing the handles further would compress the rivnut by the 2 mm shown on the Scale.
What was not obvious (to me, anyway): the handles turn cams to push an internal follower toward the Knob. That follower moves 10 mm as the handles go from open to closed, as indicated on the Scale, but won’t move the Mandrel until the follower moves past all the slack caused by compressing the spring. Remember the spring?
Unscrewing the Outer Sleeve to move it outward from the body lets the spring push the Mandrel (and, thus, the Inner Sleeve) away from the body. Do this with the handles extended, so the Scale remains at 10 mm:
Rivnut Tool – handles extended
Because screwing the Nosepiece into the Outer Sleeve compressed the spring and the Mandrel is on the shaft connected to the Knob, unscrewing the Sleeve also moves the Knob toward the body. Inside the body, the cam follower sees less slack distance, because the spring is less compressed.
The Outer Sleeve (on this tool, anyway) has a 1.25 mm thread, so every revolution outward reduces the spring compression by 1.25 mm. Two turns releases the spring by 2.5 mm and closing the handles until the cam follower meets the shaft now shows 4.5 mm of compression:
Rivnut Tool – crush measurement
The handles have plenty of slop making this an inexact process, so:
Open the handles → scale at 10
Turn the Outer Sleeve to reduce the error
Close the handles gently until they stop
The scale shows the actual stroke distance, should you completely close the handles
Iterate until the correct distance appears
Spin the knurled “Locking Nut” on the Outer Sleeve to contact the tool body, thereby locking the Sleeve in place.
After all that preparation, poking the rivnut into the hole drilled in the material and completely closing the handles should crunch the rivnut Reasonably Close™ to its proper finished length. Assuming you’re crunching more than one rivnut, tweak as needed.
Mary wanted less pressure in the spray while watering her plants and I suggested replacing the nozzle’s washer with a flow restrictor:
Hose Nozzle Flow Restrictors – assembled
The 3D-printed TPU base is squishy enough to act as a hose washer:
Hose Nozzle Flow Restrictor Base – solid model
A 1.5 mm thick acrylic orifice plate snapped into the opening takes advantage of the laser cutter’s precision:
Hose Nozzle Flow Restrictors – LightBurn layout
For lack of anything smarter, the holes have areas that are powers-of-two smaller than the nozzle’s 14.2 mm = 158 mm² internal passage: the hole labeled 8 is 158/256 mm² = 0.62 mm² → 0.9 mm diameter.
Rather than figuring each hole’s diameter, just divide the previous diameter by √2 or rescale it by 100%/√2, which LightBurn can evaluate directly in its Numeric Edits fields. The as-cut holes are larger than their nominal size by about 0.1 mm, but any errors that might cause are definitely in the nature of fine tuning while watering the plants.
The nozzle’s Shower pattern (on the left in the picture) has a 6.8 L/minute = 110 ml/s flow through an ordinary garden hose washer. The four smallest aperture plates produced these flows:
Hose Nozzle Flow Restrictors – flow vs dia
The flow should scale with the square of the aperture diameter, which I could bully those points into suggesting, but the measurement accuracy produced by filling a gallon jug while tapping my phone’s stopwatch doesn’t justify anything fancier.
The two smallest apertures reduce the Shower pattern to a very gentle spray requiring far too long to put enough water on the plants. Mary now uses an old plastic sprinkler head with enough holes to produce a dense spray with very little force, with the flow set by fifty feet of PEX pipe running across the width of the house from the town water inlet to the hose bib.
It was a fun exercise and I learned a little more about printing TPU and fitting acrylic parts therein: