Skip to main content

Tutorial for Using External Drive

External Drive Configuration Guide

Important Notes

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

Module Selection

Loading...

Compatible Motherboards: SUPER series, GEMINI series, E3 series

Description: The standard module only performs signal relay without voltage boost. If the motherboard outputs 3.3V, the module output remains 3.3V; if the motherboard outputs 5V, the module output remains 5V.

If the external drive requires 5V input but the motherboard drive signal is only 3.3V, using a standard pass-through module may result in the motor not rotating, rotating in only one direction, or having directional abnormalities.

Selecting 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 unsure which method to use, refer to the drive module manual or consult the manufacturer.

Wiring Diagram

Loading...

Drive Microstep Setting

Simplified Setup

No need to configure any drive jumpers. Microstepping is set directly via 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 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

Pulses required per motor revolution = rotation_distance / step_distance

A more basic derivation is:

Pulses required per motor revolution = full_steps_per_rotation × microsteps

Step-by-Step Configuration Logic:

  1. Determine motor inherent parameters: Common motors have full_steps_per_rotation: 200 (200 full steps per revolution, i.e., 1.8°/step)
  2. Set Klipper microsteps microsteps: Set in the configuration file, e.g., microsteps: 16
  3. Match drive 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 as the pulse count 3200; confirm with the drive manual)
    • This means the drive executes each pulse sent by Klipper as 1 microstep
Configuration LayerConfiguration ItemSet ValueDescription
Motor ParameterFull steps per rotation full_steps_per_rotation200Inherent motor property, typically 200 (1.8°)
Klipper ConfigMicrosteps microsteps16Set in printer.cfg
Drive HardwareDIP switch microstep value3200 (16 microsteps)Physical DIP switch setting
Final EffectPulses required per motor revolution200 × 16 = 3200Klipper needs to send 3200 pulses to rotate the motor one full revolution

If other microstep effects are needed:

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

Klipper Configuration Reference

Confirm Drive Manual First

The EN active level, PUL trigger edge, and minimum pulse width can vary for different external drives. The table below provides Klipper syntax and common starting values only; final settings should be based on the drive manual.

Configuration ItemDescriptionConfiguration Example
Driver TypeNo configuration needed; set physically via the drive DIP switches
Microsteps (microsteps:)Set to 16
Loading...
Step Pulse Duration (step_pulse_duration:)Set according to the drive manual. If unspecified, 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 enable: add !
2. Active high enable: do not add !
3. Always enabled on power-up: delete this line
Active low enable:
Loading...

Active high enable:
Loading...

Disable enable control: delete this line
Remove TMC Driver Configurations

When using an external drive, the corresponding axis should only retain the [stepper_*] configuration. If the original configuration contains TMC driver sections like [tmc2209 ...], [tmc5160 ...], etc., delete or comment out the entire section. The TMC configuration shown in the image below is only for illustrating the location of standard driver configurations and is not applicable 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 direction change delay, with the timing 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 a direction change, you need to set step_pulse_duration: 0.000010.

Value Recommendations:

  1. Consult the external drive manual for the Minimum Step Pulse Width or Direction Setup Time parameter;
  2. If both parameters exist, prioritize the larger time value and leave an appropriate margin;
  3. If the manual does not specify, common external drives (including opto-isolated types) typically require 5µs to 35µs. Start testing from 0.000005 and increase gradually.
Note

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

Configuration Notes

Remove TMC Driver Configurations

After switching to an external stepper motor driver, the corresponding axis in Klipper should only retain the [stepper_*] configuration. You must delete or comment out the entire corresponding TMC driver configuration section, such as [tmc2209 stepper_x], [tmc5160 stepper_x], [tmc2209 extruder], etc.

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

:::

[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 block below
#[tmc2209 stepper_x]
#uart_pin: PA10
#run_current: 0.8

Troubleshooting: Common External Driver Troubleshooting

Loading...