Skip to main content

External Drive Tutorial

External Drive Configuration Guide

Important Notes

Prerequisites
  • This tutorial is based on Klipper firmware configuration
  • The module supports two wiring methods; please choose based on your actual situation
  • After selecting a wiring method, ensure the hardware connections match 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 but the mainboard drive signal is only 3.3V, using a standard pass-through module may cause the motor to not rotate, rotate in only one direction, or exhibit abnormal direction behavior.

Choosing the Wiring Method

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

Power Off Before Operation

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

Selection Advice

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

Wiring Diagram

Loading...

Drive Microstep Setting

Simplified Setup

No drive jumper configuration is required; the microstep setting is directly determined by the drive's onboard DIP switches.

Drive DIP Switch Setting

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

Power Off Before Operation

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

Loading...

Microstep 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 motor固有 parameters: Common motors have full_steps_per_rotation: 200 (200 full steps per revolution, i.e., 1.8°/step)
  2. Set Klipper microsteps microsteps: Configured in the configuration file, e.g., microsteps: 16
  3. Match the drive's physical microstep setting: Based on the above settings and required precision, calculate and set the drive DIP switches
    • Recommended value in this tutorial: 200 (full steps) × 16 (Klipper microsteps) = 3200 pulses/revolution
    • At this point, the drive must 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 according to 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 inherent property, usually 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 for one full motor revolution

If other microstep effects are needed:

Follow the logic above to ensure the microsteps configured in Klipper are coordinated with the microstep setting on the drive DIP switches. For example, if microsteps: 32 is set in Klipper, the drive DIP switches should be set to 6400 (32 microsteps) to achieve a total resolution 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 final settings should follow the drive manual.

Configuration ItemDescriptionConfiguration Example
Driver TypeNo configuration needed; physically set 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. Always enabled on power-up: remove this line
Active low:
Loading...

Active high:
Loading...

Disable enable control: remove this line
Remove TMC Driver Configuration

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

Configuration reference diagram:

Loading...

step_pulse_duration and Direction Timing

Parameter Mechanism

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

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

Value recommendations:

  1. Check the drive manual for Minimum Step Pulse Width or Direction Setup Time parameters;
  2. If both parameters exist, prioritize the larger time value and leave adequate 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 becomes tilted after configuration, please first refer to the FAQ for troubleshooting. Do not blindly rewire or perform large-distance movement tests.

Configuration Notes

Remove TMC driver configuration

After using external stepper motor drivers, only retain the [stepper_*] configuration for the corresponding axes 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 kept, Klipper will attempt to initialize onboard or plug-in TMC drivers via UART/SPI, which may cause configuration errors, driver communication errors, or motor malfunctions.

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

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

Troubleshooting: External Driver Common Troubleshooting

Loading...