Jump to content
Ultimaker Community of 3D Printing Experts
nick-foley

Using Pololu DRV8825 Stepper Drivers on a UM1

Recommended Posts

Hey everyone -

After a few of my stepper drivers started acting up (and the flimsy heatsinks were knocked off), I decided to upgrade all of my drivers to something that could handle more current without overheating.

I'd previously swapped to the Pololu (Purple) DRV8825 drivers, since they can handle higher currents and run quieter.

It seemed that the only significant difference when installed on a UM1 would be that they would be using 1/32nd microstepping instead of 1/16th, and I would have to update my firmware to reflect that. After installing them, tuning them to provide a good amount of torque, and doubling my steps per mm in the firmware, it seemed like things were going well - noise was definitely lower and movements seemed to be accurate. Once I started printing, however, it became apparent that something is wrong.

Straight sections print extremely well - whether diagonal or orthogonal. Curved sections, however, are slow and jagged - the machine stutters as it goes through them, causing overextrusion in those areas and very uneven output.

Can anyone with more electronics experience than me offer some suggestions as to what could be going on? I'm pretty confident it isn't velocity/acceleration/jerk settings in the firmware, since I've been playing around with those values and matching them to a known-good machine that does not have this problem (but has the Pololu Black Drivers). I have a few other suspicions, but I'm not confident enough in PCB design to say that there isn't something obvious and dumb I'm missing about the compatibility of these stepper drivers and the UM1 electronics. There is a helpful list on the Pololu DRV8825 page (linked above) which describes the differences, but without a better understanding of the UM1 electronics, I have a hard time knowing which are meaningful.

Thanks for any help anyone can provide. Figuring these out would be a sweet upgrade for the community, because who doesn't want a quieter, more reliable machine for $30 in parts??

 

Share this post


Link to post
Share on other sites

Sounds like a Marlin issue.

First try reducing your print speed by 2X so that Marlin doesn't have to send so many steps per second. I believe Marlin can only handle one axis going at 300mm/sec or something like that and any more than that causes the cpu to have trouble keeping up. So if 2 axes are going over 75mm/sec and you have double stepping you might also go over this limit. Not sure. Just a hypothesis here.

That's all I've got. Printing too slow over USB should just make it stutter and print slow - not a jagged path. I would think. Whatever the issue is, I think it's firmware related.

 

Share this post


Link to post
Share on other sites

Whoa, sorry everyone. After more testing, it's clear that this isn't a hardware issue or a firmware issue at all, it's an issue with the latest Cura release candidate.

That's what I get for using the latest beta (14.03 RC7). Problem disappears completely when printing with 14.01.

Will do a little more testing and post a photo comparing different printing methods and Cura versions.

 

Share this post


Link to post
Share on other sites

I have been using these for a few months as we had a bunch of them lying around at work, and to be honest the biggest benefit seems to be the noise reduction. Even printing from SD card, it still occasionally stutters as you describe because the arduino can't handle the step rate. I have been meaning to drop them back to 16 microstep and see if the noise improvement remains.

If you set the outer layer speed low, to get the best quality, the stuttering becomes less of an issue because it is inside, but still its annoying.

 

Share this post


Link to post
Share on other sites

Steps per mm will be double whatever you have in the firmware already, since the resolution is being doubled from 1/16 to 1/32. This means 2*70-something-ish for a stock ultimaker (forget the value since it's long) or 2*80 if you've upgraded your Ultimaker to GT2 belts.

Regarding the stuttering issue - I haven't seen any issues since shifting away from the RC7 beta of Cura. I think it was an issue with that beta, since my printer with normal stepper drivers was also having the stuttering issue with files coming from that version of Cura.

 

Share this post


Link to post
Share on other sites

Steps per mm will be double whatever you have in the firmware already, since the resolution is being doubled from 1/16 to 1/32. This means 2*70-something-ish for a stock ultimaker (forget the value since it's long) or 2*80 if you've upgraded your Ultimaker to GT2 belts.

Regarding the stuttering issue - I haven't seen any issues since shifting away from the RC7 beta of Cura. I think it was an issue with that beta, since my printer with normal stepper drivers was also having the stuttering issue with files coming from that version of Cura.

 

I'll soon know... my Pololu drivers passed Los Angeles yesterday so it means there most probably somewhere above the arctic ice right now... :rolleyes:

 

Share this post


Link to post
Share on other sites

You might run into a problem moving from 1/16 microsteps to 1/32 microsteps.

That change requires Marlin to process interrupts twice as fast.

I don't know if the micro has additional headroom to do that.

Marlin already has code to deal with too fast of interrupt times --- halving that time might produce strange behavior.

 

Share this post


Link to post
Share on other sites

Ok, I have now DRV8825s installed on the x and the y axis.

I set them to a current around 0.8A (I even measured VRef). It's enough for running the printer smoothly without skipping but not enough if you try to stop the print head.

I doubled the number of steps/mm. Right now my UM1 draws circles with 8cm diameter at a speed of 150mm/s. No problem at all. Seems the ATMEL is fast enough.

However, after all what was written about noise I expected the motors to be less noisy. I have the (very subjective) impression that they are louder than the original ultimaker stepper drivers.

 

Share this post


Link to post
Share on other sites

It makes no sense to equip the z axis with a 1/32 microstepping driver as it is limited to 1/8 steps (due to good reasons such as movement precision). The extruders are actually the worst in terms of noise, that's true. However, decoupling the feeder motor is for me the right way to go.

 

Share this post


Link to post
Share on other sites

Guys,

would it be a good idea to create something like a "Pololu DRV8825 swap step-by-step instruction" for those who are not so familiar with this like me?

Of course, first: buy DRV8825 drivers, @ e.g. http://www.pololu.com/product/2133

2.) take out the existing drivers for x/y

3.) set the current on the DRV8825 by.... ?? (orientation of driver, direction to move the pot.,...)

4.) changes in Firmware... ???

Guess, something "monkeyproof" like this would be helpful...

 

Share this post


Link to post
Share on other sites

Yes and no.

Yes, it would e.g. be a good idea to write down somewhere that the potmeter has to be turned clockwise to increase the current. The Pololu documentation is very bad about this.

But there is also a reason not to provide such a simple checklist. I hope nobody will get this wrong.

IMHO one has to know what one is doing when exchanging stepper drivers. It's not only a question of the board orientation but also of things like pin compatibility, voltage and signal compatibility (e.g. signal length), pull-up resistors etc. There is e.g. a detailed list on the Pololu page in which details the DRV8825 differs from the A4988 which is already a replacement for the A4983, i.e. the stepper drivers the UM board was originally designed for. I checked this list before ordering. I realised that there ARE differences. However, I found it is not a problem when checking the electronic scheme of the UM shield 1.5.7. So everything is fine? Maybe at the moment. The DRV8825s were introduced end of 2012. The first ones didn't had a pull-up resistor which today's version has. The first ones would not have worked without modification. Pololu can change something in the layout anytime. If that happens, a checklist might become wrong.

Concerning the noise produced of the motors driven by the DRV8825s: This morning I had the impression that they were more quiet than the old ones. So it's purely subjective. But they definitively sound different.

 

Share this post


Link to post
Share on other sites

Thank you for clarification - considering this circumstances, I agree that a checklist might lead to a lot more troubles.

You know, sometimes I'm a bit too enthusiastic about modding possibilities :smile:

 

Aren't we all Drayson, aren't we all... My problem is that the easiest part of any mod is typically ordering the mod/replacement parts off ebay :p

 

Share this post


Link to post
Share on other sites

so Ive done the same, replaced the x & y axis with the new driver for far smoother movements. Although I'm not sure if the speed that I use to slice is being used when printing. I'm assuming its half of what I'm using to slice. None the less, printer x-y motion is smoother and so are the circles. The reason that the extruder has not been changes is because, I could not calibrate it reliably to print as accurately as the existing setup.

 

Share this post


Link to post
Share on other sites

I cant get this to work guys! :(

- I replaced the x/y stepsticks with Polulu purple DRV8825 stepsticks....

- I updated the configuration.h x and y steps to double what they were (so it now says 79.87220447*2).... You only have to edit them in that one place right?

- I tried dialing them in doing auto home with the ulticontroller and applying resistance with some fingers...

I found this larst step kind of hard, and ended up with the pot meter turned maybe only 1/2 a clockwise rotation from its minimum...

Can anyone provide a rough ballpark of where they ended with theirs?

I tried starting a print with these settings, but the printhead just stuttered around randomly, making alot of noise, so I stopped in fear of breaking stuff...

 

Share this post


Link to post
Share on other sites

The current is most probably already much too high. IIRC I used not even a qarter of a rotation. If you're unlucky, you already destroyed the driver with the overcurrent (I did this with an UM driver). I recommend you begin from the minimum setting and increase then the current carefully. You have to keep in mind that the DRV8825 can deliver a much higher current than the UM drivers.

Changing the steps/mm in the source code is usually neither enough nor necessary. Change the value with the Ulticontroller (Control section) and save it to the EPROM (or with an M92 and a M500 command).

 

Share this post


Link to post
Share on other sites

It seems that I may indeed have fried my stepsticks... I replaced them with some other 8825s I had laying around (cheaper black ones, not from pololu... says "Designed by Kliment" on them), somehow found a reasonable setting for them, set steps/mm on the ulticontroller, and voila... I'm now printing with 159,74 steps/mm. on the x and y axis...

By reasonable setting, I mean that I have not yet experinced any step skipping, motors get warm, but you can still touch them and not get burned, so I guess they are ok?

Share this post


Link to post
Share on other sites

And another thing...

When a print starts, and the head moves to the area of the buildplate where it has to print, does it use something Else than the x and y steps/mm stored in the firmware?

I ask because it seems to me that it does this movement much slower, now after I did the 1/32 microstepping mod...

The head still reaches the correct position though, but seems like what could be half speed of before...

Maybe I'm just imagining things :/

Share this post


Link to post
Share on other sites

Sorry to jump back onto an old thread!

Ive been trying to get the DRV8825's to work in my UMO, I've doubled the steps per unit, but it seems to have made no difference. When i send a command to move 100mm it still only moves 50mm, however if i reduce the steps per unit, it reduces the distance accordingly. So no matter what i change, it doesn't want to move further than 50mm in one go. Im very confused. Wondered whether it might have anything to do with the jumpers on the bottom limiting it somehow. I also read somewhere that these drivers can be slower at receiving a signal and require you to change something in the firmware such that the signal has a delay or something.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Our picks

    • Taking Advantage of DfAM
      This is a statement that’s often made about AM/3DP. I'll focus on the way DfAM can take advantage of some of the unique capabilities that AM and 3DP have to offer. I personally think that the use of AM/3DP for light-weighting is one of it’s most exciting possibilities and one that could play a key part in the sustainability of design and manufacturing in the future.
        • Like
      • 3 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!