User Tools

Site Tools


pibot_cnc_laser_series:silentstep_tmc5160_v5:start

CURRENT MODEL · UNIVERSAL STEP/DIR · OPTIONAL SPI

PiBot SilentStep TMC5160 V5 Stepper Driver

A TMC5160-based external stepper driver that accepts standard EN / STEP / DIR signals, so it works with practically any CNC controller — PiBot boards, GRBL boards, breakout boards and PLCs alike — with switchable 3.3V or 5V logic. On a controller that supports TMC5160 over SPI it can additionally run in SPI mode, where current, microstepping and StealthChop are set from the configuration file instead of the DIP switch.

TMC5160A-TA chip0.1Ω sense · up to 3.3A peak/phaseStealthChop silent modeWorks with any step/dir controller24V inputABN encoder input
PiBot SilentStep TMC5160 V5 driver board
Read before wiring. This board's input is rated 24V DC only — it is not the wide 8–40V range of the earlier V4 driver. Reverse-polarity and surge protection are built in, but reverse connection should still be avoided. Change DIP switches, jumpers or wiring only with power off. The enable (EN) input is active-low and every driver must share a common GND with its controller.

Section 1Overview and what changed from V4

Not limited to PiBot controllers. In Normal (standalone) mode this board only needs three logic signals — EN, STEP (CLK) and DIR — plus a shared GND, and its logic level is jumper-selectable between 3.3V and 5V. That makes it a drop-in external driver for essentially any CNC control board, GRBL board, breakout board or PLC that puts out step/dir/enable. The wiring chapter documents the four current PiBot controllers in detail because those are the boards PiBot can guarantee pin-for-pin; the SPI modes do require a controller with TMC5160 SPI support.

The V5 board carries the same TMC5160 silent stepper driver chip as the earlier SilentStep TMC5160 V4, in the same 56×42mm footprint, and keeps the same feature set — including the ABN encoder input and the DIAG0/DIAG1 fault outputs, both of which the V4 already had. Two things genuinely changed, and both concern power:

What actually changed from V4 to V5

  • Input voltage is now 24V DC only. V4 accepted 8–40V. V5 trades that range for built-in reverse-polarity and surge protection on the 24V rail.
  • No heatsink required under normal use. V4 shipped with a 30×20×10mm heatsink and needed it; V5 does not include one and does not need one.

Everything else — the TMC5160A chip, the 0.1Ω sense resistors, the 8-position DIP switch, the encoder header, the DIAG header, the mode jumpers and the board outline — carries over from V4.

Package contents

  • SilentStep TMC5160 V5 driver × 1
  • Jumper cap pack × 1
  • XH2.54 4-pin cable × 2

Optional accessory: A4988 Socket-to-SPI Breakout Module × 1 — only needed for SPI independent mode on V5.88 Ultra / V4.96 Pro (see section 5).

No heatsink is included with V5; none is required for normal operation.

Four PiBot SilentStep TMC5160 V5 driver boards
One board per axis — a typical 4-axis machine (X, Y1, Y2, Z) uses four of these driver boards.

Section 2PinMap and board callouts

PiBot SilentStep TMC5160 V5 PinMap
Click for the full-resolution PinMap.

1Motor output

4-pin terminal — A+ A- B+ B- to the two motor coils.

2Power input

2-pin terminal, 24V DC only, plus a separate GND pin. Reverse-polarity Schottky diode and a 33V surge-clamp diode protect this input.

3DIAG0 / DIAG1 / GND

Chip fault/status outputs, broken out to a 3-pin header. See section 7.

4Logic voltage selection

3-pin jumper: 3.3V or 5V. Set it to match the signal voltage of whatever is driving EN/STEP/DIR or SPI — 5V for a typical step/dir controller, 3.3V for SPI (PiBot's I2S/SPI bus runs 3.3V).

5Encoder interface

5-pin header: N B A GND 5V for an ABN incremental encoder. Shares silicon with the CFG4/CFG5/CFG6 standalone-mode DIP bits — see the warning in section 4.

6SD_MODE jumper

3-pin jumper, 0 or 1. Combines with SPI_MODE to select the operating mode — see section 3.

7SPI_MODE jumper

3-pin jumper, 0 or 1. Combines with SD_MODE — see section 3.

8SPI input header

4-pin: MOSI SCK MISO CS. Used only when SPI_MODE selects an SPI mode.

9Normal input header

4-pin: EN STEP(CLK) DIR GND. Used in Standalone mode and in SPI mode 3 (SPI config + hardware step/dir).

108-position DIP switch (M1–M7, NULL)

Sets microstepping, run current, chopper mode and hold-current reduction when the board is in Standalone mode. See section 4 for the corrected table.

Section 3Choose an operating mode

The TMC5160 chip's SD_MODE and SPI_MODE pins (jumpers 6 and 7 above) select between four operating modes. PiBot boards use only two of them:

SD_MODESPI_MODEModeUsed by PiBot?
00UART single-wire interfaceNot used by any PiBot mainboard. Consult the TMC5160 datasheet directly if you need it.
01SPI interface, fully autonomous internal ramp generator (no external step/dir needed)Not used by PiBot's stock firmware.
10Standalone / pin-controlled ("Normal") mode — hardware EN/STEP/DIR inputs; microstep, current, chopper and hold-current all set by the DIP switch.Yes. This is the "Normal mode" wiring shown for every controller in section 6.
11SPI-configured mode — hardware STEP/DIR inputs for motion, SPI bus sets microstep/current/chopper/StallGuard from the FluidNC YAML.Yes. This is "SPI Daisy Chain" and "SPI Independent" mode in section 6.

Standalone mode

Simplest wiring — only EN/STEP/DIR/GND. Current and microstepping are fixed by the physical DIP switch (section 4) and can't be changed from software. Good for a quick bench test or a machine where per-axis tuning isn't needed.

SPI mode

Adds MOSI/SCK/MISO/CS wiring. Current, microstepping, StealthChop/CoolStep and StallGuard are all set in the FluidNC YAML (tmc_5160: block) and can be tuned without touching the board. The DIP switch position becomes irrelevant to current/microstep (leave it at the shipped default).

Section 4Standalone mode: DIP switch configuration

This table replaces the microstep table on the old V4 page, which had an error. It is traced directly from the V5 schematic (each DIP position to its TMC5160 CFG pin) and cross-checked against the official TMC5160 datasheet's standalone-mode configuration tables (p.117–118). Change DIP positions only with power off.

Each of the 8 switches is either down (factory default) or up. For every switch except M4, down = logic 0, up = logic 1. M4 is inverted: down = logic 1, up = logic 0 — this is because M4 drives the chip's CFG3/CSN pin, which the board pulls high by default so the SPI chip-select line is inactive until you deliberately select it. NULL (position 8) is unused.

CFG3 pull-up explanation for the inverted M4 switch
Board schematic: the 10kΩ pull-up on CSN/CFG3 (R26) is what inverts M4.
DIPChip pinControlsPolarity
M1CFG1Microstep resolution (with M2)Normal (down=0, up=1)
M2CFG0Normal (down=0, up=1)
M3CFG4Run current IRUN (with M4, M5)Normal (down=0, up=1)
M4CFG3 / CSNInverted (down=1, up=0)
M5CFG2Normal (down=0, up=1)
M6CFG5Chopper mode (SpreadCycle / StealthChop)Normal (down=0, up=1)
M7CFG6Hold-current reductionNormal (down=0, up=1)
NULL—Unused—

Microstep resolution — M1 / M2

M1M2Microsteps
DownDown8
DownUp16
UpDown32
UpUp64

Standalone mode only offers these four microstep settings. Fullstep or fine settings like 1/128 and 1/256 require SPI mode with the YAML microsteps: field.

Run current — M3 / M4 / M5 (with actual amps)

M3, M4 and M5 select one of eight current steps. The chip calls the setting IRUN, which is only a relative scale — so the table below converts each step into the actual motor current in amps for this board's 0.1Ω sense resistors. Remember M4 is inverted.

M3M4M5IRUNCurrent per coil (RMS)Peak
DownUpDown161.22 A — lowest1.73 A
DownUpUp181.36 A1.93 A
DownDownDown201.51 A — factory default2.13 A
DownDownUp221.65 A2.34 A
UpUpDown241.80 A2.54 A
UpUpUp261.94 A2.74 A
UpDownDown282.08 A2.95 A
UpDownUp312.30 A — highest3.25 A
The lowest setting is still 1.22 A RMS. These eight steps do not go down to zero. If your motor is rated below about 1.2 A per phase, even the minimum DIP setting will overheat it — choose a larger motor, or use SPI mode where run_amps can be set to any value. Always match the setting to your motor's rated phase current, never to the driver's maximum.
Where these numbers come from. TMC5160 datasheet, section 9 "Selecting Sense Resistors":
I_RMS = (GLOBALSCALER/256) × ((CS+1)/32) × (V_FS / R_SENSE) × 1/√2
On this board R_SENSE = 0.1Ω and V_FS = 0.325 V. In standalone mode nothing ever writes to the chip over SPI, so GLOBALSCALER stays at its reset default, which the datasheet defines as full scale (256) — making that term equal 1. CS is the IRUN value from M3/M4/M5. As a check, IRUN=31 gives 2.30 A RMS / 3.25 A peak, matching the datasheet's own sense-resistor table (2.3 A / 3.3 A at 0.1Ω).
Tolerance: the chip's full-scale current tolerance is ±5%, before sense-resistor tolerance. Treat these as nominal values and verify on your own machine if the motor runs near its thermal limit.

If none of these eight steps matches your motor well, that is the main reason to use an SPI mode instead: its YAML run_amps: and hold_amps: fields set any current you want, in amps, and can be changed without touching the board.

Chopper mode — M6

M6Result
Down (factory default)SpreadCycle — more torque headroom, more audible
UpStealthChop — the silent mode this driver is named for

Hold-current reduction — M7

M7Result
Down (factory default)No reduction — hold current equals run current
UpHold current reduced to 50% of run current at standstill
Datasheet caveat: if M6 and M7 are set to different positions, the chip's CFG6 pin can draw a significant current unless the board's logic-voltage jumper (callout 4) is set to 3.3V. If you need M6 ≠ M7 in standalone mode, set logic voltage to 3.3V.
Encoder header shares these pins. The ABN encoder header (callout 5) is wired to the same CFG4/CFG5/CFG6 nets as M3/M6/M7. Do not use the encoder input at the same time as standalone pin-configured mode; encoder feedback is only meaningful in SPI mode, and M3/M6/M7 should be left in their default (down) position when the encoder header is in use.

The as-shipped default (all eight switches down) is 8 microsteps, IRUN=20, SpreadCycle, no hold-current reduction — a safe low-current starting point, which is why every connection diagram in section 6 labels this the "DIP setting for min current."

Section 5Connect to a PiBot controller

All four current PiBot FluidNC controllers use the same I2S shift-register (I2SO.x) numbering for their first four external-driver connector positions, so this pin table applies whichever controller you use:

Connector positionDisable (EN)DirectionStepSPI CS (SPI modes only)
1st (often "X")I2SO.0I2SO.1I2SO.2I2SO.3
2nd (often "Y")I2SO.7I2SO.4I2SO.5I2SO.6
3rd (often "Y1"/"Z")I2SO.8I2SO.9I2SO.10I2SO.11
4th (often "Z"/"A")I2SO.15I2SO.12I2SO.13I2SO.14
New to FluidNC? Start from a complete file instead of the snippets below. The YAML fragments in this section show only the driver block for one motor, so you can see what changes per mode. If you want something that just works, download a full 4-axis (X / Y1 / Y2 / Z) configuration for your exact mainboard and mode here: Complete 4-axis YAML examples →
Which axis letter you assign to each connector (X/Y/Z/A, or a dual-Y "Y1/Y2" naming) is a YAML/kinematics choice, not a hardware constraint — use whichever axis name matches your own machine and its Pinout Reference / test YAML. The diagrams below show a typical X, Y1, Y2, Z layout for a 4-axis machine.

5.1 V5.88 Ultra

V5.88 Ultra does have six on-board driver sockets, but the TMC5160 V5 does not use them. The board provides a separate set of EN / STP / DIR signal terminals dedicated to external drivers (item 13 on the V5.88 Pinout Reference), and unlike V4.96 Pro these need no slot jumper caps. Leave the on-board sockets empty — the single exception is SPI Independent mode, where the A4988 Socket-to-SPI Breakout Module plugs into one on-board socket purely to break out the SPI bus.

Normal (Standalone) mode

1
Set Logic voltage selection to 5V on the TMC5160 V5 boards, and set the driver logic jumper on V5.88 Ultra to 5V to match.
2
Wire EN/STP(CLK)/DIR/GND from each DRV connector on V5.88 Ultra to the matching Normal-input header on each TMC5160 V5 board.
3
Set SD_MODE=1, SPI_MODE=0 on each driver board, and set the DIP switches per section 4.
motor0:
  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.2        # 1st connector
    direction_pin: I2SO.1
    disable_pin: I2SO.0
V5.88 Ultra connected to four TMC5160 V5 drivers in Normal mode
V5.88 Ultra → four TMC5160 V5 drivers, Normal mode.

SPI Daisy Chain mode

1
Set Logic voltage selection to 3.3V on every TMC5160 V5 board and on the V5.88 Ultra stepper-driver VDD jumper, to match the 3.3V SPI bus.
2
Set SD_MODE=1, SPI_MODE=1 on every driver board (the DIP switches stay at their default; current/microsteps now come from YAML).
3
Wire MOSI/SCK/MISO from V5.88 Ultra to all four boards in a daisy chain; only the first board's CS connects to I2SO.3, the rest chain SPI internally.
motor0: # 1st axis only sets cs_pin
  tmc_5160:
    r_sense_ohms: 0.1
    run_amps: 1.2
    hold_amps: 0.5
    microsteps: 16
    stallguard: 0
    toff_disable: 0
    toff_stealthchop: 5
    toff_coolstep: 3
    run_mode: CoolStep
    homing_mode: CoolStep
    use_enable: false
    cs_pin: i2so.3
    step_pin: I2SO.2
    direction_pin: I2SO.1
    disable_pin: I2SO.0
    spi_index: 1
    # 2nd/3rd/4th axis: spi_index 2/3/4, no cs_pin
V5.88 Ultra connected to four TMC5160 V5 drivers in SPI daisy chain mode
V5.88 Ultra → four TMC5160 V5 drivers, SPI Daisy Chain mode.

SPI Independent mode

1
Requires the optional A4988 Socket-to-SPI Breakout Module plugged into an on-board StepStick slot, with its jumper set to feed SPI into that slot.
2
Each of the four TMC5160 V5 boards gets its own CS line: I2SO.3, I2SO.6, I2SO.11, I2SO.14 (per the table above), plus shared MOSI/SCK/MISO.
3
Logic voltage selection stays at 3.3V on every board, same as daisy chain.
motor0: # repeat per axis with its own cs_pin
  tmc_5160:
    r_sense_ohms: 0.1
    run_amps: 1.2
    hold_amps: 0.5
    microsteps: 16
    stallguard: 0
    toff_disable: 0
    toff_stealthchop: 5
    toff_coolstep: 3
    run_mode: CoolStep
    homing_mode: CoolStep
    use_enable: false
    cs_pin: i2so.3          # .3 / .6 / .11 / .14 per axis
    step_pin: I2SO.2
    direction_pin: I2SO.1
    disable_pin: I2SO.0
    spi_index: -1           # -1 on every axis
V5.88 Ultra connected to four TMC5160 V5 drivers in SPI independent mode
V5.88 Ultra → four TMC5160 V5 drivers, SPI Independent mode (with A4988 Socket-to-SPI Breakout Module).

Verify SPI communication — the $MI command

After wiring either SPI mode, confirm the controller can actually talk to every driver before you let a motor move. In the FluidNC console (WebUI or FluidTerm) send:

$MI

FluidNC reports the TMC drivers it found on the SPI bus, one line per driver. This applies to both SPI Daisy Chain and SPI Independent mode, on V5.88 Ultra and V4.96 Pro alike.

FluidNC $MI command output listing detected TMC drivers
Example $MI output.

Pass

Every driver you wired is listed, with sensible values. Only then proceed to a slow test jog.

Fail — what to check

  • Logic voltage selection set to 3.3V on every driver board and on the mainboard's driver VDD jumper.
  • SD_MODE = 1 and SPI_MODE = 1 on every driver board.
  • Daisy chain: cs_pin on the first axis only, spi_index counting 1, 2, 3, 4 along the chain.
  • Independent: each axis has its own cs_pin, and every spi_index is -1.
  • MOSI / SCK / MISO and a common GND actually reach every board.
  • Driver boards powered — 24V must be present, not just the logic supply.

5.2 V4.96 Pro

V4.96 Pro's six motor slots each support on-board StepStick, on-board SPI (TMC2130) or external drivers — the wiring below is for using the external connector output. Insert the slot jumper caps for the positions you're using externally, and remove any on-board StepStick/MS1/MS2/RST/SLP jumpers for those same slots.

From V4.96 Pro onward, the 47–100Ω resistor that the older V4.9PB needed between MISO, MOSI and SCK for SPI daisy chain is no longer required.

Normal mode

V4.96 Pro connected to four TMC5160 V5 drivers in Normal mode
Same standard_stepper YAML pattern as section 5.1.

SPI Daisy Chain mode

V4.96 Pro connected to four TMC5160 V5 drivers in SPI daisy chain mode
Same tmc_5160 daisy-chain YAML pattern as section 5.1, CS on I2SO.3 only.
V4.96 Pro connected to four TMC5160 V5 drivers in SPI independent mode
SPI Independent mode — same A4988 Socket-to-SPI Breakout Module and per-axis CS (I2SO.3/.6/.11/.14) as section 5.1.

5.3 V5.77 Carrier

Normal mode only. V5.77 Carrier has no on-board driver sockets and no external SPI driver header — there is no SPI breakout to feed MOSI/SCK/MISO/CS to an external TMC5160. Every axis is already a logic-level EN/STP/DIR/GND output for an external driver, so the TMC5160 V5 runs here in Normal (step/dir) mode, with current and microstepping set by the DIP switch.
V5.77 Carrier connected to four TMC5160 V5 drivers in Normal mode
V5.77 Carrier → four TMC5160 V5 drivers, Normal mode. Set the I2SO logic-voltage jumper on V5.77 to match the TMC5160 V5's own Logic voltage selection (5V for Normal mode).

5.4 V4.7B

Normal mode only. V4.7B likewise has no on-board driver sockets and no external SPI driver header. All six motor positions are EN/STP/DIR/GND logic outputs for external drivers, so the TMC5160 V5 runs here in Normal (step/dir) mode, with current and microstepping set by the DIP switch.
V4.7B connected to four TMC5160 V5 drivers in Normal mode
V4.7B → four TMC5160 V5 drivers, Normal mode. V4.7B's logic voltage is fixed at 5V, so set Logic voltage selection to 5V on every TMC5160 V5 board.

5.5 Mixing driver types

Not compatible

SPI mode is not compatible with Standalone mode on the same SPI/I2S bus. On-board SPI drivers (e.g. TMC2130) and external SPI TMC5160 V5 drivers cannot be mixed on a V4.96 Pro at the same time.

Compatible

On-board StepStick drivers can be mixed with TMC5160 V5 in Normal mode on different slots of the same controller, as long as each slot's jumpers match what that slot is actually driving.

Section 6Encoder and DIAG outputs

ABN encoder input

The TMC5160 supports feeding an ABN incremental encoder directly into the chip for closed-loop position/stall feedback, rather than returning encoder signals to the main controller. This only works in an SPI-controlled mode (not Standalone), and it reuses the CFG4/CFG5/CFG6 pins — see the warning in section 4. Configuration details are in the TMC5160 datasheet (linked in section 9).

DIAG0 / DIAG1 fault outputs

Broken out to a 3-pin header for wiring into a spare controller GPIO if you want hardware fault detection (overtemperature, short-circuit, StallGuard, etc.) instead of polling status over SPI. See the TMC5160 datasheet for the specific fault conditions each pin can report.

Section 7Main parameters

ParameterValue
Driver chipTMC5160A-TA-T (Trinamic/Analog Devices)
Input voltage (this board)24V DC nominal, reverse-polarity and 33V surge-clamp protected. Not the wide range of the earlier V4 driver.
Sense resistor0.1Ω (100mΩ) per phase
Peak coil currentUp to 3.3A (same sense resistor as V4; consult the TMC5160 datasheet before changing sense resistors)
Logic / signal voltageSelectable 3.3V or 5V (jumper)
Microstepping8/16/32/64 in Standalone mode; full SPI microstep range (down to 1/256) in SPI mode via YAML
Chopper modesSpreadCycle, StealthChop (silent)
FeedbackABN encoder input, DIAG0/DIAG1 fault outputs
HeatsinkNot required for normal use; not included
Compatible motorsNEMA17 / NEMA23 class 2-phase stepper motors
Dimensions56 × 42mm (identical footprint to V4)
Mounting holes4 × 3mm, 50.5 × 32mm spacing
The board's electrolytic output capacitors are rated 63V and the surge-clamp diode is rated 33V — some experienced users remove the surge-clamp diode to run above 24V (up to roughly the capacitor rating) at their own risk. PiBot does not support or recommend this: it is not a documented specification, and removing the protection diode voids the warranty.

Section 8Dimensions

PiBot SilentStep TMC5160 V5 board dimensions
56 × 42mm outline, unchanged from the V4 board.

Section 9Documentation and downloads

Section 10Frequently asked questions

Does the motor spin as soon as I power it on?

No — EN is active-low and must be driven low by the controller (or tied low) before the driver will move the motor. Also confirm the driver and controller share a common GND.

Can I run this at 36V or higher?

Not officially. The board is specified for 24V input only. See the note in section 8 about the surge-clamp diode.

Do I need the A4988 Socket-to-SPI Breakout Module?

Only for SPI Independent mode on V5.88 Ultra or V4.96 Pro. Normal mode and SPI Daisy Chain mode don't need it.

Can I use this on V5.77 Carrier or V4.7B in SPI mode?

No. Neither board has an external SPI driver header, so there is no way to feed the SPI bus and chip-select lines to an external TMC5160. On those two boards this driver runs in Normal (step/dir) mode, and you set current and microstepping with the DIP switch.

Questions about a specific machine build or a wiring case not covered here are welcome on the PiBot Discord or through the PiBot store support channel.

pibot_cnc_laser_series/silentstep_tmc5160_v5/start.txt · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki