Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
For a round patio table, although you can’t tell from the picture:
Round patio table feet – installed
Also despite appearances, that’s 3D printed from clear-ish TPU, with its black appearance due to internal reflections from the leg’s dark interior.
The original hard-white-plastic feet had eroded enough to let the aluminum legs scrape the deck paint:
Round patio table feet – old vs new
The only way to extract each old foot was to hack out a segment with a razor knife, after which it slid out easily.
The ring around the top of the sections provides enough griptivity inside the leg to hold the foot in place:
Round Patio Table Foot – solid model
As with the TPU chains on the bike rack tray holder, I expect the compressed / bent segments will gradually relax inside the legs, but the feet ought not fall out in normal use.
The OpenSCAD source code isn’t quite a one-liner, but it’s close:
// Patio Table Foot - round legs
// Ed Nisley - KE4ZNU
// 2026-05-29
include <BOSL2/std.scad>
/* [Hidden] */
ID = 0;
OD = 1;
LENGTH = 2;
HoleWindage = 0.2;
Protrusion = 0.01;
NumSides = 4*3*2*4;
Gap = 5.0;
$fn=NumSides;
PadOA = [8.0,1*INCH,3.0];
SleeveOA = [13.0,21.7 - HoleWindage,12.0];
Kerf = 2.5;
//-----
// Build it
difference() {
union() {
tube(PadOA[LENGTH],od=PadOA[OD],id=PadOA[ID],anchor=BOTTOM) position(TOP)
tube(SleeveOA[LENGTH],od=SleeveOA[OD],id=SleeveOA[ID],anchor=BOTTOM);
up(PadOA[LENGTH] + SleeveOA[LENGTH] - 1.0)
torus(d_maj=SleeveOA[OD],r_min=(PadOA[OD] - SleeveOA[OD])/2,anchor=TOP);
}
up(PadOA[LENGTH])
for (a = [0,60,120])
zrot(a)
cuboid([PadOA[OD],Kerf,2*SleeveOA[LENGTH]],anchor=BOTTOM);
}
An end-of-life roll of parchment paper contributed its serrated cutter bar as raw material for the Gridfinity Tape Dispenser:
Gridfinity Tape Dispenser – razor vs serrated blades
Those teeth look exactly like a tape cutter should look:
Gridfinity Tape Dispenser – serrated blade
It turns out that book repair tape bounces right off the pointy-but-not-keen edges, to the extent the tape did not cut at all, no matter how hard I tugged at any angle. Perhaps filing one side to make the teeth thinner would improve the results; given the cutter’s provenance it seems like putting lipstick on a pig.
The original razor blade continues to work fine, so I dropped the serrated cutter into the hollow under the tape roll against future need.
Our ancient Branson 200 Ultrasonic Cleaner began behaving erratically due to water seeping under the rather casual seal from last year’s fix. Although drying the switches let it start up again, it would run for only a few seconds before shutting down again, which suggested a deeper problem than just the switches.
Take a picture of the PCB’s component side:
Branson 200 Ultrasonic Cleaner – PCB component side
And of the solder side:
Branson 200 Ultrasonic Cleaner – PCB solder side
Transform those pictures to be the nice real rectangles shown above, resize to a common pixel format, mirror the solder side, turn it into a layer atop the component side, then tweak its opacity to make both sides visible at once:
Branson 200 Ultrasonic Cleaner – PCB overlay
Some pondering produces a partial schematic of the left half of the board:
The 1:1 transformer is constantly powered, so the ON button connects the 120 V (!) half-wave rectified output to the +12V supply bus, with the 750 Ω resistor dropping most of the voltage while the switch is pressed.
The hotwired +12V supply forces the relay closed, which (in some as-yet unidentified way) fires up a +12V power source to hold the relay closed, with the 555 timer driving an MC14060 14-bit divider to count down the time until it turns itself off.
Reminder: this design dates back to the days when a pair of chips and a handful of through-hole components cost less than one of those fancy microcontroller thingies.
Plug the cleaner into an isolation transformer and trace the half-wave rectified signal through ON button to find it got all the way to the contact on the end of the orange wire in the connector, but did not reach the pin header on the PCB.
A closer look at the connector revealed a broken contact on the white wire, which I (rather crudely) soldered together while considering my choices:
Branson 200 Ultrasonic Cleaner – soldered contact
While plugging that wire back in place, this happened:
Branson 200 Ultrasonic Cleaner – another broken contact
Neither of those are the (presumably) similarly failed orange wire, but even I can get a clue from three similar failures.
So I replaced the OEM connector with a JST-XHP 2.54 mm connector from an assortment I got for another project, replaced the chunky 22 AWG wires with flexy 26 AWG silicone wires in the same cheerful rainbow colors, and it began working perfectly again.
The buttons needed another water seal, so I tweaked the previous layout to kiss-cut GITD tape and through-cut colorful vinyl sheets:
Branson 200 Ultrasonic Cleaner – power button cutting
Capped with a transparent cover sheet cut from a pack of PDA screen protectors (remember PDAs?):
Branson 200 Ultrasonic Cleaner – power button cover
In truth, the GITD tape is too thick, so I’ll probably repeat this dance later this year.
FWIW, I was totally ready to buy a new ultrasonic cleaner, but all of them have scathing one-star Amazon reviews, to the extent I decided fixing this cleaner would be much easier than fixing a new one that’s been cheapnified to the point of no return. A common complaint seems to be water leaking into their capacitive switches and killing the circuitry stone cold dead: not an improvement over this one.
A correspondent (you know who you are: thanks!) pointed out the Thermal Cutoff can trip should the 240 V heater coil sag enough to contact the grounded steel air duct surrounding it. Think of a connection from the heater in the lower right corner of the wiring diagram to the neutral wire:
Whirlpool dryer – wiring diagram – detail
If the short is close to the middle of the heating element, the right half the heater will remain active even when all of the normal thermostats cut off the left half. The two half-elements will see about their usual 120 V and won’t burn out, but the right half will continue to heat the air until the Thermal Cutoff trips at 350 °F.
A short near either end of the heating element will subject that section to a higher voltage than usual and promptly burn it out, in which case the dryer will fail to heat due to the much lower power dissipated in the remaining section.
So I took the dryer apart after a (successful!) washing day to see if that had happened.
A spring clip holds the top of the heater duct in place:
Whirlpool Clothes Dryer – bulkhead parts – heater duct clip
AFAICT the clip cannot be disengaged from the duct in situ without removing the hex-head sheet metal screw holding it to the bulkhead, which requires inserting a 5/16 inch socket on the end of a 6 inch extension through a hole in the non-removable upper back cover. You (well, I) cannot see the screw from any position, so the process requires reaching up over the duct to position the socket by feel.
This view looking up inside the dryer with the duct removed shows the clip on the bulkhead:
Whirlpool Clothes Dryer – heater duct clip
The heating element looked to be in fine shape, with no sags or distortions:
Whirlpool Clothes Dryer – heater top view
A side view:
Whirlpool Clothes Dryer – heater side view
Taking a picture of the duct’s interior is impossible, but an eyeballometric inspection shows no burns / scorches / pits from contact with the coils:
Whirlpool Clothes Dryer – heater duct interior
So AFAICT the Thermal Cutoff tripped due to Inherent Defect, rather than an overly high temperature.
Reinstalling the duct requires fitting the spring clip into its slot in the duct, maneuvering the duct onto its lower bulkhead brackets without dropping the clip, persuading the top of the duct with the clip into position, getting the screw into the clip and the hole, then aligning the socket with the screw. If I were doing this for a living, I would definitely charge you extra; newer dryers have an easily removable heating element for well and good reason.
So the dryer is, once again, back together again and, once again, works as well as it ever did, with another set of thermostats / cutoffs in the box of dryer and washer parts against future need.
For reference, the heater seems to be a WP4391960.
Be it hereby declared: laying the absurdly heavy cast-iron grates from the stove on sawhorses in the driveway and pressure-washing them produces a dramatic improvement:
Pressure-washed stove grates
They’re now devoid of the oil / grease / carbon accumulated during their decade of existence, little of which can be removed by hand; the shiny spots on the front right shrug off all solvents in my armory. The black finish still has plenty of scrapes & scuffs, but it’s no longer annoying.
You might think Samsung stove grates would fit in a Samsung dishwasher, but they’re too big and too heavy.
I don’t know what permanently opens the circuit in there, but it definitely happened. The contacts remain unblemished, so they were pressed firmly together until the end.
With nothing to lose, I reinstalled the Thermal Cutoff I removed last year (*) and the dryer works fine again.
It is possible lint accumulating in the filter bag I added to the exhaust vent restricted the airflow enough to overheat the cutoff, but the Operating Thermostat should keep the air around 155 °F and the Hi Limit thermostat should have tripped at 250 °F, long before the temperature reached 350°F.
Another cutoff will arrive shortly and will remain in the Box o’ Dryer Parts against future need.
(*) Which is why I keep the old parts around, because a dubious part on hand is much better than the new part I might not be able to get due to, oh, “supply chain issues”.