ADR-010: Floating Z-Puck System
Status
Accepted
Context
The Amalgam supports various bed sizes (from salvaged donor beds to MK52 250mm²). Traditional integrated Z-motor mounts (built into corner brackets) create a “parametric paradox”:
- Frame Lock-in: Motor position determines bed width
- No Adjustment: Small manufacturing tolerances (bent rods, “lumpy” prints) cause permanent Z-misalignment
- Rebuild Required: Upgrading bed size requires replacing entire iron skeleton
This creates a choice between: - Optimized Frame: Minimal size for current bed, but rebuild needed for upgrades - Reference Frame: Built for MK52 size, but mounting motors for smaller beds is challenging
Decision
We adopt a Floating Z-Puck System for all three Z-motors, decoupling the iron skeleton from bed dimensions.
Architecture
The Puck: A 3D-printed motor mount that slides along the front and rear M12 Z-rods, positioned to match any bed width.
The Double-Nut Anchor:
M12 Rod
↓
[Upper M12 Nut]
↓
[ Z-Puck (clamp) ]
↓
[Lower M12 Nut]
- The puck is clamped to the M12 threaded rod
- Two standard M12 hex nuts trap the puck vertically
- Even if the clamp fails, the nuts provide physical fail-safe
Why This Works
1. Parametric Flexibility - Frame can be built for MK52 Reference Spec (250mm²) - Pucks slide inward for smaller salvaged beds - Upgrade later: only print new bed-arms, slide pucks outward - Iron skeleton never touched
2. The “Nylon Jam” Effect - Threaded rods are superior to smooth rods for clamping - Split-clamp design deforms plastic into M12 thread valleys - Creates mechanical interlock preventing rotation/slip - Smooth rods rely only on friction
3. Vibration Isolation - Integrated motors turn entire frame into “tuning fork” - Floating pucks break solid vibration transmission path - Plastic between motor and rod dampens high-frequency noise
4. Precision Alignment (The “True-Vertical” Rule) - Z-wobble primarily caused by misaligned motors, not loose ones - Integrated corners force user to live with 0.5mm misalignment - Floating pucks allow loosening, homing bed to find “natural” center, then tightening - Ensures perfect motor/lead-screw concentricity
Build Wizard Logic
Configuration Wizard
├─ Frame Size
│ ├─ Option A: Optimized for Salvage (current bed only)
│ │ └─ Result: Minimal footprint, rebuild needed for upgrades
│ └─ Option B: Future-Proof (MK52 Reference Spec) ★
│ └─ Result: Larger footprint, upgrade bed by sliding pucks
├─ Z-Puck Mode
│ ├─ Naked Frame: Pucks clamped to rods + rubber pads under corners
│ └─ Laminated Plinth: Pucks screwed into MDF base (see ADR-011)
Scale Limit: Automatic scaling capped at MK52 (~250mm²). Larger sizes require manual engineering due to: - M12 frame stability limits - Thermal management limits (PSU/heater capacity)
Consequences
Benefits
- Future-Proof: Build once for MK52, use with any smaller bed
- No Rebuilds: Bed upgrades require only new bed-arms, not iron skeleton
- Precision Alignment: Eliminates Z-wobble from motor misalignment
- Reduced Vibration: Decoupled motors transmit less noise to frame
- Single Design: One Z-puck design works for all configurations
- Fail-Safe: Double-nut anchor prevents catastrophic failures
Trade-offs
- Slightly More Complex: Additional assembly step vs integrated corners
- Manual Alignment: Requires user to position pucks during build
- Cantilever Concern: Theoretical micro-flex (mitigated by double-nut anchor)
- Parts Count: Two extra M12 nuts per Z-motor (6 total)
What This Enables
- Tier 1-2 Builds: Small salvaged beds on Reference Spec frame
- Tier 3 Builds: MK52 beds with same iron foundation
- Modular Puck System: Consistent motor mounting across entire machine
- Parametric Build Scripts: No need for separate “integrated” and “floating” variants
What This Replaces
- Integrated Z-motor corners (frame-locked to bed size)
- Fixed-position Z-motor mounts
- Multiple corner variants for different bed sizes
BOM Implications (Generic)
Universal Requirements (All Scenarios)
- Parts needed:
- 3x Floating Z-Puck 3D prints
- 6x M12 hex nuts (for double-nut anchors)
- 6x M12 flat washers
- 3x NEMA 17 stepper motors (Z-axis)
- 3x Lead screws (8mm, TR8x2 or TR8x1.5)
- 3x Lead screw couplers
- Cost implication: Low (~$30-40 AUD for hardware + plastic)
- Donor compatibility: All donors (motors salvaged, lead screws salvaged)
Scenario A: Naked Frame (Tier 1-2)
- Additional parts:
- 4x High-density rubber or vibration-dampening pads (corner feet)
- Assembly: Clamp pucks to rods, no woodworking
- Cost implication: Very Low (+$10-15 AUD for pads)
- Stability: Moderate (relies on frame mass + pads)
Scenario B: Laminated Plinth (Tier 3)
- Additional parts:
- 2x 18mm MDF boards (see ADR-011 for dimensions)
- Viscoelastic adhesive (Green Glue or construction adhesive)
- 6x Wood screws (to secure pucks to MDF)
- 4x Large fender washers (for frame thru-bolting)
- 4x M12 nuts + washers (underside of MDF)
- Assembly: Drill template required, screw pucks to MDF
- Cost implication: Low (+$20-30 AUD for MDF + adhesive)
- Stability: Very High (industrial-grade)
Scenario C: Future-Proof Build Path
- Initial Build: Scenario A (Naked Frame) with small salvaged bed
- Upgrade Path: Add laminated plinth + slide pucks outward for MK52
- Cost implication: Spread over time, minimal additional parts
- Benefit: No need to replace iron skeleton
Implementation Notes
Puck Design Specifications
- Clamping: Split-clamp design with M3 or M4 bolt
- Motor Mount: Standard NEMA 17 pattern (31mm bolt circle)
- Rod Clearance: M12 rod clearance ~12.5mm
- Slot Design (if plinth-mounted): 10mm slots for alignment adjustment
- Nut Traps (optional): Can incorporate nut traps for double-nut anchor
Assembly Sequence
For Naked Frame Builds: 1. Assemble M12 skeleton on rubber pads 2. Install lead screws through pucks 3. Thread pucks onto front Z-rods 4. Slide to match bed width 5. Install upper/lower M12 nuts (hand-tight) 6. Clamp puck with bolt (compress into threads) 7. Tighten nuts fully, torque clamp bolt 8. Home bed to check alignment, adjust if needed
For Laminated Plinth Builds: 1. Prepare laminated MDF plinth (see ADR-011) 2. Drill holes using build123d template 3. Install Z-pucks on MDF with wood screws (loosely) 4. Thread M12 rods through pucks + MDF 5. Secure rods with fender washers + nuts underneath 6. Slide pucks to match bed width 7. Home bed, align motors to lead screws 8. Tighten wood screws fully 9. Add double-nut anchors above/below pucks
Alignment Procedure
- Install lead screws and connect to bed
- Loosen all Z-puck clamps
- Home Z-axis to bottom
- Verify all 3 motors rotate smoothly
- If any motor binds, slightly reposition puck
- Repeat homing until all rotate freely
- Tighten clamps + double-nut anchors
- Perform Z-tilt calibration in Klipper
Safety Considerations
- Double-Nut Anchor: Always use, even with strong clamp
- Torque Specs: Clamp bolt to ~2-3 Nm (don’t crack plastic)
- Thread Engagement: Ensure M12 nuts fully engaged (≥10mm)
- Plinth Screws: Use appropriate length for MDF (1.5x board thickness)
References
- docs/reference/ai-conversations/floating-z-puck.md: Complete technical discussion
- docs/adr/011-laminated-plinth.md: Baseboard foundation strategy
- docs/adr/001-m12-skeleton.md: Frame architecture
- docs/adr/005-triple-z.md: Triple-Z kinematic leveling
- ../manifesto.md: “The Bed is the Anchor” pillar
- ../manifesto.md: Modular Puck & Spider concept
Evolution Notes
This ADR establishes the Z-puck as a universal mounting system that supports all bed sizes and foundation strategies. Future variations (e.g., different motor types, direct-drive Z) will maintain this modular approach.