Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
A no-assembly-needed earplug case from Printables will be more easily found in Mary’s purse than the previous small bag:
Earplug case
That’s the “grippy bits” version of the model, which really is easier to open than the straight-sided version.
I printed a few more, loaded them with earplugs, and put them where they may come in handy. In retrospect, I should have used clear PETG to show off the retina-burn plugs.
OK, you generally don’t buy hoses “by the ounce”, but “per fluid ounce” may not mean what you think it means:
Amazon unit pricing – cups per ounce
Pricing items individually should be simple, if you know what a single item is:
Amazon unit pricing – batteries per each
Even knowing the number of items and the overall price isn’t enough for Amazon to get it right:
Amazon unit pricing – just plain wrong
Amazon now has a “shopping assistant”, so I asked Alexa why the unit prices were incorrect. After some back-and-forth providing details Alexa should have known from the context, this seemingly plausible sequence of words emerged:
The Samsung dishwasher (model DW80K7050US/AA 03) that Came With The House fails immediately after entering the Dry part of the cycle: a relay in the control PCB under the door goes doink, all the LEDS go off then on again, the countdown timer stops changing, and that repeats as long as you like.
After considerable listening & pondering, I decided one event early in the Dry cycle involved starting a fan to vent the steam out of the interior. The wiring diagram shows the fan has a Fault wire: perhaps the fan has failed.
The maintenance manual shows different fans in three different places, although the control board has a connector for only one. By process of elimination, I found the fan atop the cabinet:
Samsung dishwasher – top view
The cable from the fan in the vented compartment on the left burrows under the gray duct, around its back side, and plugs into the small white connector on the right. You must ease the cable from a row of hooks guiding it around the back of the duct, which requires slightly lifting the duct.
Unhook the two metal straps, remove four screws from the black vent, and lift it off the top to reveal the duct outlet pores:
Samsung dishwasher – fan duct – overview
Remove four more screws, lift the fan duct assembly just a little bit, and pry open three latches around the fan compartment with a consumer electronics case-cracking tool:
Samsung dishwasher – fan housing
The new fan (on the right) looks very much like the OEM fan (on the left), even though it’s the $15 version rather than the $150 version you might buy from similar randomly named sellers if you were so inclined:
Samsung dishwasher – OEM vs new fan
Detach the old fan & its cable, drop the new fan in place, snake its cable, plug its plug, and install All The Things in reverse order.
Unfortunately, after shoving the dishwasher back into its cubby, the new fan didn’t change the failure at all.
I hitched the old fan up to the bench supply and it spun just like it should. Wiring the Fault wire to a 5 V supply through a resistor shows it’s the usual tachometer signal pulsing as the rotor spins.
Which means the next step requires more pondering and PCB probing. The failure is too consistent to be a Heisenbug, but maybe something shook loose in there.
Two years ago I installed the DuckDuckGo browser on my phone and activated its app tracker blocking, which is basically a fake VPN swatting known tracker destinations out of the bitstream.
Somewhat to my surprise, the credit union’s app attempted to send my personally identifiable bits to a destination seemingly unrelated to any banking needs:
HVCU App Tracking – 20240525
So I called up the credit union and asked:
Why was their app sending that information to a third party?
How do I disable that tracking, because I do not want those companies to know every time I use the app?
Why did they think this was a good idea?
Over the course of the next few weeks and many follow-up calls, I was told:
I must be mistaken, there is no tracking
My information is correct, but the credit union doesn’t have a relationship with that company
They do have a relationship, but the app doesn’t send any of my information to that company
They only send the information if I am responding to a survey
The app does send my information even without my responding to a survey, but in accord with their privacy policy
OK, the credit union’s privacy policy doesn’t specifically describe their app, but the companies behind the app have privacy policies at various links
Even though the documents at those links describe the general sharing arrangement between each company and the credit union, I am not authorized to see the specific agreements related to my information
I can opt out of the tracking by setting an option in my account profile
OK, that option doesn’t exist, but when I disable the app’s access to my location, the tracking will cease
The intensity of the tracking attempts continued, even after disabling location sharing and not opening the app on any given day:
In addition to printing bendyobjects with TPU, the 0.8 mm nozzle 3D-prints PETG into thin walls with better transparency than the default 0.4 mm nozzle:
Clear PETG – 0.4 vs 0.8 mm nozzle – side view
The wall is now 1.0 mm thick, rather than 0.6 mm, and is much closer to being transparent. Those gray links from the RPi camera mount inside the dishes help show the difference.
The 2.0 mm thick base plate is also more transparent, but mostly just reveals the 0.4 mm thick infill layers:
Clear PETG – 0.4 vs 0.8 mm nozzle – top view
More study is needed, even if we already have far more soap dishes than strictly necessary.
For a square patio table (with one missing foot), of course:
Patio Table Feet – installed
These are chunky enough to demonstrate they’re made of clear-ish TPU, at least when backlit:
Patio Table Feet – installed – backlit
The interior of the leg determines what fits into it:
Patio Table Feet – leg interior
I pried out another foot, scanned it, and blew out the contrast:
Patio Table Foot – scan
Importing that into LightBurn let me draw a rectangle matching the measured size, then node-edit the corners to approximate the shape:
Patio Table Foot – LightBurn layout
Export that shape as an SVG, import into OpenSCAD, and turn it into a solid model:
Patio Table Foot – solid model – show view
That’s the Show view simulating the actual positions, which demonstrates why the pair of legs at each corner wear mirror-imaged feet. The Build view arranges the pair more sensibly for 3D printing:
Patio Table Foot – solid model – build view
The protrusions and their bumps went through several iterations on the way to being functional, with the black TPU prototype on the left being entirely too bendy and the first clear version requiring utility knife editing to fit the end posts inside the leg:
Patio Table Feet – prototypes
The original feet seem to be injection-molded ABS with a flat bottom intended to erode one corner against whatever the table stands on. However, the legs splay out at 5° from the vertical, which makes the flat bottom I used for the first few iterations obviously wrong:
Patio Table Feet – flat foot
Somebody who can math harder than I would resolve the two angles and all the measurements into a single transformation matrix, but I rotated the foot separately around the X and Y axes, trigged the lowest corner to the proper height, then chopped off everything below Z=0. Works for me.
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
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);
}