- KiCad project generated by pcb/tools (design, route, schematic, fab outputs). - v0.4 fixes the v0.3 review findings: low-dropout 3.3 V regulator, OR'd 5 V supply, polyfuse, USB ESD protection, input clamps, ceramic decoupling at the drivers, A4988/DRV8825 jumper, ground stitching. DRC/ERC clean. - v0.3 (as ordered) kept in pcb/archive/v0.3. - FluidNC config.yaml for the board; rho hard limit on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
78 lines
2.8 KiB
YAML
78 lines
2.8 KiB
YAML
# FluidNC config for the SandTable Controller v0.3 (ESP32 + 2x DRV8825 at 1/32 step).
|
|
# A starting point: not yet run on real hardware.
|
|
#
|
|
# Units
|
|
# X = theta (arm angle) in DEGREES
|
|
# 200 steps x 32 microsteps x (80T hub / 20T motor pulley) = 25600 steps per arm turn = 71.111 per degree
|
|
# Y = rho (ball distance from the centre) in MM
|
|
# 200 steps x 32 microsteps / (20T GT2 pulley = 40 mm per turn) = 160 steps per mm
|
|
#
|
|
# If an axis turns the wrong way, add :low to its direction_pin (for example gpio.19:low)
|
|
# or flip one coil's plug.
|
|
|
|
board: SandTable Controller v0.3
|
|
name: Sand Table
|
|
|
|
stepping:
|
|
engine: RMT
|
|
idle_ms: 255 # 255 = never switch the motors off, so the arm can't drift
|
|
pulse_us: 4 # DRV8825 needs at least 1.9 us
|
|
dir_delay_us: 2 # DRV8825 needs at least 0.65 us
|
|
disable_delay_us: 0
|
|
|
|
axes:
|
|
shared_stepper_disable_pin: gpio.13 # high = drivers off (a pull-up keeps them off during boot)
|
|
|
|
x: # theta, degrees
|
|
steps_per_mm: 71.111
|
|
max_rate_mm_per_min: 3600 # 10 arm turns per minute
|
|
acceleration_mm_per_sec2: 120
|
|
max_travel_mm: 360 # only sets how far $HX searches; theta is unlimited
|
|
soft_limits: false
|
|
homing:
|
|
cycle: 0 # not part of $H. With a hall sensor fitted, home theta by hand with $HX
|
|
positive_direction: true
|
|
mpos_mm: 0
|
|
feed_mm_per_min: 120
|
|
seek_mm_per_min: 720
|
|
settle_ms: 250
|
|
seek_scaler: 1.1
|
|
feed_scaler: 1.1
|
|
motor0:
|
|
limit_neg_pin: NO_PIN
|
|
limit_pos_pin: NO_PIN
|
|
limit_all_pin: gpio.35:low # HALL connector (active low, pulled up on the board)
|
|
hard_limits: false
|
|
pulloff_mm: 5
|
|
stepstick:
|
|
step_pin: gpio.18
|
|
direction_pin: gpio.19
|
|
disable_pin: NO_PIN
|
|
|
|
y: # rho, mm
|
|
steps_per_mm: 160
|
|
max_rate_mm_per_min: 1500
|
|
acceleration_mm_per_sec2: 100
|
|
max_travel_mm: 135
|
|
soft_limits: false
|
|
homing:
|
|
cycle: 1 # $H homes rho
|
|
positive_direction: false # the home switch is at the centre end of the arm
|
|
mpos_mm: 3 # switch trips near rho 2 mm, then backs off 1 mm. Tune so Y0 is dead centre
|
|
feed_mm_per_min: 100
|
|
seek_mm_per_min: 600
|
|
settle_ms: 250
|
|
seek_scaler: 1.1
|
|
feed_scaler: 1.1
|
|
motor0:
|
|
limit_neg_pin: gpio.34:low # HOME connector: switch COM to GND (pin 3), NO to signal (pin 2)
|
|
limit_pos_pin: NO_PIN
|
|
limit_all_pin: NO_PIN
|
|
hard_limits: true # patterns stay 1 mm past the switch (rho_min_mm = 3), so a press
|
|
# while drawing means lost steps: FluidNC stops at once by itself
|
|
pulloff_mm: 1
|
|
stepstick:
|
|
step_pin: gpio.27
|
|
direction_pin: gpio.14
|
|
disable_pin: NO_PIN
|