Skip to main content

Tutorial for Using External Drives

External Drive Configuration Guide

Precautions

Prerequisites
  • This tutorial is based on Klipper firmware for configuration
  • The module supports two wiring methods, please choose according to your actual situation
  • After selecting a wiring method, ensure the hardware connection matches the chosen method

Module Selection

Loading...

Compatible mainboards: SUPER series, GEMINI series, E3 series

Description: The standard module only performs signal conversion without voltage boosting. If the mainboard originally outputs 3.3V, the module output remains 3.3V; if the mainboard originally outputs 5V, the module output remains 5V.

If the external drive requires 5V input while the mainboard drive signal is only 3.3V, using a standard passthrough module may cause the motor to not rotate, rotate in one direction only, or have abnormal direction behavior.

Choosing a Wiring Method

Please select the corresponding wiring method based on your hardware configuration:

Power off operation

Before selecting or changing the external drive wiring method, completely shut down the printer and disconnect the power supply. Do not wire, plug or unplug drive signal cables, or touch exposed terminals while the system is powered on.

Selection suggestion

If you are unsure which method to use, please refer to the drive module's manual or consult the manufacturer.

Wiring diagram

Loading...

Drive Microstepping Settings

Simplified setup

No drive jumper configuration is required; microstepping is set directly by the drive's onboard DIP switches.

Drive DIP Switch Settings

It is recommended to set the drive's onboard DIP switches to 3200

Power off operation

Before adjusting the drive's DIP switches, completely shut down the printer and disconnect the power supply. Do not toggle drive switches while the system is powered on.

Loading...

Microstepping Setting Explanation

Core calculation formula

Required pulses per motor revolution = rotation_distance / step_distance

A more fundamental derivation is:

Required pulses per motor revolution = full_steps_per_rotation × microsteps

Step-by-step configuration logic:

  1. Determine the motor's inherent parameters: Common motors have full_steps_per_rotation: 200 (200 full steps per revolution, i.e., 1.8°/step)
  2. Set the Klipper microsteps microsteps: Configure in the configuration file, e.g., microsteps: 16
  3. Match the drive's physical microstepping: Based on the above settings and required precision, calculate and set the drive DIP switches
    • Recommended value for this tutorial: 200 (full steps) × 16 (Klipper microsteps) = 3200 pulses/revolution
    • In this case, the drive needs to be set to 16 microsteps, and the DIP switch value should be set to 3200 (some drives display the microstep count as 16, others display the pulse count as 3200; please confirm based on the drive manual)
    • This means the drive treats each pulse sent by Klipper as 1 microstep
Configuration levelConfiguration itemSet valueDescription
Motor parametersFull steps per rotation full_steps_per_rotation200Motor's inherent attribute, typically 200 (1.8°)
Klipper configurationMicrosteps microsteps16Set in printer.cfg
Drive hardwareDIP switch microstep value3200 (16 microsteps)Physical DIP switch setting
Final resultRequired pulses per motor revolution200 × 16 = 3200Klipper needs to send 3200 pulses to rotate the motor one full revolution

If other microstepping effects are needed:

Follow the above logic, ensuring that the Klipper-configured microsteps (microsteps) is coordinated with the drive DIP switch microstep setting. For example, if microsteps: 32 is set in Klipper, the drive DIP switch should be set to 6400 (32 microsteps), achieving a total precision of 200 × 32 = 6400 pulses/revolution.

Klipper Configuration Reference

Confirm the drive manual first

Different external drives may have different EN active levels, PUL trigger edges, and minimum pulse widths. The table below only provides Klipper syntax and common starting values; the drive manual should be the final authority.

Configuration itemDescriptionConfiguration example
Driver typeNo configuration needed; set physically via the drive DIP switches
Microsteps (microsteps:)Set to 16
Loading...
Pulse duration (step_pulse_duration:)Set according to the drive manual. If not specified in the manual, start testing from 0.000005 and gradually increase based on observed behavior
Loading...
Enable pin (enable_pin:)Adjust based on the drive's EN active level:
1. Active low: add !
2. Active high: do not add !
3. Enabled on power-up: delete this line
Active low:
Loading...

Active high:
Loading...

Disable enable control: delete this line
Remove TMC driver configuration

When using an external drive, only keep the [stepper_*] configuration for the corresponding axis. If the original configuration contains TMC driver sections such as [tmc2209 ...], [tmc5160 ...], etc., delete or comment out the entire section; the TMC configuration in the image below is only for illustrating the location of standard driver configuration and does not apply to external drives.

Configuration reference diagram:

Loading...

step_pulse_duration and Direction Timing

Parameter mechanism

Klipper defaults to step_pulse_duration: 0.000002 (2µs) for non-TMC drivers (i.e., external drives). This parameter simultaneously constrains the step pulse width and the dir direction switching delay, with the dir timing always referenced to the step pulse rising edge.

In other words: if the drive requires at least 10µs between the step rising edge and the dir change, you need to set step_pulse_duration: 0.000010.

Value recommendations:

  1. Check the Minimum Step Pulse Width or Direction Setup Time parameter in the external drive manual;
  2. If both parameters exist, prioritize the larger time value and leave an appropriate margin;
  3. If not specified in the manual, common external drives (including optocoupler-isolated types) typically require 5µs ~ 35µs; it is recommended to start from 0.000005 and gradually increase during testing.
Note

If the motor does not rotate, vibrates, loses steps, or the model tilts after configuration, please first refer to the FAQ for troubleshooting. Do not blindly rewire or perform large-distance motion tests.

Configuration Notes

Remove TMC driver configuration

When using an external stepper motor driver, only keep the [stepper_*] configuration for the corresponding axis in Klipper. You must delete or comment out the entire TMC driver configuration sections, such as [tmc2209 stepper_x], [tmc5160 stepper_x], [tmc2209 extruder], etc.

If the TMC configuration is retained, Klipper will attempt to initialize the onboard or plug-in TMC driver via UART/SPI, which may result in configuration errors, driver communication errors, or the motor failing to operate properly.

[stepper_x]
step_pin: PA2
dir_pin: PA3
enable_pin: !PA8
microsteps: 16
step_pulse_duration: 0.000005

# When using an external driver, delete or comment out the entire TMC configuration below
#[tmc2209 stepper_x]
#uart_pin: PA10
#run_current: 0.8

Troubleshooting: Common troubleshooting for external drivers

Loading...