Check Level Hot.gcode

To set the calibration grid on the touch panel:

  • swipe from right to left
  • Settings
  • 3D printing
  • Calibration Grid

The output I get when executing M420V is (yest still a bad leveling, still not properly mounted, just wanted to test):

Send: M420V
Recv: Bilinear Leveling Grid:
Recv:       0      1      2      3      4
Recv:  0 +8.274 +8.334 +8.246 +8.202 +8.147
Recv:  1 +8.482 +8.601 +8.581 +8.600 +8.600
Recv:  2 +8.526 +8.686 +8.675 +8.791 +8.799
Recv:  3 +8.426 +8.641 +8.709 +8.829 +8.866
Recv:  4 +8.255 +8.457 +8.644 +8.752 +8.891
Recv: 
Recv: Subdivided with CATMULL ROM Leveling Grid:
Recv:         0        1        2        3        4        5        6        7        8        9       10       11       12
Recv:  0 +8.27375 +8.29921 +8.32467 +8.33375 +8.31389 +8.27763 +8.24625 +8.22884 +8.21629 +8.20250 +8.18500 +8.16625 +8.14750
Recv:  1 +8.34944 +8.38148 +8.41352 +8.42967 +8.41790 +8.39023 +8.36685 +8.35631 +8.35007 +8.34264 +8.33179 +8.31976 +8.30773
Recv:  2 +8.42514 +8.46376 +8.50238 +8.52560 +8.52191 +8.50282 +8.48745 +8.48379 +8.48384 +8.48277 +8.47859 +8.47327 +8.46796
Recv:  3 +8.48250 +8.52722 +8.57194 +8.60125 +8.60342 +8.59018 +8.58125 +8.58532 +8.59370 +8.60000 +8.60139 +8.60069 +8.60000
Recv:  4 +8.51463 +8.56456 +8.61449 +8.64791 +8.65132 +8.63821 +8.63259 +8.64671 +8.66832 +8.68472 +8.68992 +8.68991 +8.68990
Recv:  5 +8.52842 +8.58309 +8.63775 +8.67430 +8.67671 +8.66100 +8.65713 +8.68215 +8.71902 +8.74652 +8.75447 +8.75304 +8.75162
Recv:  6 +8.52625 +8.58592 +8.64560 +8.68625 +8.69046 +8.67565 +8.67500 +8.70833 +8.75583 +8.79125 +8.80180 +8.80027 +8.79875
Recv:  7 +8.50620 +8.57249 +8.63878 +8.68602 +8.69717 +8.68928 +8.69435 +8.73151 +8.78164 +8.81935 +8.83203 +8.83228 +8.83254
Recv:  8 +8.47018 +8.54336 +8.61654 +8.67134 +8.69225 +8.69477 +8.70703 +8.74543 +8.79356 +8.83037 +8.84505 +8.84840 +8.85176
Recv:  9 +8.42625 +8.50338 +8.58051 +8.64125 +8.67273 +8.68782 +8.70875 +8.74791 +8.79291 +8.82875 +8.84736 +8.85680 +8.86625
Recv: 10 +8.37444 +8.45052 +8.52660 +8.59027 +8.63277 +8.66284 +8.69439 +8.73444 +8.77595 +8.81176 +8.83755 +8.85764 +8.87773
Recv: 11 +8.31472 +8.38681 +8.45890 +8.52389 +8.57821 +8.62543 +8.66907 +8.70953 +8.74642 +8.78213 +8.81704 +8.85076 +8.88449
Recv: 12 +8.25500 +8.32310 +8.39120 +8.45750 +8.52365 +8.58801 +8.64375 +8.68463 +8.71689 +8.75250 +8.79653 +8.84388 +8.89125
Recv: 
Recv: leveling OFF
Recv: echo:Bed Leveling OFF
Recv: echo:Fade Height OFF
Recv: ok

edit:
I just tried it with the 3x3 grid and it actually still works for me.

I think I will buy my a rope!

this is exactly what I am getting too! But the damned thing wont work.

By the way, the “cellphone” has set the 5x5, but BedV… only did a 3x3!

So the question again: is this code as yours?

M420 V ;get data
G1029 A :leveling
G1029 S ;save data
G1029 D0 ;end leveling
M420 V ;get recent data
G28

and this setting too:

image

please tell me there is any difference beside the debug logging! PLEASE

I just have the M420V command in there (I only used it to visualize so far)

But now I have been able to reproduce your problem :rofl:

I messed up the calibration on purpose to make sure the orientation of the graph and bed was as I expected and put a piece of metal underneath it (to make sure I could see a spike of 1cm in the graph :slight_smile: And now it’s also waiting infinitely.

I’ll keep doing some more experiments.

I have always been running calibration from the touch screen btw

What shi…is going on?

I did the calibration from the “cellphone” too, thats the only thing I use it for.
This is the intention getting this thing to work!

BTW: Thanks for your help!

@brent113

Hello brent, can you share a bit of your skill to me?
Where are the G commands like 1026 1029 … are documented
or can you expand my knoledge in this direction?

They are not documented officially :confused:

I usually reference either the source code G1029 or @Tone’s post here: How to do a larger than 3 x 3 matrix level

whats a shame, think they shoud!

But thanks for the hint

Ok, at least one “bug” so far in the bed level visualizer. If the measured value is above 10 (or something in that neighborhood at least), I get the endless loading screen.

So this:

Send: M420 V
Recv: Bilinear Leveling Grid:
Recv:       0      1      2
Recv:  0 +17.042 +17.024 +17.056
Recv:  1 +17.405 +17.510 +17.776
Recv:  2 +17.014 +17.409 +17.840
Recv: 
Recv: Subdivided with CATMULL ROM Leveling Grid:
Recv:         0        1        2        3        4        5        6
Recv:  0 +17.04250 +17.03435 +17.02620 +17.02375 +17.03079 +17.04352 +17.05625
Recv:  1 +17.19125 +17.19312 +17.19499 +17.20760 +17.23809 +17.27932 +17.32056
Recv:  2 +17.34000 +17.35189 +17.36377 +17.39144 +17.44539 +17.51513 +17.58486
Recv:  3 +17.40500 +17.43403 +17.46306 +17.51000 +17.58681 +17.68153 +17.77625
Recv:  4 +17.33042 +17.38846 +17.44650 +17.51977 +17.61840 +17.73226 +17.84611
Recv:  5 +17.17208 +17.26627 +17.36045 +17.46426 +17.58411 +17.71358 +17.84305
Recv:  6 +17.01375 +17.14407 +17.27440 +17.40875 +17.54981 +17.69491 +17.84000
Recv: 
Recv: leveling ON
Recv: echo:Bed Leveling ON
Recv: echo:Fade Height OFF
Recv: ok

results in the endless loading loop and this:

Send: M420V
Recv: Bilinear Leveling Grid:
Recv:       0      1      2
Recv:  0 +8.490 +8.435 +8.379
Recv:  1 +8.736 +8.875 +8.989
Recv:  2 +8.491 +8.839 +9.108
Recv: 
Recv: Subdivided with CATMULL ROM Leveling Grid:
Recv:         0        1        2        3        4        5        6
Recv:  0 +8.49000 +8.47171 +8.45342 +8.43500 +8.41634 +8.39755 +8.37875
Recv:  1 +8.59028 +8.59359 +8.59689 +8.59931 +8.60023 +8.60025 +8.60028
Recv:  2 +8.69055 +8.71546 +8.74036 +8.76361 +8.78411 +8.80296 +8.82181
Recv:  3 +8.73625 +8.78343 +8.83060 +8.87500 +8.91477 +8.95176 +8.98875
Recv:  4 +8.69097 +8.76155 +8.83213 +8.89819 +8.95672 +9.01072 +9.06472
Recv:  5 +8.59111 +8.68578 +8.78044 +8.86847 +8.94544 +9.01578 +9.08611
Recv:  6 +8.49125 +8.61000 +8.72875 +8.83875 +8.93417 +9.02083 +9.10750
Recv: 
Recv: leveling ON
Recv: echo:Bed Leveling ON
Recv: echo:Fade Height OFF
Recv: ok

just works.

(yes, I followed the printhead around with a piece of metal to get that first measurement :innocent:)

So that points to a bug in the bed level visualizer (didn’t go looking in the code yet). Even though I have the graph Z-limit set to 20 in the config.

I noticed that in one of your previous posts you had values >15 so that might be the reason why you’re getting the infinite loading screen.

edit: the magic number seems to be 10, this one doesn’t work anymore either:

Send: M420V
Recv: Bilinear Leveling Grid:
Recv:       0      1      2
Recv:  0 +8.490 +8.419 +10.171
Recv:  1 +8.739 +8.872 +10.865
Recv:  2 +8.502 +8.851 +9.120
Recv: 
Recv: Subdivided with CATMULL ROM Leveling Grid:
Recv:         0        1        2        3        4        5        6
Recv:  0 +8.49000 +8.39870 +8.30741 +8.41875 +8.86782 +9.51954 +10.17125
Recv:  1 +8.59088 +8.51910 +8.44732 +8.58759 +9.08130 +9.78706 +10.49282
Recv:  2 +8.69176 +8.63949 +8.58722 +8.75643 +9.29477 +10.05458 +10.81440
Recv:  3 +8.73875 +8.71449 +8.69023 +8.87250 +9.39898 +10.13199 +10.86500
Recv:  4 +8.69593 +8.71383 +8.73173 +8.90060 +9.32108 +9.89253 +10.46398
Recv:  5 +8.59921 +8.66777 +8.73633 +8.87593 +9.13392 +9.46295 +9.79199
Recv:  6 +8.50250 +8.62171 +8.74093 +8.85125 +8.94676 +9.03338 +9.12000
Recv: 
Recv: leveling ON
Recv: echo:Bed Leveling ON
Recv: echo:Fade Height OFF
Recv: ok

edit2:
So I assume there is some regular expression parsing the data that expects only one digit before the decimal point. But my python isn’t great so can’t put my finger on it yet. (And I hate programming languages that use whitespace as a part of the language…) It would have helped if it was somewhat documented in code as well.

Will you file the bug at bedlevelvisualizer? :slight_smile:

Yes I will do it thanks so long!

1 Like

Ok,
it seems to be line 44 in this file:
https://github.com/jneilliii/OctoPrint-BedLevelVisualizer/blob/master/octoprint_bedlevelvisualizer/__init__.py

in particular this part:
(\s*\[\s+)|(\[?\s?\+?-?\d?\.\d+\]?\s*,?)

which should need to be:
(\s*\[\s+)|(\[?\s?\+?-?\d+?\.\d+\]?\s*,?)
(the added + after the first d)

if I’m correct.
and this regex validator seems to confirm this:

Don’t know if it has any impact on the rest of the code. but would hope not.

1 Like

I did the same with a bit of plastic and the 0,0 corner is correct. I thought originally I had to flip but not the correct setting is with none ticked.

@brvdboss HiHi just found the hearts for likes, you are unbelivibel!

@Tigercjn

what do you mean?

Looks like there is already a new release candidate that takes the change into account.
That was fast (haven’t tested it yet)

1 Like

Tested and … it works great!
Thanks for your “going into the deep” it solves the problem at least!

Just to prove the calibration lines up with the Mesh by raising one corner of the bed with some plastic between the platform and the plate to confirming the change is registered in the Mesh in the expected location.

Great debugging guys, @brvdboss That edit fixed my loading issue,

i had to edit it in the installed files on my Octoprint
~/oprint/lib/python2.7/site-packages/octoprint_bedlevelvisualizer/__init__.py (for anyone whos looking for it) Then added the “+” after the first “\d” as provided above
(\s*[\s+)|([?\s?+?-?\d+?.\d+]?\s*,?)
and then rebooted and ran the M420V (also had to up the Z limit to 5,20)
WORKED!@

You don’t have to do the edit manually anymore. The last release candidates already include the fix. You can go to the update settings for octoprint and allow it to use release candidates:

And this is my very basic configuration of the plugin:

I originally misunderstood the z-limit. If you use relative z-offset you can specify “-1,1” (or larger numbers if needed, default is -2,2). That defines how far up/down it shows from the origin height.

Hi nfmaas, did you figure out your z axes issues, I just go my Snapmaker the ending of last year and z axes linear modules would appear to lag each other sometimes on the first 15 layers. I took apart the unit several times only enough to try to level the unit and make sure the linear modules was not binding each other. The last attempt I took the unit completely apart and as I got to the cable attached to the z converter I found one of the cables came off with out pushing the lock. The loose cable on the converter seem to add enough of a lag on the signal to the linear module. After securing the cables and putting the unit back together I have not seen a lag between the z linear modules.

1 Like

I mailed snapmaker with the issue i had and they sended me two new rail modules. After that the calibration was a lot better.