Correct setup and connection of LARGE external drivers for a 3D printer or CNC machine: tb6600, DM556 and others))

2022-12-17 12:50:25 By : Ms. Gloria Qi

Follow the author if you like his posts.Then you will be notified of his new articles.

You can always unsubscribe from notifications in the author's profile. Open Loop Stepper

Good day, dear colleagues!Today we will make the correct connection of LARGE (or not so :))) ) external drivers for a 3D printer, so that everything WORKS and works as it should: without offsets and other nonsense, which even an experienced fighter can take for mechanical wear!

-What should I pay attention to first of all?

-Voltage is not only POWER, but also LOGIC!I don't use caps anymore ;)

The fact is that our boards give out up to 3.3 volts per logical signal (you don’t need to climb with a multimeter now, this is for dessert !!!!), it’s quite enough for a driver like A4988, but what’s more and away from the control board is often requires 4.5-5 volts or even 12/24 volts but paired with resistors (so as not to burn the brains).Today's contenders for a perfectly matched pair of control board and external driver for precision movement.....

SKR V2.0 board and DM556 drivers.Who has something else (at least a couple of ramps and tb6600) do not worry, the instruction is universal !!!

From the board to the driver, we always have only two control signals: STEP (also called PULSE) - a step signal and DIR - in which direction to "step".You can see them on the back of the board or on a small driver (into which cell the pin is inserted when you insert the driver), for small drivers these are adjacent legs, we will also find GND opposite DIR:

My STEP (left slot for one pin) and DIR (right slot for one pin), GND opposite DIR

Let's check for sure how many volts the pins of our logic give out!In 99.9% of cases, for 3D printer boards, this will be up to 3.3 volts.We measure the voltage with a multimeter in DC mode on one of the working limit switches (the one that clicks when parking), to do this, turn it off and poke the probes into the logic pin (the one that is not + 5V) and GND, I got +3.25 V (if you mixed up plus and GND, it will show -3.25 V)

-Why didn't you measure the STEP and DIR pins?

-To do this, you would have to use not a multimeter for 450 rubles, but an oscilloscope that would capture the pulsed current while moving along the axes.STEP and DIR are pulse signals that have a frequency (up to 200,000 times per second) and a width (roughly speaking, this is the duration of the pulse), in contrast to the on / off mode of the limit switches.However, both this and that follow the path of a logical signal from the control chip, it is unlikely that there will be a different voltage on STEP and DIR.If there is no oscilloscope, but you really want to check what exactly STEP and DIR output, then you will have to swap one of them with the logical pin of the limit switch, on this occasion I made a short video where I change thermistor pins https://www.youtube.com/watch? v=oS29VAp2JGo , don't forget to put everything back in place later!

Let's move on to the driver!We google DM556 pdf, we are given an instruction or a datasheet (whatever you call it) for our driver.Sometimes there are several instructions, feel free to choose the most convenient one (with beautiful plates and drawings)).We scroll down to the plates describing the currents to our drivers:

Here we are interested in:

1) Output current - the maximum current on the motor, which is indicated in the motor PDF and set by small switches on the driver

2) Supply voltage - the voltage of the driver's power supply, 36 is ok, but it's better not to stick your fingers

If you type the name of our motor and the word PDF, then in addition to amperes there will be an indication of VDC and a value of the order of 1-5 volts, however, the drivers control the motors not with direct current, but according to the principle of PWM (whoever hears the squeak of the motor is the work of PWM), read this separately, but if shortly 36 volts are not supplied constantly, but on / off many many times per second

3) Logic signal current - current for a logical signal, up to 16 mA, that is, up to 0.016 A

4) Pulse input frequency - logic frequency in kHz, up to 200 kHz (Needed for firmware)

5) Something about insulation resistance, it doesn't matter))

We scroll to the control signal plate and then ... 4-5 V for the upper signal PUL (STEP) and DIR !!!And with resistors, you can use 12 volts and 24 volts, but we only have 3.25 V.

As for the ENA (Enable) signal, it is usually not connected.because of it, the driver will ignore the STEP and DIR signals, why do we need it?)) But who needs it!)) Before we start soldering (or who is more comfortable assembling a bradboard), we leaf through our pdf and find a schematic diagram with the resistance of the driver pins:

The resistance is 270 Ohm, at a voltage of 4-5 volts, the current according to Ohm's law is just about 16 mA, at 12 and a resistor of 1 kOhm + 270 Ohm it is already 9.5 mA, at 24 and 2 kOhm + 270 Ohm it is also around 10 mA, as That's what the instructions require.Our boards have enough 5-volt power supplies for limit switches, we use them.Here you need to google the nearest "Radio Equipment Store" and type npn transistors and resistors to them (dc-dc boost converters will not work).They cost several rubles (and sometimes a ruble), which ones you need can be easily calculated:

The resistance of both DIR and STEP for the driver is 270 ohms, we want the voltage to be 4-5V (this is the collector-emitter voltage), and the control signal is about 3.25 volts (this is the base-emitter voltage).You can find many transistors for such purposes, I will choose 2N3904, which has a base-emitter voltage of up to 6 volts, and a collector-emitter of up to 40.

One driver will need 2 transistors.You need 2 resistors.Let's calculate what you need:

Becausewe have a voltage of +5 volts from the board, and transistors reduce the voltage by about 0.6 volts, then at 4.4 volts and 270 ohms, the collector-emitter current will be about 16 mA, which is good.We look at the picture - the base is a foot in the middle, we connect our 3.25 volts to it through a resistor of (3.25-0.6) / (0.016/200) = 33000 Ohm or 33 kOhm, where 3.25 V is the logic voltage , 0.6 V voltage drop, 0.016 A current calculated above, 200 is the average gain (hfe) of the transistor from the picture above.Thus, we need a 33-35 kΩ resistor.A more powerful resistor of 500-1000 kOhm (1 megaohm) is also needed, which will serve as a pull-down resistor, it will turn out like this:

There is very little left!!It is necessary to correct the firmware for our external driver: set the frequency, pulse duration and delay)) Who repinned the pin - return everything back.We go into Configuration_adv.h, change the number of segments (after all, we now have good big drivers :))

/ Moves (or segments) with fewer steps than this will be joined with the next move

#define MIN_STEPS_PER_SEGMENT 1

Next, we set the delays for the DIR signal according to the driver PDF file (tablets at the beginning), for me it is at least 5 microseconds, here it is indicated in nanoseconds, which means 5000 ns, I will put 6000

 * Minimum delay before and after setting the stepper DIR (in ns)

 * 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire)

 * 20 : Minimum for TMC2xxx drivers

 * 200 : Minimum for A4988 drivers

 * 400 : Minimum for A5984 drivers

 * 500 : Minimum for LV8729 drivers (guess, no info in datasheet)

 * 650 : Minimum for DRV8825 drivers

 * 1500 : Minimum for TB6600 drivers (guess, no info in datasheet)

 * 15000 : Minimum for TB6560 drivers (guess, no info in datasheet)

 * Override the default value based on the driver type set in Configuration.h.

#define MINIMUM_STEPPER_POST_DIR_DELAY 6000

#define MINIMUM_STEPPER_PRE_DIR_DELAY 6000

A very important thing is the pulse width, the plate says that the pul is at least 2.5 microseconds, but I'd rather put 5 microseconds.

 * Minimum stepper driver pulse width (in µs)

 * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers

 * 0 : Minimum 500ns for LV8729, adjusted in stepper.h

 * 1 : Minimum for A4988 and A5984 stepper drivers

 * 2 : Minimum for DRV8825 stepper drivers

 * 3 : Minimum for TB6600 stepper drivers

 * 30 : Minimum for TB6560 stepper drivers

 * Override the default value based on the driver type set in Configuration.h.

And of course the pulse frequency.Drivers are capable of delivering up to 200 kHz, but we increased the pulse duration by 2 times, so we reduce the frequency by 2 times and leave 100 kHz

 * Maximum stepping rate (in Hz) the stepper driver allows

 * If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE)

 * 5000000 : Maximum for TMC2xxx stepper drivers

 * 1000000 : Maximum for LV8729 stepper driver

 * 500000 : Maximum for A4988 stepper driver

 * 250000 : Maximum for DRV8825 stepper driver

 * 150000 : Maximum for TB6600 stepper driver

 * 15000 : Maximum for TB6560 stepper driver

 * Override the default value based on the driver type set in Configuration.h.

!!!!AND NOW THE MOST IMPORTANT!!!

Without which the drivers will not work (otherwise they can “move” well at 3.25 volts):

For almost all large drivers, here you need to change false to true

// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.

define INVERT_X_STEP_PIN true

#define INVERT_Y_STEP_PIN false

#define INVERT_Z_STEP_PIN false

#define INVERT_I_STEP_PIN false

#define INVERT_J_STEP_PIN false

#define INVERT_K_STEP_PIN false

#define INVERT_U_STEP_PIN false

#define INVERT_V_STEP_PIN false

#define INVERT_W_STEP_PIN false

Schneider Electric Servo Motor #define INVERT_E_STEP_PIN false

Follow the author if you like his posts.Then you will be notified of his new articles.

You can always unsubscribe from notifications in the author's profile.

Follow the author if you like his posts.Then you will be notified of his new articles.

You can always unsubscribe from notifications in the author's profile.

Follow the author if you like his posts.Then you will be notified of his new articles.

You can always unsubscribe from notifications in the author's profile.

Follow the author if you like his posts.Then you will be notified of his new articles.

You can always unsubscribe from notifications in the author's profile.

People don't understand what you pay...

But he's got a cat...

It is - the application "Shafts and M...

In general, the first 5 seals were...

what fee is not expensive from 0 to...

New registration data has been sent to your e-mail.

An email has been sent to you with instructions to reset your password.If you haven't received an email within 5 minutes, please check your spam folder and try again.