Table of Contents

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

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.

← Back to the TMC5160 V5 manual


V5.88 Ultra

Normal / Standalone mode

v588-xyyz-tmc5160v5-normal.yaml
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

v588-xyyz-tmc5160v5-daisy.yaml
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

v588-xyyz-tmc5160v5-independent.yaml
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

v496-xyyz-tmc5160v5-normal.yaml
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

v496-xyyz-tmc5160v5-daisy.yaml
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

v496-xyyz-tmc5160v5-independent.yaml
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

v577-xyyz-tmc5160v5-normal.yaml
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

v47b-xyyz-tmc5160v5-normal.yaml
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