Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
The knife’s silhouette came from a few minutes with GIMP, because cleaning up the edges on a graphics tablet is easier than fiddling with precise spline curves. Export the selection as an SVG, import into LightBurn, set to Fill, and Fire The Laser:
Garden knife sheath
The upper block in the LightBurn layout is an oversized rectangle so I could cut that out first, stick craft adhesive on both sides, trim the edges, drop it back into the hole, then cut the middle part of the sheath.
It’s made of recycled through-dyed chipboard and it won’t last forever, but that’s not a problem because these things tend to wander off before they disintegrate.
I must do a few more for the other garden bucket, but those should be straightforward.
Part of the Autumn festivities around here involves blowing leaves into piles, then shredding them into garden mulch. Given that I have a plug-in electric leaf blower / wind stick, I use this as an excuse to exercise the emergency generator (similar to that one) with a (relatively) short extension cord.
As with all small gasoline engines, I fire a shot of starting fluid into the air cleaner to reduce the number of engine-start yanks, which means I must remove the generator’s side panel and unscrew the filter cover. For years I have sworn mighty oaths on the bones of my ancestors to knobify that screw, thus eliminating fiddling with a screwdriver.
The common fate of all “soft touch” silicone handles is to become sticky and gooey. While some goo may be removable, I’ve found that wrapping self-bonding silicone tape around the mess both encapsulates it and maintains the grippiness of the original silicone.
(The last three digits in the caption tick along at 60 frame/s. Opening each iamge in a new tab will let you embiggen the details, although the images aren’t all that great.)
The second wingbeat, over on the left, is more visible as the hawk lifts off:
Hawk with snake 2025-11-04 – 112
This was about when I figured out what was going on:
Hawk with snake 2025-11-04 – 151
A hawk can easily outfly me!
Hawk with snake 2025-11-04 – 207
The snake dangling from the hawk’s talons didn’t see it coming, either:
Hawk with snake 2025-11-04 – 213
Up and away!
Hawk with snake 2025-11-04 – 225
About 2.3 s of elapsed time: plenty for a hawk and not nearly enough for me. Or the snake, for that matter.
A few weeks ago, the house seemed unusually warm when I crawled out of bed. Checking the heat pump thermostat woke me right up:
Heat pump – battery critical
This, as they say, is not a nominal outcome.
A pair of AA alkaline cells powers the thermostat and, due to its wireless communication link to the heat pump’s air handler in the attic, it chews through two pairs a year. As you’d expect, it displays a “Battery Low” message for at least few days at the end of their lifetime, which was not the case for this failure.
After replacing the cells, the thermostat reported that, yes indeed, the house was much warmer than usual:
Heat pump – high temperature
A temperature monitor showed the heat had jammed on in the deep of the night:
Heat pump – runaway temperature
The heat pump exhaust temperature showed a similar event:
Heat pump – exhaust temperature
One of the AA cells showed about 1.3 V, but the other was around 0.25 V, suggesting an abrupt failure, rather than the normal gradual voltage decrease with plenty of time to replace the cells.
It’s reasonable to jam the heat on when the thermostat isn’t communicating, rather than let the house gradually freeze, but it did come as a surprise. I don’t know how the heat pump reacts to a battery failure during the cooling season; not refrigerating the house would be perfectly fine in most circumstances.
The Amazon Basics AA cells I’ve been using have worked as well as the Name Brand ones, so I was willing to write one off as happenstance.
However, during the recent Daylight Saving Time dance, I discovered the clock in Mary’s Long Arm Sewing Room had stopped, with an Amazon Basics AA alkaline cell from the same lot inside:
Failed clock AA cell
The date shows I’d replaced it in March, with the previous cell lasting an amazing 3-½ years. This one was completely dead, reading barely 0.1 V, after seven months. Mary hasn’t had a quilting project at the long-arm stage in recent months, so the clock may have been stopped for quite a while.
Perhaps something has gone badly wrong with Amazon’s battery supplier QC.
As the saying goes: Once is happenstance. Twice is coincidence. Three times is enemy action.
Because nobody will ever see the Radiator Sleds, I started a batch with the tail end of the white PETG spool and set up the Spool Join function to switch to the retina-burn orange PETG when the white filament ran out.
The two colors combined nicely on that layer:
Prusa MK4 MMU filament joining
Unfortunately, the Spool Join didn’t work out quite right and I had to extricate the white filament from the MMU3, then coerce the orange filament into position.
The Selector assembly rides on the smooth rods, driven by the stepper motor on the far end of the leadscrew. It stops at one of the five filament tubes (visible to the left of the upper smooth rod, with filament tips showing), whereupon a drive gear pushes the filament into the Selector, under the FINDA sensor (the threaded fitting sticking out of the top), into the PTFE tube, down to the Nextruder, through the idler to trip the Filament Sensor, then into the extruder’s planetary drive gear.
I think this happened:
The rear end of the white filament passed through the FINDA sensor
The MK4 reversed the Nextruder to drive the filament back into the MMU3
The rear end of the filament didn’t reenter its filament tube and escaped out to the side
The MMU3 drive gear couldn’t pull the filament backward, because the back end was misplaced
The Extruder planetary drive gear couldn’t pull the filament forward, because the front end was now above the gear
Both the FINDA and the Filament Sensor showed the filament was present, so the MK4 knew something was wrong
Fortunately, I was watching the whole operation and could intervene.
The MMU3 works well when the filament behaves properly, but it’s very sensitive to bends in the filament and misshapen ends. In this case, the white filament had the usual tight curve due to being would around the spool hub, which was enough to mis-align its end with the MMU3 tube while backing out.
Mary’s zero-mph crash loosened the starboard handlebar plug enough to let it eventually decamp for parts unknown. Its replacement, a somewhat fancier aluminum plug with an expanding cone retainer using an actual M3 nut, worked fine for the last year, but Mary recently noticed the socket head screw had worked loose.
In the interim, I’d moved the Bafang thumb control from its original position on the crossbar to just above the rear shifter:
Tour Easy – right handlebar control stack
Which moved the clamp on the shortened grip off the end of the handlebar tube, so I flipped the grip around, tightened the clamp, and installed the plug.
Unfortunately, the grip ID is 4 mm larger than the tube ID, which meant the plug’s cone retainer was struggling to hold on in there. Perhaps the plastic cone has relaxed bit, but I figured giving it more traction would be a Good Idea™ before I declared victory:
Handlebar Grip Sleeve – PrusaSlicer
It’s a little plastic sleeve with slots to let it expand against the inside of the grip:
Handlebar grip sleeve – installed
Yes, it’s sticking out slightly; you can see the corresponding gap up inside next to the tube.
A wrap of double-sided sticky tape glues it in place as the retainer presses it against the grip ID and a dot of low-strength Loctite should keep the screw from loosening again.
The OpenSCAD source code:
// Handlebar grip sleeve
// Ed Nisley - KE4ZNU
// 2025-10-25
include <BOSL2/std.scad>
/* [Hidden] */
ID = 0;
OD = 1;
LENGTH = 2;
HoleWindage = 0.2;
Protrusion = 0.1;
NumSides = 3*2*4;
$fn=NumSides;
Sleeve = [18.5,22.0,14.0];
Kerf = 1.0;
difference() {
tube(Sleeve[LENGTH],id=Sleeve[ID],od=Sleeve[OD],anchor=BOTTOM);
for (a=[0,90])
zrot(a)
up(Sleeve[LENGTH]/4)
cuboid([2*Sleeve[OD],Kerf,Sleeve[LENGTH]],anchor=BOTTOM);
}