Bed Level Visualizer

This is what i get back after G29 T

Send: G28
Send: G29 T
Recv: Servo 0: self-checking...
Recv: Servo 0: self-checking is completed
Recv: we last said to move to Z: 15.000000
Recv: Hit endstop Z: -150.619995
Recv: we last said to move to Z: 15.000000
Recv: Hit endstop Z: -150.622498
Recv: we last said to move to Z: -150.625000
Recv: Hit endstop Z: -150.677505
Recv: Llit x: 160.000000 y: 160.000000 z: -150.679993
Recv: ok
Recv: position before G29 x: 201.000000 y: 160.000000 z: 2.000000
Recv: raise extruder Z0: 15.000000
Send: M105
Recv: we last said to move to Z: 15.000000
Recv: Hit endstop Z: 3.200000
Send: M105
Recv: we last said to move to Z: 15.000000
Recv: Hit endstop Z: 3.207500
Recv: we last said to move to Z: 3.205000
Recv: Hit endstop Z: 3.182500
Recv: Llit x: 60.000000 y: 60.000000 z: 3.180000
Recv: raise extruder Z1: 13.180000
Send: M105
Recv: we last said to move to Z: 13.180000
Recv: Hit endstop Z: 2.250000
Send: M105
Recv: we last said to move to Z: 13.180000
Recv: Hit endstop Z: 2.245000
Recv: we last said to move to Z: 2.242500
Recv: Hit endstop Z: 2.280000
Recv: Llit x: 165.000000 y: 60.000000 z: 2.277500
Recv: raise extruder Z2: 12.277500
Send: M105
Recv: we last said to move to Z: 12.277500
Recv: Hit endstop Z: 1.432500
Recv: we last said to move to Z: 12.277500
Recv: Hit endstop Z: 1.455000
Recv: we last said to move to Z: 1.452500
Recv: Hit endstop Z: 1.455000
Recv: Llit x: 270.000000 y: 60.000000 z: 1.452500
Recv: raise extruder Z3: 11.452500
Recv: we last said to move to Z: 11.452500
Recv: Hit endstop Z: 1.107500
Recv: we last said to move to Z: 11.452500
Recv: Hit endstop Z: 1.117500
Recv: we last said to move to Z: 1.115000
Recv: Hit endstop Z: 1.112500
Recv: Llit x: 270.000000 y: 171.000000 z: 1.110000
Recv: raise extruder Z4: 11.110000
Recv: we last said to move to Z: 11.110000
Recv: Hit endstop Z: 2.057500
Recv: we last said to move to Z: 11.110000
Recv: Hit endstop Z: 2.050000
Recv: we last said to move to Z: 2.047500
Recv: Hit endstop Z: 2.037500
Recv: Llit x: 165.000000 y: 171.000000 z: 2.035000
Recv: raise extruder Z5: 12.035000
Recv: we last said to move to Z: 12.035000
Recv: Hit endstop Z: 3.032500
Recv: we last said to move to Z: 12.035000
Recv: Hit endstop Z: 3.045000
Recv: we last said to move to Z: 3.042500
Recv: Hit endstop Z: 3.047500
Recv: Llit x: 60.000000 y: 171.000000 z: 3.045000
Recv: raise extruder Z6: 13.045000
Recv: we last said to move to Z: 13.045000
Recv: Hit endstop Z: 2.840000
Recv: we last said to move to Z: 13.045000
Recv: Hit endstop Z: 2.815000
Recv: we last said to move to Z: 2.812500
Recv: Hit endstop Z: 2.835000
Recv: Llit x: 60.000000 y: 282.000000 z: 2.832500
Recv: raise extruder Z7: 12.832500
Recv: we last said to move to Z: 12.832500
Recv: Hit endstop Z: 1.815000
Recv: we last said to move to Z: 12.832500
Recv: Hit endstop Z: 1.775000
Recv: we last said to move to Z: 1.772500
Recv: Hit endstop Z: 1.782500
Recv: Llit x: 165.000000 y: 282.000000 z: 1.780000
Recv: raise extruder Z8: 11.780000
Recv: we last said to move to Z: 11.780000
Recv: Hit endstop Z: 0.855000
Recv: we last said to move to Z: 11.780000
Recv: Hit endstop Z: 0.877500
Recv: we last said to move to Z: 0.875000
Recv: Hit endstop Z: 0.882500
Recv: Llit x: 270.000000 y: 282.000000 z: 0.880000
Recv: AUU:Eqn coefficients: a: -0.008913 b: -0.002128 d: 3.900381
Recv:
Recv: TOO:planeNormal x: 0.008913 y: 0.002128 z: 1.000000
Recv:
Recv: ok
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105
Recv: ok T:19.8 /0.0 B:17.2 /0.0 F:0 R:100 @:0 B@:0
Send: M105

I think i see why it's not working now...translation of text is making the regular expression to not match the word "Bed" at the beginning of the line. I'll have to add support for this.

This would be awesome if u can do this. :grinning:
Thanks a lot.

You know, about five years ago I had a PR merged on Marlin that stopped the nonsense of translating machine readable protocol messages. I guess some vendors/firmware variants still didn't get the message though 🤦

What's weird is it seems some of the messages are coming in as English and some as German(?). Isn't there a built in mechanism in octoprint for translations that I could use for returning the correct text for my regular expression?

Can someone tell me if it works with marlin. my output is in this format.
G29

Recv: echo: 0 +0.143 +0.052 -0.175
Recv: echo: 1 -0.058 +0.024 -0.049
Recv: echo: 2 -0.205 +0.005 +0.120
thx
Andrea

That should definitely work if you configure your gcode option correctly in the plugin's settings. Should be something like.

M155 S30	
@BEDLEVELVISUALIZER	
G29 T	
M155 S3

no working with this code , it did'nt collect data even if I have date in terminalthisd is what I get

Printer seems to support the busy protocol, will adjust timeouts and set busy interval accordingly
[...]

Printer seems to support the busy protocol, will adjust timeouts and set busy interval accordingly

Recv: busy:processing
[...]
Recv: X:114.00 Y:294.00 Z:13.700 E:0.0000
Recv: ok
Send: M113 S2
Recv: G29 Auto Bed Leveling
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
Recv: Z-probe:0.074 X:60.000 Y:20.000
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
Recv: Z-probe:-0.067 X:130.000 Y:20.000
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
Recv: Z-probe:-0.384 X:200.000 Y:20.000
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
Recv: Z-probe:-0.180 X:200.000 Y:135.000
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: Z-probe:-0.040 X:130.000 Y:135.000
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: Z-probe:-0.050 X:60.000 Y:135.000
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: Z-probe:-0.163 X:60.000 Y:250.000
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: Z-probe:0.023 X:130.000 Y:250.000
[...]
Recv: busy:processing
[...]
Recv: busy:processing
[...]
Recv: busy:processing
Recv: Z-probe:0.110 X:200.000 Y:250.000
[...]
Recv: busy:processing
Recv: echo:Bilinear Leveling Grid:
Recv: echo: 0 1 2
Recv: echo: 0 +0.074 -0.067 -0.384
Recv: echo: 1 -0.050 -0.040 -0.180
Recv: echo: 2 -0.163 +0.023 +0.110
Recv:
Recv: X:200.00 Y:289.00 Z:13.590 E:0.0000
Recv: ok
Recv: ok

Any idea?
Firmware is Marlinkimbra a derivate from Marlin

I tried
G28
@BEDLEVELVISUALIZER
G29 V4

and

M155 S30
@BEDLEVELVISUALIZER
G29 T
M155 S3

same results

I just released an updated version that may work for you. It's version 0.1.8 and adds the newer marlin bilinear and catmull rom expansion. I didn't write the code for this update, but based on what you have shown there it might work for you after enabling the Bilinear option in settings after updating.

is the geeetech a30 also working? or do you need some time for it? :blush: Can't wait for it :grimacing:

I just had to revert an update that has taken some time away from getting the a30 working for you. Sorry, I do this after hours during free time, sorry I haven't gotten to fix it for you yet.

Okok thx just asked :blush:

If I just want to view the last previously done leveling is it correct to just have M420 V in the GCODE commands text box?

Secondly, if I run a G29 automatically before each print, is that automatically saved to EEPROM or just used for that print and lost with powering off the printer?

(Anycubic Mega S / Marlin / Bltouch)

All of these questions are very firmware specific. For me on Marlin 1.1.9 with Unified Bed Leveling I can run the command G29 T and it will report the results of the mesh currently loaded, either from EEPROM after a fresh boot or from after running a leveling process and loaded into memory but not stored.

Thanks!

I'll check what G29 T does on mine.

Specifically, What codes ended up working for you, please?

Hi, I have an anycubic Chiron.

Used the g29 t code which seems to work fine and returns these codes
Recv: 0 -3.83 -3.98 -3.99 -4.11 -4.24
Recv: 1 -3.92 -3.99 -3.95 -4.03 -4.10
Recv: 2 -4.00 -3.99 -3.93 -3.96 -3.99
Recv: 3 -4.08 -4.03 -3.97 -3.98 -3.95
Recv: 4 -4.14 -4.10 -4.01 -4.01 -3.95

It’s also saved in the stored levels of your plugin. But the graph is empty. I take it that code is wrong?

Could be a browser/openGL related issue.

@jneilliii thx for the response, I’ve tried safari, chrome and edge with no success. I’ll attach screenshots