

The DM556 microstep driver, manufactured by Jiawen, is a high-performance driver designed for controlling 2-phase stepper motors. It supports a wide range of step resolutions and delivers smooth motion with high precision. With a peak current of 5.6A and an operating voltage range of 20-50 VDC, the DM556 is suitable for demanding applications requiring precise motor control.








| Parameter | Value |
|---|---|
| Manufacturer | Jiawen |
| Part ID | DM556 |
| Input Voltage Range | 20-50 VDC |
| Peak Output Current | 5.6A |
| Microstepping Resolution | Up to 256 microsteps per step |
| Motor Type Supported | 2-phase stepper motors |
| Control Signal Voltage | 5V TTL |
| Operating Temperature | -10°C to +45°C |
| Dimensions | 118mm x 75.5mm x 34mm |
| Weight | 280g |
The DM556 has two main connectors: one for motor and power connections, and another for control signals. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| A+ | Positive terminal for motor coil A |
| A- | Negative terminal for motor coil A |
| B+ | Positive terminal for motor coil B |
| B- | Negative terminal for motor coil B |
| V+ | Positive power supply input (20-50V) |
| GND | Ground for power supply |
| Pin Name | Description |
|---|---|
| PUL+ | Positive pulse signal input (step signal) |
| PUL- | Negative pulse signal input |
| DIR+ | Positive direction signal input |
| DIR- | Negative direction signal input |
| ENA+ | Positive enable signal input (optional) |
| ENA- | Negative enable signal input (optional) |
V+ and GND pins. Ensure the power supply can deliver sufficient current for the motor and driver.A+, A-, B+, and B- terminals. Verify the wiring matches the motor's datasheet.PUL+, PUL-, DIR+, and DIR- pins to a microcontroller or motion controller. Use the ENA+ and ENA- pins if you need to enable or disable the driver dynamically.Below is an example of how to control the DM556 using an Arduino UNO:
PUL+ to Arduino D2PUL- to Arduino GNDDIR+ to Arduino D3DIR- to Arduino GNDENA+ to Arduino D4 (optional)ENA- to Arduino GND// Define pin connections
const int stepPin = 2; // Pin connected to PUL+
const int dirPin = 3; // Pin connected to DIR+
const int enablePin = 4; // Pin connected to ENA+ (optional)
void setup() {
// Set pin modes
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
// Enable the driver
digitalWrite(enablePin, LOW); // LOW to enable, HIGH to disable
}
void loop() {
// Set direction
digitalWrite(dirPin, HIGH); // HIGH for one direction, LOW for the other
// Generate step pulses
for (int i = 0; i < 200; i++) { // 200 steps for one revolution (1.8° motor)
digitalWrite(stepPin, HIGH);
delayMicroseconds(500); // Adjust for speed
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
delay(1000); // Wait 1 second before reversing direction
// Reverse direction
digitalWrite(dirPin, LOW);
for (int i = 0; i < 200; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
}
delay(1000); // Wait 1 second before repeating
}
Motor Not Moving
Driver Overheating
Erratic Motor Movement
No Response from Driver
ENA+ and ENA- signals. Verify the power supply voltage is within the 20-50 VDC range.Can the DM556 drive 3-phase stepper motors?
What is the maximum microstepping resolution?
Is the driver compatible with 12V power supplies?
Can I use the DM556 without the enable pins?
ENA+ and ENA- pins are not connected.