Files
sandTable/design-notes.md
T
ckochandClaude Opus 5.5 370cb1c79c Sand table v2: printable design, STLs and notes
12" polar kinetic sand table (motor-on-arm mechanism with slip ring).
- SolidCraft design + STEP assembly
- 25 print-ready STLs for a Bambu P1S, fits set from the fit-test coupon
  (shaft 8.1 mm, 608 pocket 22.2 mm)
- design notes: mechanism, dimensions, BOM, hardware, print orientation

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 12:08:52 -04:00

6.9 KiB
Raw Blame History

Sand table: design notes

  • Printable design: sand-table-v2.solidcraft. Bodies named REF_* are bought or on-hand parts, modeled only for fit.
  • Older files: sand-table-v1.solidcraft (first layout) and mechanism-mockups.solidcraft (A vs B blocks).
  • Print files: print/

Size

  • 318 mm (12.5") across, about 129 mm (5.1") tall, plus stick-on feet.
  • The sand area is 284 mm (11.2") across. The ball reaches 133 mm from the center (rho 0–133).

How it works (mechanism A)

  • Spin:
    • The pancake NEMA17 hangs under the center plate on 9 mm posts. Its screw slots allow ±3 mm for belt tension.
    • A 20T pulley drives the printed 80T hub pulley (4:1) through a 200 mm closed GT2 loop, at a 46 mm center distance.
  • Hub:
    • One printed part: the 80T pulley, the arm plate, and a hollow shaft (8 mm OD, 4.5 mm bore).
    • The shaft turns in 2× 608 bearings, set back-to-back in the center plate's housing, which has a lip between them.
    • The slip-ring adapter is glued on the shaft bottom and presses up on the lower bearing, which locks the shaft in place.
  • Slip ring:
    • The rotor flange screws to the adapter (3× M3). The rotor wires go up the shaft bore, out a groove in the arm plate, and along the extrusion's side slot.
    • The stator body hangs below. A printed collar's tab rides in a fork on the center plate, which stops the body from turning.
  • Arm:
    • 2020 T-slot, 220 mm long, from x -80 to +140, bolted to the hub with 2× M5 T-nuts.
    • The in/out motor hangs upside down behind the back end on a printed bracket (T-nuts in the bottom slot).
    • The tip idler is a 608 in a printed flanged sleeve, on a printed 8 mm pin. No M8 bolt is needed.
  • Carriage:
    • It rolls on 4× 608s on the upper lands of the extrusion's side faces. On the −y side the two rollers sit on flexure blades with 0.3 mm preload, so there's no slop.
    • The belt ends clamp into a toothed slot.
    • The magnet sits in a drop-in cup, 25 mm ahead of the carriage center. With a 1 mm felt pad on top, it touches the plexi floor.
  • Homing: a microswitch on top of the extrusion's back end. The carriage reaches it at rho ≈ 2, and its body is the rho-0 hard stop.
  • Electronics:
    • The Arduino Uno + CNC shield hangs upside down (components facing down) under the deck at 45°, on 4 printed standoffs, with the USB edge toward the wall.
    • Cables leave through a notch in the bottom of the wall. The bottom is open for access.

Heights (z from the ground, mm)

Part z
Slip ring body / flange 19.8–34.8 / 34.8–36
Adapter 36–42
Hub bearings 42–49, 53–60
Deck shelf 51–56
Center plate 56–60
Spin motor 24.5–47 (shaft tip 71)
Hub pulley 60.5–69.5
Arm plate 69.5–73
In/out belt 70.5–76.5
Extrusion 73–93
Arm motor 82–104.5
Rollers 85.5–92.5
Carriage plate 93–98
Magnet top / felt 105.5 / 106.5
Plexi floor 106.5–109.7
Sand gap 16
Glass top / rim 128.85

Motor (pancake NEMA17, from the user's drawing)

  • Body: 42 × 42 × 22.5 ±0.8.
  • Face: boss Ø22 × 2; 4× M3 on a 31 mm square, 2.5 mm deep.
  • Shaft: Ø5 with a D-flat, 24 ±0.5 from the face.
  • Connector: sticks out 7 mm near the back.
  • Wires: A+ black, A− green, B+ red, B− blue.

Fit parameters (set from the fit-test coupon, 2026-10-22)

  • shaft_d = 8.1: every printed 8 mm shaft or pin that goes into a 608 (hub shaft, roller pins, idler pin).
    • 7.9 and 8.0 fell on and off; 8.1 grips.
    • The parts were re-exported after this change: 10 hub, 11 slip-ring adapter, 15 idler bracket, 17 carriage.
  • brg_d = 22.2: every 608 pocket (center plate, idler sleeve).
    • 22.4 was loose, 22.2 a snug push, 22.0 too tight.
    • If the idler sleeve ever slips on its bearing, add a drop of CA.

Parts on hand

  • 2× pancake NEMA17
  • 2× GT2 20T pulley (5 mm bore)
  • open GT2 belt (about 0.5 m)
  • 2020 T-slot (needs 220 mm)
  • 7× 608: 2 hub, 4 carriage, 1 idler
  • Arduino Uno + CNC shield

To buy

  • Slip ring: Comidox 12.5 mm capsule, 6 wires, 2 A. It carries 4 wires for the arm motor and 2 for the home switch.
    • Rotor: flange Ø24 × 1.2 with 3× Ø3.2 holes on an Ø18 circle, plus a Ø5 × 1.5 boss.
    • Stator: body Ø12.5 × 15.
  • GT2 closed loop, 200 mm × 6 mm
  • 12" round glass, 1/8"
  • 12" round plexi disc, 1/8" (white or frosted)
  • N52 magnets, Ø12 × 3 mm, several (stack 2 to start)
  • Steel balls, 3/8" (plus 5/16" and 1/2" to compare)
  • Fine sand
  • Felt pad (self-adhesive)
  • 4 rubber feet
  • 12 V 2 A power supply
  • KW12-style microswitch (20 × 10 × 6.4)
  • Optional: TMC2208/2209 drivers (quieter)
  • Optional: 8 mm × 0.5 mm brass tube (spare shaft)

Hardware

Qty Part Where
8 M3×16 + M3 nut shell seam joints (2 per seam)
16 M3×8 deck → wall ledge (8); center plate → deck (8)
4 M3×12 spin motor (through the counterbored slots)
4 M3×6 arm motor → bracket
3 M3×6 slip ring flange → adapter
5 M3×8 roller washers (4), idler washer (1)
4 M3×6 Uno → standoffs
7 M5 + slot-6 T-nut hub 2× M5×12, idler bracket 2× M5×12, motor bracket 2× M5×8, switch mount 1× M5×8
2 M2×8 microswitch

Glue: CA for the slip-ring adapter on the shaft, the magnet cup in the carriage, and the magnets.

Print files (print/)

File Qty Notes
00-fit-test-coupon 1 Print first. Set shaft_d / brg_d from it, then re-export the parts below.
01–04 shell Q1–Q4 1 each Q1 has the cable notch. Joint screws go at the 4 seams.
05–08 deck Q1–Q4 1 each Q1 has the Arduino standoffs and goes under Shell Q1 (the 45° side).
09 center plate 1 Bearing housing, spin-motor posts, slip-ring fork
10 hub 80T pulley 1 PETG; arm plate on the bed
11 slip-ring adapter, 12 stator collar 1 each
13 arm motor bracket 1 Needs tree supports
14 switch mount, 15 idler bracket, 16 idler sleeve 1 each
17 carriage, 18 magnet cup 1 each
19 roller washers ×4, 19b idler washer
20 magnet spacers 1/2/3 mm 1 set
21–24 sand ring Q1–Q4 1 each

The full assembly for viewing is sand-table-v2-assembly.step.

The body names in sand-table-v2.solidcraft have SolidCraft's automatic split suffixes:

  • Shell: Shell_Q1 = Q1, Shell_Q1 (1)' = Q2, Shell_Q1 (1) (1) = Q3, Shell_Q1 (1) = Q4.
  • Deck and sand ring: the same pattern, starting from DeckShelf and SandRing.
  • Don't rename them. It breaks the split steps.

Print orientation

  • Shell quarters: upright. The joint blocks have 45° chamfers underneath.
  • Deck sectors, center plate, hub, carriage: upside down (top face on the bed).
  • Arm motor bracket: motor plate on the bed, with tree supports under the T-nut plate.
  • Everything else: flat as modeled.
  • PETG is best for the hub, carriage and brackets. PLA is fine for the shell, deck and sand ring.