====== TMC5160 V5 — Complete 4-Axis YAML Examples ======
Every file below is a **complete, ready-to-load FluidNC configuration** for a 4-driver machine — **X / Y1 / Y2 / Z** (a dual-Y gantry), with the **OLED display enabled**. Click the file name to download it. These are starting points, not finished machine configs.
===== Before you use any of these =====
* **Pick the file that matches BOTH your mainboard AND your wiring mode.** The four connector positions use the same I2SO numbers on all four mainboards, but the limit-switch, I2C and bus GPIOs differ per board.
* **``steps_per_mm`` is a placeholder (800).** Calculate it from your motor step angle, microstepping and mechanics.
* **Limit pins** follow each mainboard's own test YAML. Positions with no documented endstop are set to ``NO_PIN`` — set your own before enabling homing.
* **In Normal mode**, current and microstepping come from the DIP switch on the driver board, *not* from the YAML.
* **In the two SPI modes**, current and microstepping come from the ``tmc_5160`` block. Set ``run_amps`` to your motor's rating — do not leave the 1.2 A placeholder.
* **In the two SPI modes**, set the driver board's Logic voltage selection to **3.3 V** so it matches the SPI bus level.
===== OLED and pendant share pins on V4.96 Pro and V4.7B =====
On **V4.96 Pro** and **V4.7B**, the OLED I2C bus (``gpio.27`` / ``gpio.25``) uses the **same two pins** as the RJ12 pendant UART2. You can run the OLED **or** a pendant, never both at once. Those files ship with the **OLED enabled** and the pendant block commented out, with instructions inside the file for swapping.
On **V5.88 Ultra** and **V5.77 Carrier** the OLED uses ``gpio.14`` / ``gpio.13``, which is independent of UART2 (``gpio.0`` / ``gpio.35``), so those files have the OLED **and** the pendant enabled together.
[[pibot_cnc_laser_series:silentstep_tmc5160_v5:start|← Back to the TMC5160 V5 manual]]
----
===== V5.88 Ultra =====
==== Normal / Standalone mode ====
board: V588 ULTRA
name: XYYZ TMC5160 V5 - Normal / Standalone mode (step-dir-enable only)
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V5.88 Ultra
# Mode: Normal / Standalone mode (step-dir-enable only)
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the DIP switch, not this file.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.42:low
limit_pos_pin: gpio.41:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.40:low
limit_pos_pin: gpio.39:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
motor1: # Y2 - connector 3
limit_neg_pin: gpio.38:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: gpio.37:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
i2so:
bck_pin: gpio.16
data_pin: gpio.17
ws_pin: gpio.18
spi:
miso_pin: gpio.2
mosi_pin: gpio.1
sck_pin: gpio.21
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.9
# ---- OLED display ----
i2c0:
sda_pin: gpio.14
scl_pin: gpio.13
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) ----
# Independent of the OLED on this board; delete if unused.
uart2:
txd_pin: gpio.0
rxd_pin: gpio.35
rts_pin: NO_PIN
cts_pin: NO_PIN
baud: 1000000
mode: 8N1
uart_channel2:
report_interval_ms: 75
uart_num: 2
start:
must_home: false
==== SPI Daisy Chain mode ====
board: V588 ULTRA
name: XYYZ TMC5160 V5 - SPI Daisy Chain mode
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V5.88 Ultra
# Mode: SPI Daisy Chain mode
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the tmc_5160 blocks below.
# Set each driver board Logic voltage selection to 3.3V to match the SPI bus.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.42:low
limit_pos_pin: gpio.41:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.3 # daisy chain: CS on first driver only
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
spi_index: 1
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.40:low
limit_pos_pin: gpio.39:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
# cs_pin: i2so.6 # not used in daisy chain
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
spi_index: 2
motor1: # Y2 - connector 3
limit_neg_pin: gpio.38:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
# cs_pin: i2so.11 # not used in daisy chain
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
spi_index: 3
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: gpio.37:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
# cs_pin: i2so.14 # not used in daisy chain
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
spi_index: 4
i2so:
bck_pin: gpio.16
data_pin: gpio.17
ws_pin: gpio.18
spi:
miso_pin: gpio.2
mosi_pin: gpio.1
sck_pin: gpio.21
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.9
# ---- OLED display ----
i2c0:
sda_pin: gpio.14
scl_pin: gpio.13
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) ----
# Independent of the OLED on this board; delete if unused.
uart2:
txd_pin: gpio.0
rxd_pin: gpio.35
rts_pin: NO_PIN
cts_pin: NO_PIN
baud: 1000000
mode: 8N1
uart_channel2:
report_interval_ms: 75
uart_num: 2
start:
must_home: false
==== SPI Independent mode ====
board: V588 ULTRA
name: XYYZ TMC5160 V5 - SPI Independent mode
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V5.88 Ultra
# Mode: SPI Independent mode
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the tmc_5160 blocks below.
# Set each driver board Logic voltage selection to 3.3V to match the SPI bus.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.42:low
limit_pos_pin: gpio.41:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.3 # independent: own CS per driver
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
spi_index: -1 # always -1 in independent mode
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.40:low
limit_pos_pin: gpio.39:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.6 # independent: own CS per driver
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
spi_index: -1 # always -1 in independent mode
motor1: # Y2 - connector 3
limit_neg_pin: gpio.38:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.11 # independent: own CS per driver
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
spi_index: -1 # always -1 in independent mode
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: gpio.37:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.14 # independent: own CS per driver
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
spi_index: -1 # always -1 in independent mode
i2so:
bck_pin: gpio.16
data_pin: gpio.17
ws_pin: gpio.18
spi:
miso_pin: gpio.2
mosi_pin: gpio.1
sck_pin: gpio.21
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.9
# ---- OLED display ----
i2c0:
sda_pin: gpio.14
scl_pin: gpio.13
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) ----
# Independent of the OLED on this board; delete if unused.
uart2:
txd_pin: gpio.0
rxd_pin: gpio.35
rts_pin: NO_PIN
cts_pin: NO_PIN
baud: 1000000
mode: 8N1
uart_channel2:
report_interval_ms: 75
uart_num: 2
start:
must_home: false
----
===== V4.96 Pro =====
==== Normal / Standalone mode ====
board: V49PB V496PRO
name: XYYZ TMC5160 V5 - Normal / Standalone mode (step-dir-enable only)
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V4.96 Pro
# Mode: Normal / Standalone mode (step-dir-enable only)
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the DIP switch, not this file.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.33:low
limit_pos_pin: gpio.32:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.35:low
limit_pos_pin: gpio.34:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
motor1: # Y2 - connector 3
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
i2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.5
# ---- OLED display ----
i2c0:
sda_pin: gpio.27
scl_pin: gpio.25
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) - DISABLED ----
# On this board UART2 uses gpio.27 / gpio.25, the SAME pins as the OLED above.
# You can run the OLED or the pendant, never both. The OLED is enabled here.
# To use a pendant instead: delete the i2c0 and oled blocks, then uncomment:
# uart2:
# txd_pin: gpio.27
# rxd_pin: gpio.25
# rts_pin: NO_PIN
# cts_pin: NO_PIN
# baud: 1000000
# mode: 8N1
# uart_channel2:
# report_interval_ms: 75
# uart_num: 2
start:
must_home: false
==== SPI Daisy Chain mode ====
board: V49PB V496PRO
name: XYYZ TMC5160 V5 - SPI Daisy Chain mode
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V4.96 Pro
# Mode: SPI Daisy Chain mode
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the tmc_5160 blocks below.
# Set each driver board Logic voltage selection to 3.3V to match the SPI bus.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.33:low
limit_pos_pin: gpio.32:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.3 # daisy chain: CS on first driver only
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
spi_index: 1
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.35:low
limit_pos_pin: gpio.34:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
# cs_pin: i2so.6 # not used in daisy chain
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
spi_index: 2
motor1: # Y2 - connector 3
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
# cs_pin: i2so.11 # not used in daisy chain
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
spi_index: 3
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
# cs_pin: i2so.14 # not used in daisy chain
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
spi_index: 4
i2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.5
# ---- OLED display ----
i2c0:
sda_pin: gpio.27
scl_pin: gpio.25
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) - DISABLED ----
# On this board UART2 uses gpio.27 / gpio.25, the SAME pins as the OLED above.
# You can run the OLED or the pendant, never both. The OLED is enabled here.
# To use a pendant instead: delete the i2c0 and oled blocks, then uncomment:
# uart2:
# txd_pin: gpio.27
# rxd_pin: gpio.25
# rts_pin: NO_PIN
# cts_pin: NO_PIN
# baud: 1000000
# mode: 8N1
# uart_channel2:
# report_interval_ms: 75
# uart_num: 2
start:
must_home: false
==== SPI Independent mode ====
board: V49PB V496PRO
name: XYYZ TMC5160 V5 - SPI Independent mode
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V4.96 Pro
# Mode: SPI Independent mode
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the tmc_5160 blocks below.
# Set each driver board Logic voltage selection to 3.3V to match the SPI bus.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.33:low
limit_pos_pin: gpio.32:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.3 # independent: own CS per driver
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
spi_index: -1 # always -1 in independent mode
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.35:low
limit_pos_pin: gpio.34:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.6 # independent: own CS per driver
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
spi_index: -1 # always -1 in independent mode
motor1: # Y2 - connector 3
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.11 # independent: own CS per driver
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
spi_index: -1 # always -1 in independent mode
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_5160:
r_sense_ohms: 0.1
run_amps: 1.2 # set to YOUR motor rating
hold_amps: 0.5
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: false
cs_pin: i2so.14 # independent: own CS per driver
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
spi_index: -1 # always -1 in independent mode
i2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.5
# ---- OLED display ----
i2c0:
sda_pin: gpio.27
scl_pin: gpio.25
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) - DISABLED ----
# On this board UART2 uses gpio.27 / gpio.25, the SAME pins as the OLED above.
# You can run the OLED or the pendant, never both. The OLED is enabled here.
# To use a pendant instead: delete the i2c0 and oled blocks, then uncomment:
# uart2:
# txd_pin: gpio.27
# rxd_pin: gpio.25
# rts_pin: NO_PIN
# cts_pin: NO_PIN
# baud: 1000000
# mode: 8N1
# uart_channel2:
# report_interval_ms: 75
# uart_num: 2
start:
must_home: false
----
===== V5.77 Carrier =====
V5.77 Carrier has no external SPI driver header, so only Normal (step/dir) mode applies.
==== Normal / Standalone mode ====
board: V577 CARRIER
name: XYYZ TMC5160 V5 - Normal / Standalone mode (step-dir-enable only)
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V5.77 Carrier
# Mode: Normal / Standalone mode (step-dir-enable only)
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the DIP switch, not this file.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.42:low
limit_pos_pin: gpio.41:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.40:low
limit_pos_pin: gpio.39:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
motor1: # Y2 - connector 3
limit_neg_pin: gpio.38:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: gpio.37:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
i2so:
bck_pin: gpio.16
data_pin: gpio.17
ws_pin: gpio.18
spi:
miso_pin: gpio.2
mosi_pin: gpio.1
sck_pin: gpio.21
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.9
# ---- OLED display ----
i2c0:
sda_pin: gpio.14
scl_pin: gpio.13
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) ----
# Independent of the OLED on this board; delete if unused.
uart2:
txd_pin: gpio.0
rxd_pin: gpio.35
rts_pin: NO_PIN
cts_pin: NO_PIN
baud: 1000000
mode: 8N1
uart_channel2:
report_interval_ms: 75
uart_num: 2
start:
must_home: false
----
===== V4.7B =====
V4.7B has no external SPI driver header, so only Normal (step/dir) mode applies.
==== Normal / Standalone mode ====
board: V47B
name: XYYZ TMC5160 V5 - Normal / Standalone mode (step-dir-enable only)
# ---------------------------------------------------------------
# PiBot SilentStep TMC5160 V5 + PiBot V4.7B
# Mode: Normal / Standalone mode (step-dir-enable only)
# Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers)
#
# Before use, set your own: steps_per_mm, travel, limit pins, homing direction.
# Limit pins follow this board's own test YAML; NO_PIN where none is documented.
# In this mode current and microsteps come from the DIP switch, not this file.
# ---------------------------------------------------------------
stepping:
engine: I2S_STATIC
idle_ms: 250
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # X - connector 1
limit_neg_pin: gpio.33:low
limit_pos_pin: gpio.32:low
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.2
direction_pin: I2SO.1
disable_pin: I2SO.0
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Y1 - connector 2
limit_neg_pin: gpio.35:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
motor1: # Y2 - connector 3
limit_neg_pin: gpio.34:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.10
direction_pin: I2SO.9
disable_pin: I2SO.8
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 1000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0: # Z - connector 4
limit_neg_pin: gpio.39:low
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
i2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.5
# ---- OLED display ----
i2c0:
sda_pin: gpio.27
scl_pin: gpio.25
oled:
i2c_num: 0
i2c_address: 60
width: 128
height: 64
radio_delay_ms: 1000
# ---- Pendant / I/O Expander (UART2) - DISABLED ----
# On this board UART2 uses gpio.27 / gpio.25, the SAME pins as the OLED above.
# You can run the OLED or the pendant, never both. The OLED is enabled here.
# To use a pendant instead: delete the i2c0 and oled blocks, then uncomment:
# uart2:
# txd_pin: gpio.27
# rxd_pin: gpio.25
# rts_pin: NO_PIN
# cts_pin: NO_PIN
# baud: 1000000
# mode: 8N1
# uart_channel2:
# report_interval_ms: 75
# uart_num: 2
start:
must_home: false