====== V5.88 Ultra — Stepper Driver YAML Examples ====== Each file below is a **complete FluidNC template** for a 4-driver machine — **X / Y1 / Y2 / Z** (a dual-Y gantry) — with limit switches, probe, spindle PWM, OLED and pendant already wired to the V5.88 Ultra's real pins. **Click the file name to download it.** **These are not finished machine configs. Do not load one unchanged.** Every file carries placeholder values that describe no real machine, and one of them (''run_amps'') can overheat a motor. Work through the checklist below first. ===== Pick the file that matches your wiring ===== ^ Wiring option ^ File ^ Driver block ^ Current and microstepping come from ^ | **A** — on-board StepStick, standard step/dir | ''v588-xyyz-onboard-stepstick.yaml'' | ''stepstick'' | driver trimmer + board jumpers + ''ms3_pin'' | | **B** — external standard drivers (TB6600 / DM542 class) | ''v588-xyyz-external-standard.yaml'' | ''standard_stepper'' | the external driver's own DIP switches | | **C** — on-board SPI (TMC2130) | ''v588-xyyz-onboard-tmc2130-spi.yaml'' | ''tmc_2130'' | this file | | **D** — external SPI (SilentStep TMC5160 V5) | [[pibot_cnc_laser_series:silentstep_tmc5160_v5:yaml:start|on the TMC5160 V5 page]] | ''tmc_5160'' | DIP switches, or the YAML in SPI mode | ===== Change these before you load — every time ===== ^ # ^ Setting ^ Shipped placeholder ^ What happens if you leave it ^ | 1 | ''steps_per_mm'' | ''800'' | every distance is wrong — a 10 mm move is not 10 mm | | 2 | ''run_amps'' (SPI files only) | ''1.2'' | **a smaller motor overheats; a larger one has no torque** | | 3 | ''max_travel_mm'' | ''300'' | soft limits, once enabled, stop in the wrong place | | 4 | ''homing:'' cycle / ''positive_direction'' / ''mpos_mm'' | a generic guess | the machine homes into the wrong end of the axis | | 5 | ''limit_neg_pin'' / ''limit_pos_pin'' | this board's test-YAML pins | homing seeks a switch that may not be on that pin | | 6 | ''microsteps'' (SPI files) or the board jumpers | ''16'' | ''steps_per_mm'' no longer matches the driver | Do all six with the motors uncoupled from the machine, and leave ''soft_limits: false'' and ''hard_limits: false'' until the axis moves the right distance in the right direction. ===== The rest of what is inside ===== * **Limit pins follow this board's own test YAML.** Positions with no documented endstop are ''NO_PIN''. Read [[pibot_cnc_laser_series:v588_ultra:connect_limit_switches:start|4.1 Connect Limit Switches]] first — **PNP (sourcing) sensors are not compatible** with this board. * **The four connectors are the same six I2SO groups shown on** [[pibot_cnc_laser_series:v588_ultra:connect_stepper_drivers:start|4.2 Connect Stepper Drivers]]. To add the B and C axes, copy an existing ''motor'' block and swap in that socket's numbers. * **''max_rate_mm_per_min'' is deliberately low (1000).** Raise it only after the machine moves correctly. * **If a motor is limp and never steps, invert its enable.** FluidNC asserts ''disable_pin'' to *disable* a motor, and step/dir drivers do not agree on which level means disabled — some ordinary drivers only run once you write ''disable_pin: I2SO.0:low''. Try one axis first, then apply the same suffix to every axis using that driver model. * **''gpio.3'' is used here as the toolsetter input**, which needs jumper ⑩ set to input mode. Delete ''toolsetter_pin'' if you use GPIO.3 as an output or as a seventh axis. * The spindle, laser, 0–10 V and RS485 blocks that are not in these files can be copied from the full test YAML on [[pibot_cnc_laser_series:v588_ultra:pinout_reference:start|1 Pinout Reference]]. [[pibot_cnc_laser_series:v588_ultra:connect_stepper_drivers:start|← Back to 4.2 Connect Stepper Drivers]] ---- ===== A — On-board StepStick drivers (standard step/dir) ===== For A4988, DRV8825, TMC2208 and TMC2209 modules plugged into the sockets DRV1–DRV4. * **MS1, MS2, RST and SLP are physical jumpers** on the board and are shared by all six sockets, so they stay ''NO_PIN'' in the file. * **MS3 is the only microstep bit that lives in the YAML** — the MSP3 row on the board has an unconnected centre pin. ''ms3_pin: I2SO.n'' drives MS3 high; ''ms3_pin: I2SO.n:low'' drives it low. * Set the driver current with the trimmer on each module, following that driver's own datasheet. board: PiBot V5.88 Ultra name: XYYZ on-board StepStick drivers (standard step/dir) # --------------------------------------------------------------- # PiBot V5.88 Ultra - 4.2 Connect Stepper Drivers # Mode: A - on-board StepStick, standard step/dir # Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers) # # Before use, set your own: steps_per_mm, travel, homing direction, # and check every limit pin against your real switches. # Limit pins follow this board's own test YAML; NO_PIN where none # is documented. This is a starting point, not a finished machine. # # ENABLE POLARITY: FluidNC asserts disable_pin to DISABLE a motor, but # step/dir drivers do not agree on which level means disabled. If a motor # is limp and never steps while STP and DIR look right, invert it: # disable_pin: I2SO.0:low # Some ordinary drivers only run that way. Try one axis, then do the rest. # # MS1 / MS2 / RST / SLP are physical jumpers on the board and are # shared by all six sockets, so they stay NO_PIN here. # MS3 has no jumper - it is the only microstep bit set in this file. # ms3_pin: I2SO.n -> MS3 = 1 (logic high) # ms3_pin: I2SO.n:low -> MS3 = 0 (logic low) # A4988 : MS1=1 MS2=1 MS3=1 -> 1/16 step # DRV8825 : MS1=1 MS2=1 MS3=1 -> 1/32 step # TMC2209 : MS1=1 MS2=1 -> 1/16 step, and that socket pin is # PDN, not MS3 - use ms3_pin: I2SO.n:low to keep the # standstill current reduction the chip enables by default. # --------------------------------------------------------------- stepping: engine: I2S_STATIC idle_ms: 250 pulse_us: 4 dir_delay_us: 1 disable_delay_us: 0 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 - socket DRV1 / terminal 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 stepstick: step_pin: I2SO.2 direction_pin: I2SO.1 disable_pin: I2SO.0 # add :low if the driver runs inverted ms1_pin: NO_PIN # MSP1 jumper on the board ms2_pin: NO_PIN # MSP2 jumper on the board ms3_pin: I2SO.3 # MS3 = 1 (add :low for MS3 = 0) reset_pin: NO_PIN # RSTP1 jumper on the board 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 - socket DRV2 / terminal 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 stepstick: step_pin: I2SO.5 direction_pin: I2SO.4 disable_pin: I2SO.7 # add :low if the driver runs inverted ms1_pin: NO_PIN # MSP1 jumper on the board ms2_pin: NO_PIN # MSP2 jumper on the board ms3_pin: I2SO.6 # MS3 = 1 (add :low for MS3 = 0) reset_pin: NO_PIN # RSTP1 jumper on the board motor1: # Y2 - socket DRV3 / terminal 3 limit_neg_pin: gpio.38:low limit_pos_pin: NO_PIN limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 stepstick: step_pin: I2SO.10 direction_pin: I2SO.9 disable_pin: I2SO.8 # add :low if the driver runs inverted ms1_pin: NO_PIN # MSP1 jumper on the board ms2_pin: NO_PIN # MSP2 jumper on the board ms3_pin: I2SO.11 # MS3 = 1 (add :low for MS3 = 0) reset_pin: NO_PIN # RSTP1 jumper on the board 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 - socket DRV4 / terminal 4 limit_neg_pin: gpio.37:low limit_pos_pin: NO_PIN limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 stepstick: step_pin: I2SO.13 direction_pin: I2SO.12 disable_pin: I2SO.15 # add :low if the driver runs inverted ms1_pin: NO_PIN # MSP1 jumper on the board ms2_pin: NO_PIN # MSP2 jumper on the board ms3_pin: I2SO.14 # MS3 = 1 (add :low for MS3 = 0) reset_pin: NO_PIN # RSTP1 jumper on the board 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 # ---- Probe and toolsetter ---- # gpio.3 is only an input when jumper 10 selects input mode. probe: pin: gpio.47:low toolsetter_pin: gpio.3:low check_mode_start: true hard_stop: false # ---- Spindle / laser PWM on the 5 V output header ---- pwm: pwm_hz: 5000 output_pin: gpio.45 enable_pin: NO_PIN direction_pin: NO_PIN disable_with_s0: false s0_with_disable: true tool_num: 0 speed_map: 0=0.000% 10000=100.000% off_on_alarm: false # ---- 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 this pair 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 ---- ===== B — External standard drivers ===== For TB6600, DM420, DM542, DM556 and closed-loop drivers wired to the white **EN / STP / DIR / GND** terminals. Set the VDD logic jumper ⑨ to **5 V**. * There are no microstep pins to control from the firmware, so the plain ''standard_stepper'' block is all that is needed. * Current and microstepping are set on the driver's own DIP switches — but microstepping still decides ''steps_per_mm''. * The on-board sockets stay empty for these axes, and **Vmot-Driver is not needed**. board: PiBot V5.88 Ultra name: XYYZ external standard drivers (TB6600 / DM542 class) # --------------------------------------------------------------- # PiBot V5.88 Ultra - 4.2 Connect Stepper Drivers # Mode: B - external standard drivers, step/dir/enable only # Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers) # # Before use, set your own: steps_per_mm, travel, homing direction, # and check every limit pin against your real switches. # Limit pins follow this board's own test YAML; NO_PIN where none # is documented. This is a starting point, not a finished machine. # # ENABLE POLARITY: FluidNC asserts disable_pin to DISABLE a motor, but # step/dir drivers do not agree on which level means disabled. If a motor # is limp and never steps while STP and DIR look right, invert it: # disable_pin: I2SO.0:low # Some ordinary drivers only run that way. Try one axis, then do the rest. # # Current and microstepping come from the external driver's own DIP # switches, not from this file - but microstepping still decides # steps_per_mm. Set the VDD logic jumper to 5 V for these drivers. # --------------------------------------------------------------- stepping: engine: I2S_STATIC idle_ms: 250 pulse_us: 4 dir_delay_us: 1 disable_delay_us: 0 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 - socket DRV1 / terminal 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 # add :low if the driver runs inverted 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 - socket DRV2 / terminal 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 # add :low if the driver runs inverted motor1: # Y2 - socket DRV3 / terminal 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 # add :low if the driver runs inverted 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 - socket DRV4 / terminal 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 # add :low if the driver runs inverted 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 # ---- Probe and toolsetter ---- # gpio.3 is only an input when jumper 10 selects input mode. probe: pin: gpio.47:low toolsetter_pin: gpio.3:low check_mode_start: true hard_stop: false # ---- Spindle / laser PWM on the 5 V output header ---- pwm: pwm_hz: 5000 output_pin: gpio.45 enable_pin: NO_PIN direction_pin: NO_PIN disable_with_s0: false s0_with_disable: true tool_num: 0 speed_map: 0=0.000% 10000=100.000% off_on_alarm: false # ---- 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 this pair 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 ---- ===== C — On-board SPI (TMC2130) drivers ===== For SPI-mode TMC modules in the sockets DRV1–DRV4, with the SPI jumper block ⑱ installed, the MS / RST / SLP jumpers ⑪ removed, and the VDD logic jumper ⑨ on **3.3 V**. * Each motor has its own ''cs_pin'' — that is the same MS3 line, and ''spi_index: -1'' means independent chip select rather than a daisy chain. * **''run_amps: 1.2'' is a placeholder.** Set it to your motor's rated current before you run anything. * **Leave ''toff_disable'' at 0.** It is the TOFF value used while the driver is disabled, and TOFF 0 means "driver disable, all bridges off". A non-zero value keeps the power stage chopping while the motor is supposed to be off. * ''r_sense_ohms: 0.110'' matches the common TMC2130 StepStick. Check the sense resistors on your own module if the current comes out wrong. board: PiBot V5.88 Ultra name: XYYZ on-board TMC2130 SPI drivers # --------------------------------------------------------------- # PiBot V5.88 Ultra - 4.2 Connect Stepper Drivers # Mode: C - on-board SPI (TMC2130), independent chip select # Axes: X / Y1 / Y2 / Z (dual-Y gantry, 4 drivers) # # Before use, set your own: steps_per_mm, travel, homing direction, # and check every limit pin against your real switches. # Limit pins follow this board's own test YAML; NO_PIN where none # is documented. This is a starting point, not a finished machine. # # ENABLE POLARITY: FluidNC asserts disable_pin to DISABLE a motor, but # step/dir drivers do not agree on which level means disabled. If a motor # is limp and never steps while STP and DIR look right, invert it: # disable_pin: I2SO.0:low # Some ordinary drivers only run that way. Try one axis, then do the rest. # # Current and microstepping come from the tmc_2130 blocks below. # Set run_amps to your motor's rating - do not leave the 1.2 A # placeholder. Install the SPI jumper block, remove the MS / RST / # SLP jumpers, and set the VDD logic jumper to 3.3 V. # # toff_disable is the TOFF register value used while the driver is # disabled. TOFF 0 means 'driver disable, all bridges off', so leave # it at 0 - that is the FluidNC default and what every official # FluidNC example uses. A non-zero value keeps the power stage # chopping while the motor is supposed to be off, so the motor stays # energised and hot. FluidNC only writes this value when # use_enable is true, so a non-zero value here is a trap that only # springs once someone switches use_enable on. # --------------------------------------------------------------- stepping: engine: I2S_STATIC idle_ms: 250 pulse_us: 4 dir_delay_us: 1 disable_delay_us: 0 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 - socket DRV1 / terminal 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_2130: cs_pin: i2so.3 # this socket's MS3 / CS output spi_index: -1 # independent CS, not a daisy chain r_sense_ohms: 0.110 run_amps: 1.2 # SET THIS to your motor hold_amps: 0.1 microsteps: 16 stallguard: 0 stallguard_debug: false toff_disable: 0 # 0 = bridges off when disabled (FluidNC default) toff_stealthchop: 5 toff_coolstep: 3 run_mode: CoolStep homing_mode: CoolStep use_enable: false step_pin: I2SO.2 direction_pin: I2SO.1 disable_pin: I2SO.0 # add :low if the driver runs inverted 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 - socket DRV2 / terminal 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_2130: cs_pin: i2so.6 # this socket's MS3 / CS output spi_index: -1 # independent CS, not a daisy chain r_sense_ohms: 0.110 run_amps: 1.2 # SET THIS to your motor hold_amps: 0.1 microsteps: 16 stallguard: 0 stallguard_debug: false toff_disable: 0 # 0 = bridges off when disabled (FluidNC default) toff_stealthchop: 5 toff_coolstep: 3 run_mode: CoolStep homing_mode: CoolStep use_enable: false step_pin: I2SO.5 direction_pin: I2SO.4 disable_pin: I2SO.7 # add :low if the driver runs inverted motor1: # Y2 - socket DRV3 / terminal 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_2130: cs_pin: i2so.11 # this socket's MS3 / CS output spi_index: -1 # independent CS, not a daisy chain r_sense_ohms: 0.110 run_amps: 1.2 # SET THIS to your motor hold_amps: 0.1 microsteps: 16 stallguard: 0 stallguard_debug: false toff_disable: 0 # 0 = bridges off when disabled (FluidNC default) toff_stealthchop: 5 toff_coolstep: 3 run_mode: CoolStep homing_mode: CoolStep use_enable: false step_pin: I2SO.10 direction_pin: I2SO.9 disable_pin: I2SO.8 # add :low if the driver runs inverted 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 - socket DRV4 / terminal 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_2130: cs_pin: i2so.14 # this socket's MS3 / CS output spi_index: -1 # independent CS, not a daisy chain r_sense_ohms: 0.110 run_amps: 1.2 # SET THIS to your motor hold_amps: 0.1 microsteps: 16 stallguard: 0 stallguard_debug: false toff_disable: 0 # 0 = bridges off when disabled (FluidNC default) toff_stealthchop: 5 toff_coolstep: 3 run_mode: CoolStep homing_mode: CoolStep use_enable: false step_pin: I2SO.13 direction_pin: I2SO.12 disable_pin: I2SO.15 # add :low if the driver runs inverted 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 # ---- Probe and toolsetter ---- # gpio.3 is only an input when jumper 10 selects input mode. probe: pin: gpio.47:low toolsetter_pin: gpio.3:low check_mode_start: true hard_stop: false # ---- Spindle / laser PWM on the 5 V output header ---- pwm: pwm_hz: 5000 output_pin: gpio.45 enable_pin: NO_PIN direction_pin: NO_PIN disable_with_s0: false s0_with_disable: true tool_num: 0 speed_map: 0=0.000% 10000=100.000% off_on_alarm: false # ---- 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 this pair 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 ---- ===== D — External SPI drivers ===== The PiBot SilentStep TMC5160 V5 files, in Normal, SPI Daisy Chain and SPI Independent modes, live on their own page together with the V4.96, V5.77 and V4.7B versions: * [[pibot_cnc_laser_series:silentstep_tmc5160_v5:yaml:start|TMC5160 V5 — Complete 4-Axis YAML Examples]] * [[pibot_cnc_laser_series:silentstep_tmc5160_v5:start|SilentStep TMC5160 V5 manual]] ---- [[pibot_cnc_laser_series:v588_ultra:connect_stepper_drivers:start|← Back to 4.2 Connect Stepper Drivers]] · [[pibot_cnc_laser_series:v588_ultra:pinout_reference:start|1 Pinout Reference]] · [[pibot_cnc_laser_series:v588_ultra:connect_limit_switches:start|4.1 Connect Limit Switches]]