Here’s the next installment in my accuracy research for the M4, focusing on belt stretch. Breaking this out into a new thread since the previous X & Y Accuracy Analysis was getting pretty unwieldy.
Hold on to your asses, because I think we’re on to something here (especially you @dlang since you’ve been outspoken about belt stretch)
Background
If you’ve read my previous threads, I’ve been having issues with dimensional accuracy on the M4, especially when cutting near the edges of a full 4x8 sheet of material. You can read those threads to catch up on what I’ve experimented with, but after the last round of testing dimensional accuracy belt stretch, or elongation, seemed like a very plausible cause.
Process
I figured that we needed two sets of data to collect to measure stretch of the belts used on the M4:
- Measure isolated stretch on a section of M4 belt for a range of given forces/weights
- Measure what forces the belts see during normal operation (in my case, a vertical frame)
For the first data set, I rigged up a section of 100mm and 200mm from a steel door frame in my garage with a massive header block. The deflection of the top mount was only about 0.1mm measured with a dial indicator - much less than the accuracy of my measurements I then made a janky mount for a ruler and used a crane scale to measure the force required to stretch the belt by 1mm increments.
To measure the actual force of the M4 while on the frame, I installed four of these crane scales in each corner of my frame. This caused a bit of an issue with the belt length, but looking at the maslow.yaml file I noticed Maslow_beltEndExtension
was set to the distance between the anchor and where the belt started. So I added the length of the crane scale to that measurement and everything seemed to work perfectly. Next, I mounted the M4, jogged to various positions, and recorded the force on each corner, including the machine hanging w/o the bottom belts connected.
Data
First, let’s start with the belt stretch. While I don’t think these scales nor my methods are super accurate, I found that these belts stretch about 1% per 5kg of force. Or about 0.2% per kg of force.
Next, what force do the M4 belts actually see? It’s important to note that a vertical frame has to also carry the weight of the M4 across the top belts. Here’s the results of jogging the machine around to various points on the frame. I found that the direction a machine arrives to a point might slightly impact the forces measured so you’ll see some of that in the data.
Results
I wanted to see if I could predict the position error I’ve been seeing on the machine and took a stab at what I usually measure, traveling from 0,0 to 1200,0. So I created a spreadsheet to calculate the belt length of TR and BR throughout this movement in 200mm increments along the X axis. I used the actual measurements from my frame size including arm length and belt end extension to model this travel, then factored in belt stretch.
Since belt stretch is a factor of applied force, which changes with belt angle, length, movement direction, and who knows what else, I used the data to create a force coefficient. From 0,0 to 1200,0 the TR and BR belts moves 800mm and the load increases by about 3kg, which gives us an increase of 0.00375 kg per mm of travel.
Now we have a stretch coefficient and a force coefficient and can calculate what’s likely to happen on the machine VS what the M4 is told to do. I used the trusty Pythagorean theorem to calculate belt length and the inverse to get back to cartesian measurements. I accounted for stretch in 200mm increments because as the machine moves the belt is locked into the spool so the length and the force change constantly. Because of this, we don’t have a linear error in X travel, but something that looks exponential.
Here’s the maths:
THIS IS VERY COOL! I consistently have measured ~6mm off of the X axis while jogging from the origin to 1200,0. Like nearly every damn time. While this is just one calc for one direction, I think this research is getting pretty close to being actionable.
Conclusion(s) and Next Steps
- I think this research so far validates that these accuracy issues are due to belt stretch. As the machine is pulling on a belt to travel the stretching causes it to think it’s further along than it actually is.
- Stretch is a factor of the total force imparted on the belt, which is caused by direction of travel, belt angle(s) and length, frame orientation, motor torque, and I’m sure some others too.
So now what? I’d still like to run some more research to see if the math checks out for machine movement in other directions. If so, then I hope we could implement some force/stretch coefficients into the software that are a little smarter than tuning esteps. The other horizon is to look at other brands and types of 2GT belts to see if we can reduce the stretching issue. I should have some arriving today and will report back.