EN
Cloud
R1BBIT · COMMUNITY

3D models

A question from the R1BBIT community

3D models·R1BBIT·

Stepper bench: two discs turning through each other's slots

Two NEMA17 motors stand at right angles, one shaft 24.5 mm above the other, and each shaft carries a Ø35 disc with four slots. The discs overlap along a vertical line: while one of them stands with a slot on that line, the other turns straight through it, then they swap. Here is a video of it running.

The margin is ±1.9°, a little more than one full step of the motor (1.8°). Lose a couple of steps and the discs catch each other — so the bench shows honestly whether a motor is holding position, which is something a spinning shaft on the bench never tells you.

114 × 114 × 122 mm overall, the electronics live in the base. bench_assembled.obj is the whole thing as it goes together, with the motors.

Parts — already oriented for printing, no supports:

  • 01_case.stl — base, bottom down
  • 02_lid_with_tower.stl — plate down; the holes in the walls are teardrops so they print without supports
  • 03_disc_x2.stl — print it twice, in two colours; face down, hub up. 0.12–0.16 mm layers, 100% infill, and keep the seam off the edge
  • 04_gauge_10mm.stl — an 18 × 10 × 10 block, only needed while assembling

PLA or PETG, 0.2 mm for the case and the lid. Print the discs carefully: the clearance is 0.6 mm per side and it depends on how flat they come out.

You also need: 2 × NEMA17 42×42 with a 5 mm flatted shaft and 24 mm of it sticking out, 2 × TMC2209 (quiet) or A4988, an ESP32 DevKit, a 70 × 50 protoboard, a Ø12 momentary button, a 5 mm LED with 330 Ω, a 5.5 × 2.1 barrel jack for a Ø11 hole, a 12 V 2 A supply and a 12→5 V converter (MP1584 or similar), 2 × 100 µF 25 V across the driver supply, screws (8 × M3×8 round head for the motors, 4 × M3×12 countersunk for the lid, 2 × M3×4 grub screws for the discs, 4 × M2 self-tapping for the board) and four Ø10 rubber feet.

Assembly. The motor sits flange-out against the outside of the wall and rests on the ledge; the M3×8 screws go in from the inside of the bracket, connector down, cable through the opening in the lid. Put the disc on the shaft hub-first, stand the 10 mm gauge beside the shaft between the wall and the hub, push the disc up against it and tighten the grub screw onto the flat — that puts the disc exactly on the line where the two cross. Tap the screw hole M3 first, or run a screw into the bare plastic. Take the gauge out. The electronics go on the protoboard inside the case, lid on four screws.

Wiring

ESP32
Driver A: STEP / DIR 25 / 26
Driver B: STEP / DIR 32 / 33
EN on both drivers 27
Button (to GND) 14
LED (through 330 Ω) 4

Motor A is the lower one, axis at 71 mm; motor B the upper, at 95.5 mm. 1/16 microstepping — MS1 and MS2 to 3.3 V on a TMC2209, MS1–MS3 on an A4988 — and current set to about 0.8–1 A. 12 V goes to the drivers' VM with a 100 µF beside each, 12→5 V to the ESP32 VIN, and the drivers' VIO from the ESP32's 3.3 V.

Running it. With the motors off (they are free right after power-up), set the lower disc slot up and the upper slot down, both on the line where they cross; each one should then turn a full revolution through the other while that one stands. Hold the button for more than 1.5 s: the motors energise and take that position as zero. A short press starts and stops the demo — three revolutions of each disc in turn, then "gears" (fast alternating quarter turns), then random moves.

If they graze on the move, open a serial monitor at 115200 and press t for a slow pass, nudge the standing disc with q/w (lower) and o/p (upper) four microsteps at a time until the other passes through the middle of its slot, then s to accept the new zero. x releases the motors if you would rather set them by hand again.

The firmware is an Arduino sketch (ESP32 Dev Module, FastAccelStepper). MAX_HZ = 24000 is 450 rpm; after power-up it runs at 30% of that, and digits 1–9 over serial set 10–90%. Run the first passes at 20–30%: it is acceleration that makes a motor slip steps, not top speed. A NEMA17 on 12 V with no load usually holds 600–900 rpm, but a sharp start breaks away much earlier.

The slot is 3.2 mm against a 2 mm disc. Narrow it and the margin drops below a single step, which makes the demo stricter still.

The sketch and the STEP sources are not model files, so the forum will not take them — ask and I will post them.

Files

  • bench_assembled.objOBJ · 312 KB · 114 × 114 × 121.5 mm Download
  • 01_case.stlSTL · 158 KB · 114 × 114 × 40 mm · 1 Download
  • 02_lid_with_tower.stlSTL · 109 KB · 114 × 114 × 81.5 mm Download
  • 03_disc_x2.stlSTL · 68 KB · 34.9 × 34.9 × 12 mm · 1 Download
  • 04_gauge_10mm.stlSTL · 10 KB · 18 × 10 × 10 mm Download
For which board
ESP32 DevKit
Material
PLA or PETG
Layer height, mm
0.2
Supports
No
License
CC-BY-4.0
1
0 replies

Sign in to reply