DRV8825 Vref, something is wrong


My build is being used as a router and this is where I need to squeeze out all possible holding torque out of steppers.

I’m using drv8825 and 17HS19-2004S1 steppers [2A/phase @ 2.8V; 59Ncm(84oz.in)]. I’m using auto-squaring edition (5 drivers are employed).

I am setting Vref to 0.97 and it should provide 2A on the stepper. I am breaking into one of the 4 wires between stepper and driver with ampermeter, engage steppers and see from 0.9 to 1.45 A depending on which stepper I test. The current is constant in the same stepper but is varrying from stepper to stepper. Holding torque on each stepper is around 42N*cm which is 70% from declared.

Moving further. I turn Vref to maximum (~1.2-1.25) and the current on steppers becomes 1.25 to 1.8 also depending on which stepper I test. Holding torque is now 59N*cm (90N linear force with pulley radius 0.635 mm).

I see the following problems to which I have no answer and seek for advice:

  1. Why a usual Popolu formula of A = 2*V doesn't work here?
  2. Why different current with same Vref and same type stepper?
  3. Why drivers still cannot deliver 2A to any of steppers?
  4. Why drivers started to fry one by one on Vref=max while they did not even provide 2A? (I use heat sinks with thermal grease and I have a nice 12cm fan for cooling)

Are you sure you’re trying to measure at the full step? When you’re microstepping, they balance the current between each coil to try to get intermediate positions. You can test without microstepping and the current should be 0 or max, and nothing in between.

I haven’t tried to push mine that hard. I don’t have any other advice for you.

I don’t know about the others, except maybe standard deviation in manufacturing + lowest bid sourcing. But #4 I have a guess…

For most of the stepper drivers, the heat is actually generated on the bottom of the chip, so the heatsinks on the top are thermal theater, to a certain degree. You need to make sure you get good airflow below your drivers as well.

If you want to verify this, pull one of your drivers and look at the bottom. If there’s a large pad of metal right under the chip, that’s the real heatsink, not the fancy fins you stuck to the top of the chip. It’s not that topside heatsinks don’t help, they just aren’t situated to be the most effective solution. If you figure out a cost-effective way to either manufacture the drivers with the chips on the other sides of the boards, or a low-profile, non-electrically conductive heatsink that would work in the close quarters underneath the drivers… Let me know about your Kickstarter! :slight_smile:

Is there any chance there is resistive load in the wiring, either the wires or the connectors? If so you might find the provided amperage dropping on longer runs.

Are these drivers from a “reputable” source or are they random parts from eBay/AliExpress/etc.?

Have you verified (visually or via measurement) the value of the sense resistors on the board?

Are you using a “True RMS” multimeter for these current measurements? It is possible the PWM output of the drivers is confusing your meters averaging circuit.

Instead of measuring current in series can you try measuring the voltage drop across the two sense resistors instead?

Can you repeat the tests with the microstepping jumpers removed (so the machine is only ever doing full steps)?

Actually yes, there is such a plate there. And they are from Aliexpress. I reduced 10% from maximum and they seem to run stable so far while torque has cut of course.

Well, seems that I saw a reading of something closer to 2A on full step.