Files
cnc-router/pcb/esp32-s3-pinout.yml
nearxos f26f15db61 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
2026-06-20 16:15:25 +03:00

441 lines
12 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# =============================================================================
# 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