Microstep interpolation.

  • Just curious, as I know very little about interpolation or the stepper drivers in use. What would happen if the microstepping rate was set to 1x, but with interpolation on? Would the motor only be commanded to full step moves? Would it be seriously loud, or would interpolation tame the sound?

  • As I understand it, the driver runs at full x256 stepping with interpolation on no matter what the micro stepping mode is. It, as named, interpolates the extra steps between step commands, so it should be quiet, though I would think it might behave weird (slower?) with that level of interpolation?

  • administrators

    From the TMC2660 datasheet:

    For each active edge on STEP, microPlyer produces 16 microsteps at 256x resolution, as shown in Figure 7.3. microPlyer is enabled by setting the INTPOL bit in the DRVCTRL register. It supports input at 16x resolution, which it transforms into 256x resolution. The step rate for each 16 microsteps is determined by measuring the time interval of the previous step period and dividing it into 16 equal parts. The maximum time between two microsteps corresponds to 220 (roughly one million system clock cycles), for an even distribution of 1/256 microsteps. At 16MHz system clock frequency, this results in a minimum step input frequency of 16Hz for microPlyer operation (one fullstep per second). A lower step rate causes the STST bit to be set, which indicates a standstill event. At that frequency, microsteps occur at a rate of ???????????? ?????????? ????? ????? ??? ? 216≈250????=244.

    microPlyer only works well with a stable STEP frequency. Do not use the DEDGE option if the STEP signal does not have a 50% duty cycle.

    So it sounds to me that interpolation only works for interpolating x16 microstepping to x256, and not at very low speeds (e.g. if you have 80 microsteps/mm at x16 microstepping then interpolation doesn't work at speeds below 0.2mm/sec).

  • Does it work for 32x stepping? I have mine set to that. Its quiet, but maybe not as quiet as everyone else's?

  • Well, so much for that idea. I'm just thinking about my (in design phase) z axis with a 2mm lead, and it would be nice to just forget about the microsteps so we're not trying to stop on them for layer heights.

  • administrators


    Does it work for 32x stepping? I have mine set to that. Its quiet, but maybe not as quiet as everyone else's?

    The datasheet doesn't say what happens if you enable interpolation when using 32x microstepping. You could try using 32x with interpolation on and off, and see if you notice any difference in noise level. Meanwhile I'll try to get an answer from Trinamic.

  • Okay, I'll try that later today. Hopefully you can confirm what I find.

  • If it only works at 16x that would explain why I got more noise at 32x with interpolation "enabled" when I tried it. I didn't try 32x with interpolation off, but I definitely had more noise with it on. It was still quieter than the 0.85 with 16x micro stepping.

  • sorry to revive an old thread, but i'm considering buying a Duet Ethernet and i'd like to know if its possible to set a Minimum step Increment? I'd like to stay within my steppers Full Step, but while still using 256 microstep… i was lookin into the tmc5130 chip, the datasheet seems to indicate that it could support it, but there is not a single implementation that support more than 1.4A right now(probably more like 1.2A)... And i'm not willing to wait... 😉 So, Full steps, at 256 microsteps, can it be done in software?

  • Errr, not my strong point but I always though micro stepping was simply chopping full steps in to segments. So say a 1.8 degree motor gives 200 full steps per revolution. Using 16x micro stepping would mean 200 x 16 = 3,200 micro steps per full revolution etc.

    Edit. So at 256 micro stepping there would be 200 x 256 = 51,200 microsteps per revolution but still 200 full steps.

  • Microstepping is meant for reducing noise not augment precision. On a Delta, your precision is already off by your inability to accurately measure tower position and angle. If the tower wiggle even just a bit, you'll never be able to print a square so there is no point in buying powerful high precision geared steppers. You need precision in a delta though, because the motor movement does not always translate to the same distance on the bed. Microstepping is then required to at least offset for that. But with a cartesian printer and a 400 step per revolution stepper, its not too hard to get to 0.05mm, i dont see any reason to use microstepping then, especially if it remove precision… i have no idea if a 256 microstepper is precise or not, but i kinda dont want to take my chances.. my delta days are over... i want to leave that nightmare behind me.. 😄

  • Ref precision, quite so. A typical stepper motor has a step accuracy of 5% per step, non accumulative. Microstepping doesn't improve that but neither does it make it any worse. So yes, you should choose your pulley sizes/gear ratios or whatever so that the required resolution can be met by an integer of whole steps. On a Delta, it might well be worth using 0.9 degree steppers which give you 400 full steps per revolution - probably with the same non accumulative 5% error but this will in effect be half the error than a 1.8 degree motor.

    So as we agree that micro stepping has no bearing on accuracy, I'm not sure that I understand your original question.

    Reason for edit - typo

  • ok, so if i understand this, every time the motor reach the full step position the precision is kinda reset so that you'll never have more than that ±5% of a Full step + whatever the microstepping error might be…

    Gezz... took me a while to figure that out wow...

    Looks like my delta printed as good as the way it was built... now i feel better... 😕

  • That's my understanding. So for any given position, the accuracy will be within 5% of one full step. So 0.09 degrees for a 1.8 degree 200 step motor, and 0.045 degrees for a 0.9 degree, 400 step motor.

  • What is the optimal setting for microstepping? Should I change my settings to 256 or leave it at 16? Thanks!

  • If you switch to true 1/256th you might be limited to relatively low speeds, asthis mode puts a really big demand on the processor. Try it and see how fast you can move, more of a challenge for deltas moving 3 motors simultaneously. If you want noise reduction then 1/16th with interpolation seems the logical choice. The modes in between might offer theoretical gains over 1/16th but not as much as smaller pulleys and 0.9 degree motors.


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