Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
After more-or-less constant use under a cup in the bathroom, a Snowflake Coaster has reached the end of its life:
Snowflake coaster – 1 yr use
The acrylic flake is fine, but the wood has mildewed:
Snowflake coaster – 1 yr use – detail
It’s second from the left in the bottom row:
Snowflake Coaster – assortment
All except the pair in the left column had a coat or two of rattlecan clear, which suggests wood-ish coasters need something much more durable, along the lines of clearcoat epoxy. No surprise there!
For the record, the typeface in that block of Fine Print is 1 mm tall = 3 point, which I find barely readable without magnification and impossible to follow without a pointer.
I’ve come to realize being a “valued customer” does not mean what businesses want me to think it means.
The bushes & trees along the Dutchess Rail Trail were reaching out to touch us again, so I took some slow rides with many stops.
Maple Oak trees along Page Park Drive:
DCRT Brush Trimming – oak – 2025-07
Blackthorn encroaching through the fence at Overocker:
DCRT Brush Trimming – blackthorn – 2025-07
A tree somebody tossed down the trail bank near Morgan Lake:
DCRT Brush Trimming – discarded tree – 2025-07
The slide lock on my trusty rehabilitated Fiskars bypass pruner worked loose and began sliding into the LOCK position when held overhead, then fell apart during disassembly:
Fiskars pruner – lock rebuild
The lock now consists of:
An M4 × 12 mm nut from a Chicago Screw that exactly matched the 5 mm OD cylinder passing through the pruner body
A laser-cut fluorescent acrylic disk for thumb grippiness
A washer just because
An M4 hex-head screw
A dab of Loctite bonding screw to nut
Clean the blades with alcohol and it’s ready for the rest of the season.
I should have put a wave washer in the stack for some springiness, but it works surprisingly well for what it is.
Now: discover how long acrylic lasts out there in the wild.
Update: Yeah, the lock needed a wave washer for more friction, which became apparent after the first overhead branch.
After fixing the X axis drive, the CNC-3018XL table moved properly again, so I measured its overall alignment:
3018CNC – table height measurement
The +Y side (on the left in the photo, keeping in mind I’ve rotated the axes) turned out to be 0.7 mm too low, so I made a set of riser blocks to level the tabletop:
Table Riser – solid model
The 10 mm height would ram the tip of a Pilot pen about 10 mm below the tabletop surface, were it not for the spring-loaded pen holder:
Pilot V5RT holder – installed
The 0.7 mm difference in height levels the tabletop:
CNC3018XL – table riser positions
The OpenSCAD code produces an SVG outline I intended to use for a foam pad, but then I found a quartet of springs that worked even better:
CNC3018XL – table spring mount
So it’s now aligned within ±0.3-ish mm across the surface, with the unflatness of a slab cut from a 1955-era Formica kitchen countertop accounting for most of the difference in a swale from Quadrant III across the origin to Quadrant I.
Which a check plot using an old file shows will be Flat Enough for my simple needs:
CNC3018XL – test plot
Having the camera alignment remain exactly spot on came as a pleasant surprise:
Camera Alignment check
The faded cross to the left came from the table’s previous position; there’s no positive index between the countertop slab and the underlying T-slots.
Part of the motivation for these blocks was to verify PrusaSlicer automagically handles filament / color changes between two objects, as long as OpenSCAD hasn’t unioned them as part of a common transformation. Not having to cut out the socket around the text simplifies the code from what I’d been doing with previous objects.
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
I don’t know what the bump in the middle of the new battery discharge curve means. Something weird in the chemistry, I suppose. Getting good batteries from Amazon surely remains a crapshoot and I now have four chargers.
Recharging all six batteries required 5488 mA·hr, just over 900 mA·hr apiece. Running the camera on a one-hour bike ride burns 600-ish mA·hr, so that’s comforting.
Comparing the new results with the 2022 batteries tested last month:
NP-BX1 – Newmowa 2022 in 2025-06
The upper traces appear in red in the first plot, the lower curves come from three years of use.
The seal was firmly affixed inside the cap, just like all the seals on all the other cartons we’ve ever bought, so this wasn’t a “broken seal”.
The bottom of the seal looked about the same:
Hood Heavy Cream seal – interior 1
The cream inside the carton looked & smelled fine, so it went into the morning omelette with no ill effect. Yes, I’m aware some bacterial contamination has no particular smell or taste.
Scraping off the pure-white cream showed the crud had been molded inside the plastic:
Hood Heavy Cream seal – interior 2
A closer look at the exterior surface of the seal:
Hood Heavy Cream seal – exterior detail
And the interior surface:
Hood Heavy Cream seal – interior detail
Both of those are focused on the top surface; the blurred areas are inside the plastic.
The date & production codes sprayed onto the carton were somewhat illegible:
Hood Heavy Cream seal – illegible codes
Getting a better angle helped:
Hood Heavy Cream seal – date prod codes
I sent in a report, but I’m sure I’ll never know the rest of the story …
Those of you running Windows should have undone whatever setting removes file extensions from the usual views, because by default Windows won’t bother you with such trivia.
But, hey, maybe an SVG file can contain an audio recording. I mean, there’s an online file converter for that, so it must be a thing.
Having been around this block a couple of times, though, let’s peek inside the SVG file with a text editor:
Spam SVG Audio – attachment
Huh. Not an audio recording, but a Javascript one-liner with a URL/URI/IRI/whatever aiming Your Default Browser at a presumably compromised server.
I didn’t go further, but surely the payload would wrestle Your Default Browser into a position allowing insertion of a remote compromise.
Well played, spammer!
Just another entry in the “Why friends don’t let friends run Windows” category, despite knowing whenever security and convenience come into conflict, convenience always wins.