OK, so I don’t know if I can provide anything new, but I’ll at least add to the conversation.
I am running 0.69.
One general, non-calibration observation- I had A LOT of disconnects (No heartbeat) and only recovered from one. I tried multiple computers and browsers with no solution. Only in hindsight do I wonder if this is due to the fact that I had configured the M4 to connect to a WiFi access point, but It was too far away to connect- I wonder if this was the cause- I will investigate further. Except as noted, I will not mention the disconnects.
The only really stand-out issue was one instance where the upper right belt just kept extending until the all of the belt was played out and actually started to wrap around the other way. I quickly killed power and I never saw anything like that again.
I measured the anchor-to-anchor distances with a metric graduated tape measure- not perfect, but probably accurate within 5mm. I used these measurements to configure the calibration process.
- After changing the calibration settings, I power cycled and re-verified the settings.
- I then did
- Retract All
- Extend All
- Calibrate
Everything worked as expected. I did not have to tend the belts and the calculations were quick, with the following results after 400 passes;
Fitness: 1.160452386116394
Maslow_tlX: 0.5
Maslow_tlY: 2363.0
Maslow_trX: 3579.2
Maslow_trY: 2363.0
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3572.7
Maslow_brY: 0.0
To see how repeatable this was, I reloaded the initial maslow.yaml file, power cycled, and ran it again, with the addition of a tension after retract and extend and before calibration. Again, no belt tending needed and this time after 4500 passes I got;
Fitness: 1.5768336643895613
Maslow_tlX: -0.5
Maslow_tlY: 2353.9
Maslow_trX: 3578.7
Maslow_trY: 2363.0
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3577.6
Maslow_brY: 0.0
Not identical, but close.
Thinking that doing the tension before calibration might have made a difference (even though that appears to be the first step of the calibration process, I again reloaded the initial yaml, restarted, did the retract, extend, tension, calibrate, and this time after 5500 passes I got;
Fitness: 1.374156216552179
Maslow_tlX: -5.8
Maslow_tlY: 2355.4
Maslow_trX: 3579.4
Maslow_trY: 2363.0
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3571.9
Maslow_brY: 0.0
Given the variation in results, I rotated the M4 180 degrees and went through the exact same process. This time it took only 300 passes to return;
Fitness: 1.0332350382400288
Maslow_tlX: 0.6
Maslow_tlY: 2363.0
Maslow_trX: 3578.3
Maslow_trY: 2363.0
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3572.9
Maslow_brY: 0.0
Given the issues that have been noted in portrait orientation I decided to try rotating 90 degrees. To keep track of the rotations, I marked one of the anchors- the one that had been in the lower right in the first three calibrations and in the upper left in the fourth.
I repeated the same procedure as above, except I flipped the width and height values to reflect the orientation. 500 passes-
Fitness: 1.1440824224435107
Maslow_tlX: 0.0
Maslow_tlY: 3581.0
Maslow_trX: 2362.6
Maslow_trY: 3570.4
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 2364.4
Maslow_brY: 0.0
Obviously, because the bl is always 0,0 and the br is ?,0, the results of different orientations can’t be directly compared. I therefor decided to normalize all the layouts. I created a spreadsheet, calculating the distance from each anchor to the other three as follows;
Then, based on the location of the marked anchor, I rotated each set to normalize them to one another;
This way I could directly compare the results of each of the tests. (More on this later)
I did another pass with the opposite portrait orientation, 2000 passes this time;
Fitness: 0.9861474876265609
Maslow_tlX: 0.0
Maslow_tlY: 3581.6
Maslow_trX: 2357.5
Maslow_trY: 3573.4
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 2363.0
Maslow_brY: 0.0
I haven’t been mentioning it, but there had been no belt tending and other than many disconnects no issues.
Up until this point, I had been reloading the original yaml each time- I was not iteration on previous results. I had noticed that after finishing a calibration, after a restart, but before re-loading the yaml, the width and height had been updated to values from the previous calibration.
With the intention of now exploring the iterative process, I returned to the original landscape orientation and ran a new calibration. 500 passes resulted in
Fitness: 1.428265371706063
Maslow_tlX: 0.0
Maslow_tlY: 2363.4
Maslow_trX: 3578.0
Maslow_trY: 2363.0
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3571.9
Maslow_brY: 0.0
After restarting, I noticed that the values in the calibration configuration dialog had not been updated. Without thinking, I hit save, and downloaded the yaml file, only to discover that it contained updated values except the ones that had been overwritten by my saving the configuration.
At this point I should mention one issue that I had noted intermittently. Sometimes the calibration configuration dialog would contain what appear to be parsing errors such as seen here in the calibration grid width
I saw this in various fields, but never more than one at a time, and I feel like it may have been in cases where I suffered a disconnect and reloaded without first closing the old page/tab. I can’t be certain of this, but once I noted this it seemed to hold true.
So I did another calibration from a clean yaml
Fitness: 1.2425819411341716
Maslow_tlX: -5.1
Maslow_tlY: 2369.6
Maslow_trX: 3578.2
Maslow_trY: 2363.0
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3563.3
Maslow_brY: 0.0
which disconnected right at completion but was my only successful recovery- then without replacing the yaml went to a 600mmx300mm 4x3 (still with no belt tending)
Fitness: 0.6768156527426736
Maslow_tlX: -5.0
Maslow_tlY: 2369.4
Maslow_trX: 3577.7
Maslow_trY: 2363.0
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3563.3
Maslow_brY: 0.0
I then followed this up, again without replacing the yaml, with a 2000mmx1000mm 10x10. Unfortunately this failed at point 65, was not recoverable, and at this point it was 2am so I quit.
I did feel like I had to tend the belts a bit on this last large calibration. The scariest moment was near the beginning when it was moving from the bottom center to the bottom left- there were loose loops of belt which I was afraid might cause them to be caught in the gears, but gently pulling the affected belt was sufficient. Watching the process, belt tending was much more of an issue the closer the sled was to an anchor, as there was more belt on the spool and thus it spilled over.
On the other hand, since the ‘trailing’ belts are in compliant/'extend all" mode, anything other than the gentlest handling caused additional belt to be fed. Except for the lefthand most set of points, I did not tend the belts (although I never felt comfortable not continuously monitoring them), and the calibration failed before it reached the right side.
Here are all of the terminal logs for all the (successful) calibrations (and the last failed one) in case there might be anything of value there (unlikely). <edit- reuploaded w/ better headers>
Maslow Calibrations.txt (32.9 KB)
And here is the spread sheet with all the normalized values.
Maslow 4 Calibration Calculations Pass 21-4-24.xlsx (16.6 KB)
I expected the two diagonal values (E and F) to have a lower variation that the four sides, as I would expect cumulative errors to cancel out, and in general this is true.
What I find extremely interesting is that the normalized “D” value- which remember represents different sides with different orientation- has an extremely low variation. It would appear that there may be some bias in the calculations, and that it might be based on the relative locations of anchors to one another- not to the M4’s orintation. If this is the case, this might explain why some users have very straightforward calibration experience, while others struggle.