Ideal microstep setting



  • Trying to figure out the recommended microstep setting for my machine

    CoreXY with fairly heavy gantry
    24 volts
    Nema 17 0.9 degree motors
    Rated Current: 1.68A
    Holding Torque: 0.44N.m
    using 16 Tooth GT2 Pulley

    I want to be able to go as quickly as possible.
    what setting is idea to start with, I would like to go as high as is reasonable.

    also how does processor htz and stepper steps relate.

    400 Step motor @ 64 Microstepping = 25,600 steps full rotation / 16 teeth = 1,600 steps per tooth / 2mm per tooth / 800 Steps
    is this too aggressive? or can i increase microstepping?



  • Start with what I use:
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation

    The firmware will automatically adjust the stepping as needed.

    If you want to go higher on the microstepping without having to recalc the steps per mm. Put the M92 after the M350, then if you put a higher microstepping line after the M350 & M92, the firmware will automatically adjust for it.


  • administrators

    First of all, the default 16x microstepping with 16x interpolation works very smoothly, so you may not gain anything by using higher microstepping.

    The maximum step rate the Duet WiFi can do is 240kHz with 1 motor stepping, or 130kHz with 3 motors stepping. On a CoreXY machine, pure X or pure Y movement requires both motors to move by the requested amount. I suggest you limit the step rate to 120kHz per motor. So at 800 steps/mm, you should limit the travel speed to 150mm/sec.

    Dynamically-varying microstepping is on the list so that we can support high microstepping at low speeds and lower microstepping at high speeds. However, the microstep interpolation works very well, so this is quite a low priority.

    HTH David



  • Here is a link to a steps per mm calculator. http://prusaprinters.org/calculator/

    I believe a .9 stepper with a 16 tooth pulley and 1/16 micro stepping would be 200 steps per mm.
    Running a lower microstep will gain you speed (based on processor htz but will cost you in position resolution). The current settings listed above would give you a 5 micron resolution.



  • is interpolation handled seperately?
    if its set to 1/16 and I get 200 steps/mm with 16 interpolation that equals 3200 interpolated steps..
    do i use 200 or 3200 steps?


  • administrators

    Yes interpolation is handled separately, so you would specify 200 steps/mm.



  • Its the driver chip which is doing the "extra" steps between the 200 steps/mm you've set. Best of both worlds, keeps the processor load reasonable on the controller but gives very smooth and quiet motors.

    Makes me wonder whether swapping for TMC2600 step sticks on my older machines might be worth it.



  • so how/where do you set the level of interpolaton?
    any advantaged with going over 16interpolation?

    I would like to be a quiet as possible



  • I don't know enough about them but the information is most likely in http://www.trinamic.com/_scripts/download.php?file=_articles%2Fproducts%2Fintegrated-circuits%2Ftmc2100%2F_datasheet%2FTMC2100_datasheet.pdf:

    There is an instructable about these drivers http://www.instructables.com/id/Install-and-configure-SilentStepStick-in-RAMPS-TMC/step4/Tuning-the-SilentStepSticks/ which suggests that you can set other modes like 1/4 interpolated to 1/256 etc… however since we are very familiar with 1/16th and the driver handles the rest this seems to be a pretty reasonable setting to use. They are quiet and I have had no issues with skipped steps and can move 250mm/sec with the same motors you are using. The idea of variable microstepping is very appealing, so looking forward to that - high precision, low speed when needed and greater torque/speed with less microstepping for faster moves.



  • I should point out that "high precision" done with microstepping may be somewhat illusory: even if your stepper drivers can command 256 microsteps per step, the locations of those 256 microsteps are not guaranteed to be evenly spaced. They're supposed to be, but tiny variations in coil winding, resistance, or driver control mean that microsteps are really pretty approximate. They're useful mostly for smoothness, avoiding visible steps on the print, rather than actual positional accuracy. If you care about positional accuracy down to 5 microns, you're going to need to use steppers with more real steps per turn and/or mechanical drive trains with less motion per turn.

    Also, of course, if you're using delta mechanics, the size of the stepper steps in real, printed-object space depends dramatically on where you're looking - out near the edges especially.

    All of this makes me wonder what our real requirements are for servo-controlled motion - with a smart servo controller managing position velocity and acceleration, you don't need extra resolution for smoothness, only for part precision.



  • Peridot has some great points, as usual. I've heard, and confirmed with some experimentation, that 4x microstepping is about the limit of "gained resolution," as in, beyond that, don't expect the additional microsteps to register consistently. As peridot says, the benefit is smoothness of motion, lowered resonance, etc.

    I've gotten to the point where I just look at full-step resolution and compare that. If I want my printer to be "accurate to within 40 microns" I make the full step resolution 40 microns. The half or quarter stepping between the 40 microns is just extra.

    There is a line of servo motors that accept step/dir signals from any typical stepper driver, called clearpath motors. They are only available as small as NEMA 23, and are quite pricey, but for a large delta or something, I would love to try them some day.



  • I could be wrong (often am) but I read somewhere that the positional accuracy of a stepper motor is typically +/- 5% per full step but is non accumulative so (say) 200 steps would still be accurate within 5% of a single step. I also read that micro stepping won't improve that accuracy as all it does is divide the gap between the full step into 16 (or 256 or whatever) smaller steps. That being the case, it would seem to be not advisable to rely on micro steps for positional accuracy. Better to arrange the mechanics (gearing) so that a small linear movement needs a largish number of whole steps. Just my twopence worth - I'll get my tin hat now…...


  • administrators

    @bot:

    Peridot has some great points, as usual. I've heard, and confirmed with some experimentation, that 4x microstepping is about the limit of "gained resolution," as in, beyond that, don't expect the additional microsteps to register consistently. As peridot says, the benefit is smoothness of motion, lowered resonance, etc.
    ….

    Worth pointing out I think is that on a delta, microstepping beyond 4x is important. This is because the Z resolution and hence layer height is much coarser than in a Cartesian or CoreXY printer with a leadscrew or threaded rod driving the Z axis. For example, my delta had a resolution of 80 1/16 microsteps/mm when I was using 1.8deg motors. That's 0.2mm per full step, or 0.05mm per quarter step. Changes in Z height of 0.05 mm are going to have a big effect on layer height and hence under/over extrusion. I now use 0.9deg/step motors, and with the 1/16 microstepping I was using when the printer was controlled by a Duet 0.8.5, the improvement in print quality could be seen if I looked closely enough.



  • @dc42:

    @bot:

    Peridot has some great points, as usual. I've heard, and confirmed with some experimentation, that 4x microstepping is about the limit of "gained resolution," as in, beyond that, don't expect the additional microsteps to register consistently. As peridot says, the benefit is smoothness of motion, lowered resonance, etc.
    ….

    Worth pointing out I think is that on a delta, microstepping beyond 4x is important. This is because the Z resolution and hence layer height is much coarser than in a Cartesian or CoreXY printer with a leadscrew or threaded rod driving the Z axis. For example, my delta had a resolution of 80 1/16 microsteps/mm when I was using 1.8deg motors. That's 0.2mm per full step, or 0.05mm per quarter step. Changes in Z height of 0.05 mm are going to have a big effect on layer height and hence under/over extrusion. I now use 0.9deg/step motors, and with the 1/16 microstepping I was using when the printer was controlled by a Duet 0.8.5, the improvement in print quality could be seen if I looked closely enough.

    I totally agree with you there. I'm not sure if you remember a series a posts I made on google groups about the "lava lamp" of resolution on delta printers, but my observation was likely caused by the varying resolution, and the variable ability for the motors to maintain torque causing inconsistent z height. I want to experiment with increasing the physical resolution and/or improving the power curve on deltas, but right now I'm going cartesian.

    On my delta I have 80 micron full steps, and therefore 20 micron quarter steps. I do not have reliable or consistent z movement below 20 micron increments. Do you think going from 12v to 24v may improve the microstepping torque, and therefore attainable microstepping resolution?


  • administrators

    How come you have 80 micron full steps - are you using leadscrews instead of belts?

    I can jog the effector on my delta in steps of 6.25um, in other words it response to each 1/16 microstep. I haven't tried to measure how even the microsteps are.



  • I have 16 tooth pulleys with 2mm pitch belt, 0.9 degree motors.

    I can also sometimes jog my effector in .01mm increments, but then in other areas of the bed, those increments do nothing until a big jump up. I probe my bed manually at about 28 points, and I jog up and down and measure with feeler gauges or with a dial indicator in place of the hot end. The 20 micron increments are almost always reliable (though not completely accurate), while 10 micron increments work about 50% of the time, more or less.



  • Vertical resolution is the most regular of the delta steps - a vertical move is always simply the same number of steps on all three motors. (This is why it is safe to home by moving all three motors straight up as far as they'll go - no matter where the delta is this will home it without horizontal excursions.) Of course, depending on your horizontal position your three motors will be at different places within a step, so microstep inaccuracies may result in some horizontal motion as well as vertical inaccuracy.

    That said, I too have noticed some weirdnesses with small vertical steps appearing to do nothing, both with my previous RAMPS hardware and my current Duet WiFi. Of course my printer does not have terribly good mechanical resolution, and instead of feeler gauges I'm using paper. But it's interesting to hear your reports of peculiarities. Steppers are supposed to be so simple!



  • @bot:

    There is a line of servo motors that accept step/dir signals from any typical stepper driver, called clearpath motors. They are only available as small as NEMA 23, and are quite pricey, but for a large delta or something, I would love to try them some day.

    Not to take us too far afield, but I quite like the Mechaduino project, which is apparently now shipping Kickstarter orders. Relatively affordable servos with ~0.1 degree resolution and full torque/velocity/position control. They do take step/direction input, but I suspect that this interface might not improve on a microstepped stepper; for really good performance you'd want to have the motion planner send target velocity/acceleration information to the motors as well. And anyway, it's not clear to me whether these motors will lead to any real improvement in printer reliability. Fortunately some of the smart tinkerers on the deltabots Google Group ordered sets and are planning to experiment.


  • administrators

    Although I like the idea of using position feedback, I would want better than 0.1deg resolution for a delta printer. My 0.9deg steppers move the effector on individual 1/16 microsteps, which equates to 0.5625deg resolution. Print quality was quite good when I was using 1.8deg motors but the moire on the sides of flat surfaces is noticeably less with 0.9deg motors.

    Sending target velocity and acceleration info to the drivers precludes the use of segmentation-free delta movement as used by RepRapFirmware, unless the servo controller can compute delta motion itself. What processor does the Mechaduino use?



  • @dc42:

    Although I like the idea of using position feedback, I would want better than 0.1deg resolution for a delta printer. My 0.9deg steppers move the effector on individual 1/16 microsteps, which equates to 0.5625deg resolution. Print quality was quite good when I was using 1.8deg motors but the moire on the sides of flat surfaces is noticeably less with 0.9deg motors.

    I think you dropped a zero, but yes, the accuracy they claim is several microsteps of your current stepper. Though that's accuracy - the "steps" of position sensing are actually 0.02 degrees, there are just residual nonlinearities so that those steps are not all that evenly spaced. Which is true of microsteps too.

    That said, the moire patterns are the result of taking discrete steps, as I understand it, and position/velocity/acceleration control would (could) result in genuine straight lines, not digital approximations. Which is why I suspect that a step/direction interface is not going to be satisfactory, or at least, not that much of an improvement over what we have now.

    @dc42:

    Sending target velocity and acceleration info to the drivers precludes the use of segmentation-free delta movement as used by RepRapFirmware, unless the servo controller can compute delta motion itself. What processor does the Mechaduino use?

    It's an ARM M0+ SAM D21 (Arduino Zero compatible). So it can probably be flashed to handle the conversions itself. Failing that, it might be adequate to use segments that were cubic splines (constant-acceleration) - I believe it may natively support "follow cubic spline" commands?

    Clearly getting the most out of Mechaduino for a 3D printer is going to take a lot of work from people who understand motor control and motion planning. If the only change is smoother, faster prints, I'm not sure whether it's worth it. The real appeal of servos is the hope that they can improve print reliability, and for that I think just hooking them up with a step-direction interface will be an adequate test.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.