External Drive Tutorial
External Drive Configuration Guide
Precautions
- 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
- Standard passthrough 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 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.
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 24V power from the mainboard, and the mainboard's drive power input must not exceed 24V. Before connecting, please confirm the mainboard's power supply specifications to avoid damaging the module.
After installing the 5V boost module, do not connect the external drive immediately. Please first complete the safety inspection according to the 5V module test instructions to confirm the module and configuration are normal before proceeding with wiring.
Choosing a 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 wire, 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 Microstepping Settings
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
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.
Microstepping 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 the motor's inherent parameters: Common motors have
full_steps_per_rotation: 200(200 full steps per revolution, i.e., 1.8°/step) - Set the Klipper microsteps
microsteps: Configure in the configuration file, e.g.,microsteps: 16 - 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
- Recommended value for this tutorial:
| Configuration level | Configuration item | Set value | Description |
|---|---|---|---|
| Motor parameters | Full steps per rotation full_steps_per_rotation | 200 | Motor's inherent attribute, typically 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 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
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 item | Description | Configuration example |
|---|---|---|
| Driver type | No 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 |
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:
step_pulse_duration and Direction Timing
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:
- Check the
Minimum Step Pulse WidthorDirection Setup Timeparameter in the external drive manual; - If both parameters exist, prioritize the larger time value and leave an appropriate 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 tilts after configuration, please first refer to the FAQ for troubleshooting. Do not blindly rewire or perform large-distance motion tests.
Configuration Notes
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