Jump to content

NLCbanner2024.jpg.2478be509670e60c2d6efd04834b8b47.jpg

Pololu Uneven Microstepping - solution.


Stub Mandrel

Recommended Posts

When trying to track a DSO near the zenith I was zoomed in on a star in live view and at x10 magnification I could see it vibrate roughly once a second in time with my stepper motor. All my subs showed eggy stars corresponding to the vibration. My homebrew tracker uses 1/16 microstepping with a Pololu board and this was exactly in synch with the stepper cycle. The 'cogging' effect was quite visible and audible! I think it was made worse by the orientation of the scope and the very light payload (just DSLR and telephoto lens).

As I'm making a goto box with three pololus in it this worried me a bit!

After much digging and poring over datasheets, exchanging messages and getting some useful advice from the Pololu people, and more poring, it seems that the chip on the Pololu misses steps at low stepping rates (~17Hz in my case).

In theory this can be solved by shorting across the tiny 10K resistor at bottom left. In practice you get a huge improvement in how smooth the motion looks, but do not totally eliminate the problem, it still slightly speeds up and down, but it is not 'jerking' anymore. I certainly now see steady live images with a middleweight 700mm scope on solar and the other evening at ~2400mm focal length. These are both heavier set-ups, pointed lower and I have yet to test with the lighter set up or on a long exposure DSO.

That said, I strongly recommend anyone using Pololu boards at low speed to try shorting this resistor and see if it helps. It's easy enough to do it on the bench with metal tweezers to see the effect with and without the short.

P.S. a similar facility exists for many other stepper driver chips - check the datasheet for yours.

Link to comment
Share on other sites

  • Replies 27
  • Created
  • Last Reply
2 hours ago, Dr_Ju_ju said:

I use the DRV8825 devices in my AstroEQ EQ5 mount driver. They have a 1/32 step setting, which makes the rotation much smoother...

Info  http://reprapworld.com/datasheets/datasheet%20drv8825.pdf

The problem is quite technical.

Small micro-steps don't create enough back-emf to stop the current straight away. In mixed mode this means the drive current is cut off too fast. The same issue affects the DRV8825, but can be solved in a similar way by tying the decay pin to GND, it's more fiddly though as you have to use a flying lead to the pin.

That said, I would be able to swap in DFRV8825 carriers and just double my step rate for finer resolution and smoother running (visits ebay...).

Link to comment
Share on other sites

Is it really hardware problem? I'm putting steppers on EQ5 and I plan to run them with Arduino and a pair of DRV8825. I made some initial programing tests using accelstepper library and this regular uneven motion was very visible. I hoped that the library is having trouble to calculate correct delay for my speed. Easy driver is doing the same and I tried several micro controllers and several motors with same result. Issue disappears with higher speed.

Link to comment
Share on other sites

1 hour ago, JanH said:

Is it really hardware problem? I'm putting steppers on EQ5 and I plan to run them with Arduino and a pair of DRV8825. I made some initial programing tests using accelstepper library and this regular uneven motion was very visible. I hoped that the library is having trouble to calculate correct delay for my speed. Easy driver is doing the same and I tried several micro controllers and several motors with same result. Issue disappears with higher speed.

It goes at high speed because the coils generate enough back emf to hold off the drop in current longer. It's not an error, its just that the out-of -the-box Pololu is set up for being used at higher speeds.

Pages 7 and 8 of this datasheet explain what is happening and how to stop it. It's not a fault, you just need to turn off mixed-mode decay for use at low speeds. Unfortunately the Pololu boards don't include a link which would make it simpler.

Link to comment
Share on other sites

14 hours ago, ChrisLX200 said:

You might want to read this interesting article on DRV8825 behaviour and using mixed-mode decay: http://cabristor.blogspot.co.uk/2015/02/drv8825-missing-steps.html

http://www.watterott.com/en/SilentStepStick-Protector

ChrisH

Thanks Chris,

I already saw the first of those  articles and I have a bag of 201-amp diodes here as a result! Looks like I may not need them.

Link to comment
Share on other sites

  • 5 months later...

Any results?

I have in front of me stepper motor controller  with those 1N5408 diodes (only one pair per coil, not two as recommended in link one post higher) and I tried to regulate voltage as low as possible (DRV8825 stops working at around 7.8V - datasheet says minimum  is 8.2V). At 1/32 stepping mode and step rate under 10 steps/sec (using accelstepper library and setSpeed(7.130588) - some value I calculated earlier, not sure if it's correct) motor is running at regular waves - faster and slower with singing noise (it sounds more like leaking toilet though; HEQ5 is beautifully singing). On one DRV8825 I pulled DECAY pin low and I can't see (nor hear) any difference between those two. Soldering coil wire to that tiny leg wasn't so difficult, worse is to keep clean neighboring pins (FAULT and DIR). I'm sure it's low but no change. I recalculate the speed also to be sure it's not for 1/8 steps.

Link to comment
Share on other sites

45 minutes ago, JanH said:

Any results?

I swapped out the bottom left 10K resistors for zero-ohm links, and the problem went away, much smoother motion.

Yes, a much more 'singy' sound than the earlier chirping.

Ha! that was 20 1-amp diodes not 201Amp ones!

Link to comment
Share on other sites

Interesting. I was of course wrong, 7 steps/sec are for 1/8 microsteps, for 1/32 it's decent 28.5 steps/sec (EQ5, 144 teeth, pulleys 40/16). Noticeable improvement is with lower voltage. At 12V I feel distinct jumps (like missed step) and it's gone at 8V. Also each motor behaves differently, common nema 14 are worse than nema 11. That has something to do with that voltage again as smaller motor has higher rated voltage and lower current (and smaller torque).

Now I just stack to my solution (diodes  + low Vin) and try that resistor later. Supply of drivers is not endless.

Link to comment
Share on other sites

On 23 April 2016 at 11:03, Dr_Ju_ju said:

I use the DRV8825 devices in my AstroEQ EQ5 mount driver. They have a 1/32 step setting, which makes the rotation much smoother...

Info  http://reprapworld.com/datasheets/datasheet%20drv8825.pdf

I've used this - there's a DRV8824 and 8825 - the difference is in how much current they can pass through.

 The reason I went down the DRV route is that they can cope with a far higher voltage that helps cope with overcoming the back EMF.

I use as 2-3V stepper with 670mA max - the result is very good - even at 1/32 with the stepper connected via a 100:1 planetary gearbox then to a 1:1 focuser. The result is about 1.6million steps for the focuser travel and that is with a full set of astrophotography kit. It may be worth putting limit switches as the torque can be quite high.

 

Link to comment
Share on other sites

1 minute ago, Stub Mandrel said:

Assuming 40mm travel, that's about 15 steps per wavelength of light :brushteeth:

Nope.. something like 80mm.. of some stupid (and unrealistic) precision! :p

But the main thing is that it will work, however things like backlash and other inaccuracies will have a far far bigger impact :D

 

Link to comment
Share on other sites

Surprised I don't see mention of the SilentStepStick TMC2100...  I have three DIY goto 'scopes and pulled all the DRV8825's and replaced them with TMC2100's (one actually has SSS TMC2130's.)  I'm not the only one either, several users of my OnStep have implemented goto systems with them and were very happy with the performance.  My little Tak EM10 mount nearly doubled in slew speed when I switched to them.  Performance of these things is amazingly good (in nearly every way) though spreadCycle can be a bit noisy with certain steppers.  Depending on the drive ratios and controller capability stealthChop is sometimes an option and can take care of that issue too.  Tracking speed operation on all steppers I've tested (4 different models NEMA11 to NEMA23) was silky smooth.  Two of the four stepper models tested didn't micro-step smoothly with the DRV8825.

Obviously the TMC2130 is an even more advanced stepper driver but there's not much point in using it unless you configure it over an SPI interface.  My OnStep has initial support for doing this, but it's not well tested yet.

Link to comment
Share on other sites

  • 2 weeks later...

I'm also testing DRV8834 and the performance seems to be much better over DRV8825 even at same voltages and current settings.  Seems to work best with my nema11 50mm long 0.67A steppers at around 7V and current around 0.65A. Smooth movement without diodes in the circuit, only thing I noticed that every now and then (about one second apart) it sounds as it missed a step but nothing to be seen on the movement. Can be unfinished microstep; change in step rate might help. And also it has less logic pins to worry about (step, dir, M1 and sleep, rest is optional).

 

More drivers from Pololu to thing about: DRV8880 - only 1/16 microstep but other interesting features like flexible current limit and also it's promised to give smoother movement

and AMIS30543 - SPI controlled driver (up to 1/128 step)

Link to comment
Share on other sites

The DRV8824 is a current limiting chopper driver so you can use (and I do) 12V with a 3.8V stepper (670mA), there's a formula that allows you to set the current limiting using the reference voltage (use a volt meter when adjusting the potentiometer). It's been operational for hours at a time indoors and the stepper remains stone cold. The 12V means the back EMF on the step is overcome and you get a very very good step.

 

Link to comment
Share on other sites

The same applies to the A4988 and DRV8825 based driver modules - important to have a motor supply voltage much higher than the stepper rated voltage and set current limiting.

Link to comment
Share on other sites

  • 3 months later...

Got some spare time to build next generation of eq5 hand controller but this time with "silent step stick" drivers.  I picked those for 5V systems only (simpler power up sequence). First I tried  spread cycle at 1/16 microsteps (FCG1 grounded). Noisy, but sound changes dramatically with higher Vin (I went up from 12V to around 25V) but still worse than DRV8834. Can't report about smoothness as I experimented with other stuff. Than I changed to stealth chop mode (all M1-M2-M3/FCG1-FCG2-FCG3 pins disconnected) and it's absolutely noiseless. To check if the motor is running I have to put my finger between belt and pulley to feel the movement (can't see anything at sidereal speed). At this point ENABLE pin is also floating thus inactive stepper goes down to some 1/3 power after 3s. Can't see any change in torque or smoothness when at different Vin, runs perfectly at 12V so as at 20V. I can throw out voltage booster.

The only thing is that the stick gets hot. Now Vin is 12.5V and Vref 0.45V powering nema 11 0.66A 50mm long stepper. Motor itself is OK but stick is around 40-50°C with small heat sink on top.

And it's running smoothly as never before.

Setting current limit is little bit tricky for people like me, first I got lost in between Vref, Imax and Irms. We measure Vref between Vref pin (pin closest to "En" out of those triple pins) and ground:  Imax (from datasheet to your motor) / 1.41 (constant) = Vref (voltage reading between Vref and GND on stepstick).

In my case motor Imax is 0.66A, meaning 0.66 / 1.41 = 0.46. Pot has to be set to position when Vref pin gives 0.46V or less.

Link to comment
Share on other sites

This comes up from time to time. What the short really does is provide more current capacity to the stepper motor as this is the current sense resistor used to limit current and also provide vref measurements - so shorting the resistor means a current increase as well as any vref measurements are thus totally way off. The increased current allows the stepper to stabilise more, but that also has other side effects that users should be wary of when performing such a mod. Just because it appears to work does not mean it is all win-win. We never get something for nothing when it comes to electronics.

Link to comment
Share on other sites

... repeating myself.. new post :)

Interesting - the main issue is that steppers make it very hard to measure the current without being inline at the rate required. So the limiting driver is a good solution. What options for step movement? Well typically the 10:1 requirement for accuracy means you're only attempting to get a smooth movement but it's still not smooth and may vary in smoothness over the rotation.

 

Link to comment
Share on other sites

3 hours ago, brown_rb said:

This comes up from time to time. What the short really does is provide more current capacity to the stepper motor as this is the current sense resistor used to limit current and also provide vref measurements - so shorting the resistor means a current increase as well as any vref measurements are thus totally way off. The increased current allows the stepper to stabilise more, but that also has other side effects that users should be wary of when performing such a mod. Just because it appears to work does not mean it is all win-win. We never get something for nothing when it comes to electronics.

Not sure if you're referring to my mod? It's not shorting the current sense resistor, just selecting a different mode that's unavailable on the standard polulu that avoids missed microsteps steps after zero crossing. It's a built in function of the chip not a bodge.

Link to comment
Share on other sites

And I found a simple way around floating stage of pin. I have it on Enable pin as I need it floating (to save power when motor not in use) and high for turning of the power (or whenever freewheeling is needed). I put optocoupler between my arduino high/low pin and enable/high. TLP521-2 can trigger two independent circuits so I wired it up in a way that when arduino pin is low both branches connected to Enable pins are disconnected from each other and floating. When arduino pin is turned high both enable branches ere connected to 5V line and also to each other (I'm little bit short of digital pins so now I can disable both drivers with single output pin). Seems to be working fine and there is also an option using two output pins to get all low/floating/high options (first pin for selecting between floating and other stages, second pin for choosing high/low when first pin is low).

 

I must apologize for digging up an old thread. Some got confused.

Link to comment
Share on other sites

I tried to get the Teensy3.2 micro-controller to trigger the "Open" state on the TMC2100 CFG pins, but no luck.  Setting the Teensy3.2 pin to "Input" or even "Output Open-Drain" didn't work.  I figured external hardware would do the trick but I didn't want to go that route since I was shooting for a "universal" Pololu driver socket on my telescope controller design.  All mode control and the enable pins are wired directly into the MCU and this allows configuring the more advanced SSS TMC2130 in SPI mode (bit banged) which is really an even better option.  If using a TMC2100 on the PCB I just omit the necessary pins to give the required mode.

I found the TMC2100/2130 to be noisy in spreadCycle mode in two of my three telescope mount goto conversions.  Fortunately the quiet one was the only one that really needed to be run in spreadCycle.  The other two run fine in stealthChop (and so are very quiet, tracking and slewing.)   The TMC2130 has many configuration options (too many) and some deal with keeping noise down but I haven't had the need to look into that.  Also, none of these builds push the thermal limits of the SSS TMC21x0's.  In-fact these drivers will run some NEMA23 motors just fine (its been done.)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. By using this site, you agree to our Terms of Use.