feat(pcb): add 8-belt CNC router board — FluidNC YAML config + schematic netlist
- esp32-s3-pinout.yml: complete FluidNC machine config for 4×axis, 2-motors-per-axis (8 TMC2209, UART mode) - schematic_netlist.md: component-level connection table (ESP32-S3, TMC2209, power, connectors, BOM) - pins derived from Maslow 4 ESP32-S3 board layout adapted for 4-axis gantry - TMC2209s on 2 UART buses (GPIO17/18), 4 addresses each, VREF resistor matrix
This commit is contained in:
440
pcb/esp32-s3-pinout.yml
Normal file
440
pcb/esp32-s3-pinout.yml
Normal file
@@ -0,0 +1,440 @@
|
||||
# =============================================================================
|
||||
# FluidNC Machine Configuration — 8-Belt CNC Router Controller Board
|
||||
# Board: ESP32-S3-WROOM-1 based custom PCB
|
||||
# Architecture: 4 axes (X/Y/Z/A), 2 motors per axis (gantry)
|
||||
# Driver: 8 × TMC2209 in UART mode, 2 buses (4 drivers each)
|
||||
# Kinematics: Cartesian (dual-motor gantry)
|
||||
# =============================================================================
|
||||
# Pin assignments derived from Maslow 4 ESP32-S3 board layout
|
||||
# (github.com/MaslowCNC/Maslow_4) adapted for a 4-axis 8-motor CNC router.
|
||||
#
|
||||
# TMC2209 bus topology:
|
||||
# UART1 (txd_pin: gpio.17): addr 0..3 → motors X0, Y0, Z0, A0
|
||||
# UART2 (txd_pin: gpio.18): addr 0..3 → motors X1, Y1, Z1, A1
|
||||
#
|
||||
# TMC2209 ADDR selection per driver (VREF resistor to GND):
|
||||
# ADDR 0: no resistor (short) → 0 Ω
|
||||
# ADDR 1: → 2.2 kΩ
|
||||
# ADDR 2: → 4.7 kΩ
|
||||
# ADDR 3: → 8.2 kΩ
|
||||
# =============================================================================
|
||||
|
||||
board: "8-Belt CNC Router S3"
|
||||
name: "8-Belt CNC Router"
|
||||
|
||||
# ---- Stepping Engine -------------------------------------------------------
|
||||
stepping:
|
||||
engine: RMT # RMT for ESP32-S3 (cleaner than Timed on S3)
|
||||
idle_ms: 250
|
||||
pulse_us: 2
|
||||
dir_delay_us: 1
|
||||
disable_delay_us: 0
|
||||
segments: 12
|
||||
|
||||
# ---- UART Buses (for TMC2209 UART control) ---------------------------------
|
||||
# UART0 → console (USB-serial bridge), not used for TMC.
|
||||
# UART1 → TMC2209 drivers, ADDR 0..3
|
||||
# UART2 → TMC2209 drivers, ADDR 0..3
|
||||
uart:
|
||||
uart1:
|
||||
txd_pin: gpio.17
|
||||
rxd_pin: gpio.17 # single-wire half-duplex — TXD tied to PDN_UART
|
||||
baud: 115200
|
||||
mode: 8N1
|
||||
rts_pin: NO_PIN
|
||||
cts_pin: NO_PIN
|
||||
uart2:
|
||||
txd_pin: gpio.18
|
||||
rxd_pin: gpio.18 # single-wire half-duplex
|
||||
baud: 115200
|
||||
mode: 8N1
|
||||
rts_pin: NO_PIN
|
||||
cts_pin: NO_PIN
|
||||
|
||||
# ---- SPI Bus (SD card) -----------------------------------------------------
|
||||
spi:
|
||||
miso_pin: gpio.41
|
||||
mosi_pin: gpio.42
|
||||
sck_pin: gpio.43
|
||||
|
||||
sdcard:
|
||||
cs_pin: gpio.4
|
||||
card_detect_pin: NO_PIN
|
||||
frequency_hz: 8000000
|
||||
|
||||
# ---- Kinematics (Cartesian — dual motor gantry) ----------------------------
|
||||
# Cartesian is the default; no kinematics section needed for standard
|
||||
# X/Y/Z/A. Each axis has two TMC2209-driven motors (motor0, motor1).
|
||||
# ----------------------------------------------------------------------------
|
||||
kinematics:
|
||||
Cartesian: # default, explicit for clarity
|
||||
# No sub-items needed for Cartesian
|
||||
|
||||
# ---- Axes ------------------------------------------------------------------
|
||||
axes:
|
||||
# Shared disable pin — active low, disables all TMC2209 drivers
|
||||
shared_stepper_disable_pin: NO_PIN # TMC2209 has internal enable via UART
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# X-Axis — Dual Motor Gantry (left/right)
|
||||
# --------------------------------------------------------------------------
|
||||
x:
|
||||
steps_per_mm: 80.0
|
||||
max_rate_mm_per_min: 3000.0
|
||||
acceleration_mm_per_sec2: 60.0
|
||||
max_travel_mm: 1200.0
|
||||
soft_limits: true
|
||||
|
||||
homing:
|
||||
cycle: 2 # home X then Y
|
||||
positive_direction: false
|
||||
mpos_mm: 0
|
||||
feed_mm_per_min: 100.0
|
||||
seek_mm_per_min: 400.0
|
||||
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:pu # shared X home/limit
|
||||
hard_limits: true
|
||||
pulloff_mm: 2.0
|
||||
tmc_2209:
|
||||
uart_num: 1
|
||||
step_pin: gpio.15
|
||||
direction_pin: gpio.16
|
||||
disable_pin: NO_PIN # each TMC driver manages its own enable via UART
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.2
|
||||
hold_amps: 0.6
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 0
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
motor1:
|
||||
limit_neg_pin: NO_PIN
|
||||
limit_pos_pin: NO_PIN
|
||||
limit_all_pin: NO_PIN # uses motor0's limit pin for homing
|
||||
hard_limits: false
|
||||
pulloff_mm: 2.0
|
||||
tmc_2209:
|
||||
uart_num: 2
|
||||
step_pin: gpio.46
|
||||
direction_pin: gpio.38
|
||||
disable_pin: NO_PIN
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.2
|
||||
hold_amps: 0.6
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 0
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Y-Axis — Dual Motor Gantry (front/back)
|
||||
# --------------------------------------------------------------------------
|
||||
y:
|
||||
steps_per_mm: 80.0
|
||||
max_rate_mm_per_min: 3000.0
|
||||
acceleration_mm_per_sec2: 60.0
|
||||
max_travel_mm: 800.0
|
||||
soft_limits: true
|
||||
|
||||
homing:
|
||||
cycle: 2
|
||||
positive_direction: false
|
||||
mpos_mm: 0
|
||||
feed_mm_per_min: 100.0
|
||||
seek_mm_per_min: 400.0
|
||||
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.36:low:pu
|
||||
hard_limits: true
|
||||
pulloff_mm: 2.0
|
||||
tmc_2209:
|
||||
uart_num: 1
|
||||
step_pin: gpio.21
|
||||
direction_pin: gpio.47
|
||||
disable_pin: NO_PIN
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.2
|
||||
hold_amps: 0.6
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 1
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
motor1:
|
||||
limit_neg_pin: NO_PIN
|
||||
limit_pos_pin: NO_PIN
|
||||
limit_all_pin: NO_PIN
|
||||
hard_limits: false
|
||||
pulloff_mm: 2.0
|
||||
tmc_2209:
|
||||
uart_num: 2
|
||||
step_pin: gpio.48
|
||||
direction_pin: gpio.45
|
||||
disable_pin: NO_PIN
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.2
|
||||
hold_amps: 0.6
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 1
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Z-Axis — Dual Motors (lead-screw/gantry, mirrored)
|
||||
# --------------------------------------------------------------------------
|
||||
z:
|
||||
steps_per_mm: 400.0
|
||||
max_rate_mm_per_min: 800.0
|
||||
acceleration_mm_per_sec2: 25.0
|
||||
max_travel_mm: 200.0
|
||||
soft_limits: true
|
||||
|
||||
homing:
|
||||
cycle: 1 # home Z first
|
||||
positive_direction: true
|
||||
mpos_mm: 0
|
||||
feed_mm_per_min: 50.0
|
||||
seek_mm_per_min: 200.0
|
||||
settle_ms: 500
|
||||
seek_scaler: 1.1
|
||||
feed_scaler: 1.1
|
||||
|
||||
motor0:
|
||||
limit_neg_pin: NO_PIN
|
||||
limit_pos_pin: NO_PIN
|
||||
limit_all_pin: gpio.37:low:pu
|
||||
hard_limits: true
|
||||
pulloff_mm: 3.0
|
||||
tmc_2209:
|
||||
uart_num: 1
|
||||
step_pin: gpio.14
|
||||
direction_pin: gpio.13
|
||||
disable_pin: NO_PIN
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.0
|
||||
hold_amps: 0.5
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 2
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
motor1:
|
||||
limit_neg_pin: NO_PIN
|
||||
limit_pos_pin: NO_PIN
|
||||
limit_all_pin: NO_PIN
|
||||
hard_limits: false
|
||||
pulloff_mm: 3.0
|
||||
tmc_2209:
|
||||
uart_num: 2
|
||||
step_pin: gpio.12
|
||||
direction_pin: gpio.11
|
||||
disable_pin: NO_PIN
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.0
|
||||
hold_amps: 0.5
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 2
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# A-Axis — Dual Motors (4th axis, e.g. rotary/aux)
|
||||
# --------------------------------------------------------------------------
|
||||
a:
|
||||
steps_per_mm: 80.0
|
||||
max_rate_mm_per_min: 2000.0
|
||||
acceleration_mm_per_sec2: 40.0
|
||||
max_travel_mm: 500.0
|
||||
soft_limits: false
|
||||
|
||||
homing:
|
||||
cycle: -1 # no homing — manual positioning
|
||||
allow_single_axis: true
|
||||
positive_direction: true
|
||||
mpos_mm: 0
|
||||
feed_mm_per_min: 50.0
|
||||
seek_mm_per_min: 200.0
|
||||
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.39:low:pu
|
||||
hard_limits: true
|
||||
pulloff_mm: 2.0
|
||||
tmc_2209:
|
||||
uart_num: 1
|
||||
step_pin: gpio.8
|
||||
direction_pin: gpio.3
|
||||
disable_pin: NO_PIN
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.0
|
||||
hold_amps: 0.5
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 3
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
motor1:
|
||||
limit_neg_pin: NO_PIN
|
||||
limit_pos_pin: NO_PIN
|
||||
limit_all_pin: NO_PIN
|
||||
hard_limits: false
|
||||
pulloff_mm: 2.0
|
||||
tmc_2209:
|
||||
uart_num: 2
|
||||
step_pin: gpio.9
|
||||
direction_pin: gpio.10
|
||||
disable_pin: NO_PIN
|
||||
r_sense_ohms: 0.11
|
||||
run_amps: 1.0
|
||||
hold_amps: 0.5
|
||||
microsteps: 16
|
||||
toff_disable: 0
|
||||
toff_stealthchop: 5
|
||||
use_enable: true
|
||||
addr: 3
|
||||
run_mode: StealthChop
|
||||
homing_mode: StealthChop
|
||||
stallguard: 0
|
||||
stallguard_debug: false
|
||||
toff_coolstep: 3
|
||||
|
||||
# ---- Control Pins ----------------------------------------------------------
|
||||
control:
|
||||
safety_door_pin: NO_PIN
|
||||
reset_pin: NO_PIN
|
||||
feed_hold_pin: NO_PIN
|
||||
cycle_start_pin: NO_PIN
|
||||
macro0_pin: NO_PIN
|
||||
macro1_pin: NO_PIN
|
||||
macro2_pin: NO_PIN
|
||||
macro3_pin: NO_PIN
|
||||
|
||||
# ---- Coolant ---------------------------------------------------------------
|
||||
coolant:
|
||||
flood_pin: gpio.7
|
||||
mist_pin: NO_PIN
|
||||
delay_ms: 0
|
||||
|
||||
# ---- Probe ----------------------------------------------------------------
|
||||
probe:
|
||||
pin: gpio.40:low:pu
|
||||
check_mode_start: true
|
||||
|
||||
# ---- Macros ----------------------------------------------------------------
|
||||
macros:
|
||||
startup_line0:
|
||||
startup_line1:
|
||||
macro0:
|
||||
macro1:
|
||||
macro2:
|
||||
macro3:
|
||||
|
||||
# ---- Start / Park ----------------------------------------------------------
|
||||
start:
|
||||
must_home: true
|
||||
deactivate_parking: false
|
||||
check_limits: false
|
||||
|
||||
parking:
|
||||
enable: false
|
||||
axis: Z
|
||||
target_mpos_mm: -5.0
|
||||
rate_mm_per_min: 800.0
|
||||
pullout_mm: 5.0
|
||||
pullout_rate_mm_per_min: 250.0
|
||||
|
||||
# ---- Spindle (PWM / VFD) ----------------------------------------------------
|
||||
PWM:
|
||||
pwm_hz: 5000
|
||||
output_pin: gpio.5
|
||||
enable_pin: NO_PIN
|
||||
direction_pin: gpio.6
|
||||
disable_with_s0: false
|
||||
s0_with_disable: true
|
||||
spinup_ms: 0
|
||||
spindown_ms: 0
|
||||
tool_num: 0
|
||||
speed_map: 0=0% 10000=100%
|
||||
|
||||
# ---- User Outputs -----------------------------------------------------------
|
||||
user_outputs:
|
||||
analog0_pin: NO_PIN
|
||||
analog1_pin: NO_PIN
|
||||
analog2_pin: NO_PIN
|
||||
analog3_pin: NO_PIN
|
||||
digital0_pin: NO_PIN
|
||||
digital1_pin: NO_PIN
|
||||
digital2_pin: NO_PIN
|
||||
digital3_pin: NO_PIN
|
||||
digital4_pin: NO_PIN
|
||||
digital5_pin: NO_PIN
|
||||
digital6_pin: NO_PIN
|
||||
digital7_pin: NO_PIN
|
||||
analog_hz: 5000
|
||||
|
||||
# ---- General Settings -------------------------------------------------------
|
||||
arc_tolerance_mm: 0.002
|
||||
junction_deviation_mm: 0.010
|
||||
verbose_errors: false
|
||||
report_inches: false
|
||||
enable_parking_override_control: false
|
||||
use_line_numbers: false
|
||||
planner_blocks: 16
|
||||
Reference in New Issue
Block a user