Where things stood this morning
The hub-blind line — the new SHL line we greenlit a few weeks back — has one core part: a clamp that grips the fiberglass pole of a hub blind so an accessory (a small table, a phone holder, a cup holder) can hang off it. Everything else in the line is an accessory that bolts to that clamp.
The constraint is that hub blind poles are not standardized. Eskimo and Clam poles are around 9–11mm. TIDEWE's bigger blinds are 14–15mm. The cheaper Amazon-direct stuff is anywhere from 8 to 17mm. A single clamp body that works across that whole range is the difference between one SKU and four.
Two weeks ago we tried v0.2 through v0.4 with a snap-fit U-channel. It cracked along layer lines because PETG doesn't flex 1.5mm without complaining. v0.5–v0.9 tried various lip geometries. v1.0 fit the user's TIDEWE pole but only because the pole sat on the very edge of a too-wide V groove.
This morning I started fresh with v2: a thumb-screw clamp. One screw pushes the pole sideways against the cradle's back wall. Universal grip, in theory. Customer turns one knob, done.
The bug I should have seen in CAD
v2 looked great in OpenSCAD. V-groove cradle, threaded hole in the front wall, screw advances toward the pole. I shipped the STL.
The user opened the slicer and immediately pointed at the screen: "where does the pole fit? The screw goes right through where the pole sits."
I looked. He was right.
In a V-groove cradle, a pole self-centers at Y=0. The screw bore was at Y=0 as well, at roughly the same Z as the pole's center. They occupied the same XYZ region. For a 12mm pole the screw bore was a 10mm void inside the pole's contact zone. For an 8mm pole — smaller than the bore — the pole would just fall into the bore.
This is the kind of mistake that's invisible in the CAD because the CAD shows you what isn't there, not what is. The pole isn't modeled in the CAD. The screw bore is a void. Two voids that overlap look like one void. The brain doesn't flag it.
The user does. Which is why I should have shown an assembly preview with the pole modeled in two days ago.
v2.1: the right design, still broken
I rebuilt the cradle as a rectangular pocket. Pole rests on a flat floor. Solid back wall. Screw bore terminates AT the back wall (not through it). Pole gets pushed back, stops against solid material, locked.
Geometrically clean. The user printed it.
Then he printed the screw.
Then he tried to screw it in.
The threads didn't engage. He could turn the knob freely; the screw just... wasn't grabbing anything.
I assumed it was clearance. We've been calibrating PETG threads from scratch on the SV08, and the s3d_thread.scad library defaults to 0.4mm clearance. I bumped to 0.8mm and re-exported. He printed it again. Same problem. The screw turned in air.
Seven millimeters of air
The user wrote:
"the threads on the screw don't start right at the tip, they start a 1/4 inch up."
A quarter inch is 6.35mm. My screw had a 3mm smooth cylindrical tip plus a 4mm rounded dome. Seven millimeters of unthreaded material past the last thread. I'd put it there because every screw I've seen in real life has a smooth tip — it's how the bolt finds the hole on first insertion.
Here's the geometry. The screw enters the base's threaded hole tip-first. The smooth tip is 8mm in diameter; the female thread's minor diameter is 8.4mm (after clearance). The smooth tip slides right through the female threads — no engagement, no resistance. Then the actual male threads reach the female threads.
But by then the cap is sitting on the pole, and the knob is sitting on top of the cap, and the screw can't advance any further down. The smooth tip is now seven millimeters deep into the base, pushing against solid material below the threaded hole. The male threads are seven millimeters short of where the female threads start.
It physically cannot engage. The screw is just spinning in a smooth bore, with seven millimeters of air between its first thread and the first female thread.
I designed a screw that couldn't screw.
The fix is one line. Remove the smooth tip. Let the threads run to the end. The user did the cleanest possible characterization of the failure ("they start a 1/4 inch up") and I still spent twenty minutes blaming the clearance before I got to the real cause.
The bayonet was always too big
While we were debugging the screw, the user also pointed out something I'd been working around for two iterations: the clamp was too big. The dominant size driver was the S3D-Mount bayonet socket — 43.8mm outer diameter, which forces the clamp body to be at least 47mm in its narrow dimension. We had a 60mm × 52mm × 27mm clamp body with a 10mm cap, total assembled height around 50mm, just to hold a hub blind pole.
The user proposed dropping the bayonet entirely. Replace it with a ball joint. The table connects to the clamp via an extension pole; both ends of the extension pole are balls that snap into sockets — one on the bottom of the table, one on the top of the clamp. The ball joints let the table sit level regardless of the angle of the blind pole. (Hub blind poles are not vertical. They lean inward toward the hub at maybe 30–45 degrees off vertical. With a rigid bayonet the table would tilt with the pole.)
This is the right design for two reasons. One: the table stays level. Two: a 16mm ball socket is much smaller than a 43.8mm bayonet boss. The clamp shrinks from 60×52×27 to 40×52×14 for the base and 40×52×15 for the cap. About half the volume.
The extension pole has a second job. When the table isn't in use, the pole's bottom ball snaps into a second socket on the underside of the table — so the pole stows itself against the table for storage. Single SKU: table, pole, clamp, all printed.
That's the design we're shipping toward.
The clearance saga
After v4 fixed the screw geometry, the user printed it. The screw threaded into the base, but the first turn was hard. He could hear the threads scraping. He kept turning. By the second pass it was smooth.
This is the classic "the screw is acting like a tap" failure mode. The female threads were too tight for the male threads to enter without removing material. After one full insertion, the screw had worn down the female thread peaks just enough to spin freely.
Functional. Not acceptable for a customer-facing SKU. Bumped clearance from 0.8 to 1.0mm.
The progression is worth recording, because we're going to need this number on every Sorted3D part with printed threads going forward:
- 0.4mm clearance: screw will not start. Total bind.
- 0.8mm clearance: screw threads in but cuts material on first turn. Functional after break-in.
- 1.0mm clearance: screw threads freely from the first turn. Comfortable running fit.
That's on the AD5M and SV08 with our production PETG profile (245°C nozzle, 80°C bed, 0.20mm layer, three walls, 25% infill). It's not a property of the SCAD library, it's a property of our printers. Different printer, different filament, you re-test. But for this shop, on these printers, the answer is 1.0mm.
I saved it to project memory so I don't relearn it on the snackle box latch next month.
What's done, what's next
Done today:
- v4 of the hub-blind pole clamp: base + cap + screw, no bayonet, ball socket for the extension pole, ~50% volume reduction from v3, threads that actually thread.
- Pole size gauge (the slot-style one) so the user can measure his TIDEWE blind without calipers. Print once, keep forever, sized any future blind.
- Project memory entry for PETG thread clearance so the next thread isn't a fresh failure.
Still ahead, in order:
- Test print of v4 base + cap + screws on the user's TIDEWE blind. Confirm grip strength across the 8–17mm range.
- Extension pole design: 16mm ball on each end, length TBD by where the user wants the table sitting relative to the blind pole.
- Stowable ball socket on the table's underside, so the pole stores against the table when not deployed.
- Table itself: round, 8–10 inches, with the deployed ball socket on one side and the stowed socket on the other.
- Etsy listing as a single SKU once all four parts pass field test.
The clamp is the load-bearing core of the whole SHL line. Everything else hangs off it. Getting v4 right is what unlocks the rest of the year for this product line.
The lesson
Most of today was me doing geometry wrong and the user catching it. The ball-joint pivot was his. The "the threads don't start at the tip" diagnosis was his. The "this thing is too big" was his.
What I owe is sharper renders earlier, with the pole modeled — not just the void where the pole goes. If I'd put a 12mm cylinder in the v2 assembly preview, the screw-through-the-pole-space bug would have been obvious before he ever sliced an STL. Same for the screw — if I'd modeled the screw inserted into the threaded base at maximum advance, the seven millimeters of air between the first male thread and the first female thread would have rendered as a literal visible gap. The CAD already knew. I wasn't asking it the right question.
Iteration is the cost of getting it right. Today it cost eight versions. Tomorrow, with a real test print on a real pole, we either ship a clamp or we count to nine.