Puzzling measurements

I tried to measure how much the roller moves when there is a load on the end mill, in an effort to measure belt stretch versus my (epoxy) rack and pinion approach. However, I got some very surprising results for the belt stretch measurements.

When the roller is only 25mm from the corner, so effectively with a very short belt, then I measure a movement of the roller of 0.145mm for a 2 kg load. When the roller is 695mm from the corner, I measure 0.175mm for the same 2 kg load, just 0.030mm more!

I put 2 kg load on the end mill, which was placed in the center of the workspace. The effective load on the roller should then be roughly 1 kg. My GT2 belt stretches around 0.320mm per meter per kg, so I should have measured something like 0.300mm+ instead.

Here’s my setup:

I screwed an iron plate to my spoilboard, and put a magnetic holder with a dial indicator on top of it. The dial indicator is placed against the gantry tube close to the roller. I strung a rope to the end mill, and hung a weight on it on the side of the table. The rope goes over a bearing. To be sure how much weight I was really putting on the end mill, I put a scale in between. The value shown by the scale is pretty much the same as the actual weight(s) I used.

Some notes:

  • I repeated the measurements several times with 2 different weights. I measured the movement of the roller at 25, 225, 425, and 695mm from the corner. I get the same results every time.
  • The frame is not racking much. I measured 0.010mm for the 2 kg load.
  • There is some backlash or friction or something in the roller / belt. When you put a load on the end mill, and then remove the load again, the roller does not move all the way back to its starting position. I think the difference is typically about 0.025mm. For my measurements, I first put the weight on the end mill, removed it, zero’d the dial indicator, put the weight again, and only then measured the movement.

I don’t understand why I measured a relatively large movement very close to the corner and such a small belt stretch effect. Does anybody have any idea?

What about the other components? I know you said there wasn’t much racking, what about the ziptie? Is this the side with a very small loop?

That side has the “fixed” ziptie.

Is it possible the belt isn’t tensioned enough to begin with? Like the first part of the movement comes from tensioning the belt, and the rest from stretch?

If anything, the belt is too tight. I triple-checked. :slight_smile:

Perhaps tape something long and lightweight, like a straw, to the motor pulley and see how much it is turning. You can subtract that and it might help show why it moves when near the corner. But it wouldn’t explain why the movement is not more when not near a corner, from belt stretch.

I tried with a 30cm long feather, we were out of straws… :slight_smile: . I see movement, but it’s hard to estimate how much because the tip moves in the opposite direction from the stepper, which means that the tip kind of stays in place. The stepper seems to move more than the tip of the feather.

When I was pulling the end mill back and forth with my hands, I could clearly see the belt moving. And then I noticed that the “fixed” zip tie is actually the reason for the movement near the corner!

I think I assembled it according to the instructions. I folded the end of the GT2 belt onto itself, with the teeth meshing, put a ziptie through the corner piece and through the loop, and pulled it tight. The belt is completely inside the thing on the corner. There is no slack in the ziptie itself.

I also put a ziptie around the belt a few mm from the corner, to make sure the teeth would always mesh and stay in place. But when I pull on the end mill, I can clearly see this second ziptie move almost as much as the roller!

I don’t think the ziptie is flexing. It looks like there are two things happening:

  • The radius of the belt loop seems to be slightly larger than the ziptie width, even though it’s pulled into the corner piece. When you pull on the belt, this radius decreases (it becomes flatter), which lengthens the belt.
  • It also seems like the whole loop moves a bit, even though the ziptie holding it is not. Maybe the teeth on the inside of the ziptie are compressing or something.

I still don’t know why I don’t see the belt stretching more at longer distances from the corner though.

I designed my own top corner part, to which I can mount the belt without any zipties nor belt loops. It’s as stiff as I could make it and there is absolutely no movement of the belt near the corner now.

And to my surprise, it hardly made any difference! With the roller very close to the corner, I still measure similar movement of the roller as before.

I double-checked that the roller bearings were all touching the tubes (again). I also screwed down the stepper motor mount so tight that I heard a faint crack (oops). The belts are tight.

I also measured how much force was on the roller/belt when I put 2 kg of load on the end mill. It was measured at about 825g. So I wasn’t pulling exactly in the center, but it’s close enough. I also tried putting a 4.5 kg weight on the end mill, and the movement of the roller seems to scale linearly with the weight (I measured 0.360mm movement of the roller with 4.5 kg on the end mill). Makes sense.

I also measured the lowest plastic point of the roller and the top of the stepper motor. Interestingly, the tube deflects more than either of these two points. This also makes sense to me. (The difference was about 0.060mm for a 4.5 kg load on the end mill, so 0.300mm movement of the bottom and top, and 0.360mm of the tube.).

My current hypothesis is that the plastic of the roller itself is stretching or bending. I find it hard to believe, but I’ve run out of other ideas, and I’m slowly going crazy…

Would anyone be willing to take some quick measurements with a dial indicator on their MPCNC? No need to hang weights off of it. Just put the roller near a corner, enable the steppers, put a dial indicator against the tube close to the stepper, and push and pull with your hands on the endmill or tube. When I do that, I easily get a movement of 0.200mm or more. Can anyone reproduce that?

Energized steppers are not locked, they are more like rigid springs. They do have some give. Try your same test at different currents to see if you notice a difference.

1 Like

Today I learned something new: a 1.8 degree stepper can move 1.8 degrees before skipping a step. That means that it can move 0.160mm before skipping. Intuitively I thought it would only be able to move half that distance (0.080mm) before skipping, but it turned out that was wrong.

When I put 4.5kg of load on the mill, the stepper was very close to skipping (it’s not the strongest stepper). So, I think I was close to 0.160mm movement. That explains a decent chunk of the 0.360mm movement of the roller I measured.

I used this absolute magnetic encoder to measure the angle before skipping. It’s about 15 euros for a breakout board with a magnet. You get a 14 bit resolution, which equals 2 micron. Accuracy is a bit less, but 95% of the measurements should within 15 micron according to the specs.

In fact, using an encoder gave me the following idea. When there is load on the stepper, the actual angle lags the desired angle. This lag angle is dependent on the load. By comparing the encoder position with the desired stepper position, you know the lag angle. So you can also estimate the load (by calibrating with different loads for example). If you know the load, and you know how long the belt is at the position where you currently are, you can estimate belt stretch! If you can estimate it, you can compensate for it.

In summary, I think that it might be possible to compensate for belt stretch (and lag angle of course) using nothing more than an encoder and smarter firmware. Even better than a servo that only compensates for lag angle. One issue I can think of is very sudden changes in load, that will mess up the accuracy of this idea.

Like a single flute endmill smashing into metal at 20k RPM?

That encoder looks like fun!

I love the in depth analysis, Is there anyway you can measure this in real time under load? that rotational encode and a linear encoder and check the difference? You would have to see it swing in both directions as it moved, lag and rebounding from load and accelerations right?

If you would be moving very slowly when you first hit the metal, and only accelerate slowly when you are in the metal already, I think that would still count as “gradual” changes in load. At least for the X/Y steppers.

You might get a lot of vibration or chatter, but you may be able to average that out or something. I haven’t tried anything like this yet though, so I could easily be wrong.

I had one lying around from an earlier project, but I decided to give it a try because I found this open source “smart stepper” project. It uses pretty much the same encoder and they have developed hardware and firmware to turn a stepper into a closed loop servo. They also have a NEMA23 version. Very cool!

Apparently there are chinese knock-offs now too. I did read that there are big issues with noise on long step/dir wires, making the servo see step signals which were not there or it may temporarily see the wrong dir signal. So I don’t think they will work as-is for an MPCNC.

I was thinking about screwing a stop block of some kind to my spoil board, position the end mill against it, and then try to drive the steppers such that the end mill gets pushed against the stop block with more and more force. That would allow me to correlate the lag angle with the number of steps that I move the stepper. This number of steps will depend on the lengths of the belts, ie. the position in the workspace. So you’d need to do that at various locations to get a full picture.

An alternative is a linear encoder like this project. Should be quite easy to put one of those on a corner and attach the belt end to a roller/stepper.

I think that’s exactly right.

Thanks, me too! It’s a much deeper rabbit hole than I thought, but I’m enjoying it. I’m learning that there are all kinds of things that are affecting the rigidity. It’s lots of little things adding up, and it’s not always obvious.

2 Likes