External Drive Tutorial
External Drive Configuration Guide
Important Notes
- 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
- Standard Pass-Through Module
- 5V Boost Module
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.
Compatible mainboards: D series, C series
Description: The 5V boost module converts 3.3V drive signals to 5V; if the mainboard originally outputs 5V, the module output remains 5V.
The drive pins on D series and C series mainboards typically output 3.3V signals. If the external drive cannot reliably recognize 3.3V input, please use the 5V boost module.
This module requires the mainboard to provide 24V power, and the mainboard drive power input must not exceed 24V. Before connection, please verify the mainboard power specifications to avoid damaging the module.
After installing the 5V boost module, do not connect the external drive immediately. Please first complete the safety check according to the 5V module test instructions, and only proceed with wiring after confirming the module and configuration are normal.
Choosing the Wiring Method
Please select the corresponding wiring method based on your hardware configuration:
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.
If you are unsure which method to use, please refer to the drive module's manual or consult the manufacturer.
- Wiring Reference 1
- Wiring Reference 2
Drive Microstep Setting
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
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.
Microstep Setting Explanation
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:
- Determine motor固有 parameters: Common motors have
full_steps_per_rotation: 200(200 full steps per revolution, i.e., 1.8°/step) - Set Klipper microsteps
microsteps: Configured in the configuration file, e.g.,microsteps: 16 - 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
- Recommended value in this tutorial:
| Configuration Level | Configuration Item | Set Value | Description |
|---|---|---|---|
| Motor Parameters | Full steps per rotation full_steps_per_rotation | 200 | Motor inherent property, usually 200 (1.8°) |
| Klipper Configuration | Microsteps microsteps | 16 | Set in printer.cfg |
| Drive Hardware | DIP switch microstep value | 3200 (16 microsteps) | Physical DIP switch setting |
| Final Result | Required pulses per motor revolution | 200 × 16 = 3200 | Klipper 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
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 Item | Description | Configuration Example |
|---|---|---|
| Driver Type | No 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 |
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:
step_pulse_duration and Direction Timing
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:
- Check the drive manual for
Minimum Step Pulse WidthorDirection Setup Timeparameters; - If both parameters exist, prioritize the larger time value and leave adequate margin;
- 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.000005and gradually increase during testing.
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
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