Auto level washer height display?

I just updated the Firmware in the Mini for the school where I volunteer. It’s been a while, and we wanted to switch to a version that incorporates the bed leveling failure detection.

I was quite disappointed to see that the results showing the height of each washer probe stopping point are no longer displayed. We checked these numbers as a means of checking the x-axis carriage leveling. It was a quick and accurate, “no tools required” method of checking the level.

Is there an easy way to make it display these numbers again? Ideally we’d want them to show up each time the auto-level ran, but if that’s not a simple thing to do, is there a command I can type that would report them out after the fact. Failing that, is there a simple way to read/decode the bed level matrix that is reported now, so we can use that to guide us in making a correction?

The new probing code in the 1.1.0.10 firmware eliminated that output, unless you specifically ask for it when issuing the G29 command.

Change the “G29” line in your startup scripts to “G29 V3”. I think that will provide what you want (plus a bit more). You can also try “G29 V4” if you want to see all the data available.

For example, here is a run using “G29 V3”:

Send: G29 V3
Recv: G29 Auto Bed Leveling
Recv: Bed X: 0.000 Y: -6.000 Z: -2.435
Recv: Bed X: 164.000 Y: -6.000 Z: -2.430
Recv: Bed X: 164.000 Y: 162.000 Z: -2.700
Recv: Bed X: 0.000 Y: 162.000 Z: -2.437
Recv: Eqn coefficients: a: -0.00080157 b: -0.00081990 d: -2.37155103
Recv: Mean of sampled points: -2.50062489
Recv: 
Recv: Bed Height Topography:
Recv:    +--- BACK --+
Recv:    |           |
Recv:  L |    (+)    | R
Recv:  E |           | I
Recv:  F | (-) N (+) | G
Recv:  T |           | H
Recv:    |    (-)    | T
Recv:    |           |
Recv:    O-- FRONT --+
Recv:  (0,0)
Recv:  +0.06312 -0.19938
Recv:  +0.06562 +0.07062
Recv: 
Recv: Bed Level Correction Matrix:
Recv: +1.000000 +0.000000 -0.000802
Recv: -0.000001 +1.000000 -0.000820
Recv: +0.000802 +0.000820 +0.999999
Recv: X:0.00 Y:162.00 Z:1.43 E:0.00 Count X: 0 Y:16281 Z:2075
Recv: ok

Thanks, Scott. V3 and V4 both displayed it.

I went in and edited the profiles for the filaments commonly used by the class on my Mac, so it will always display. I’ve just got to remember where those profiles are on the school’s Windows laptop.

If I recall, last time I tried to edit one to change the filament diameter default for HIPS to something closer to what we typically see, I was locked out of it. I never did go back and poke around to see if I could get around that block.

You could customize the firmware instead. The block of code which outputs those lines begins with “If (verbose_level >2)”, so just change “2” to “0”, recompile, and flash the resulting hex file. Then those lines would be output by default with G29, just as in older versions of firmware, and you would not need to change multiple slicer profiles on multiple computers.

Changing the firmware requires caution – i.e., only make a change if you are POSITIVE you understand the code in question, how the machine will respond, and how slicing/control software will interact with your change. It is entirely possible to cause physical damage to the machine with the wrong changes, and warranty isn’t going to cover damage if your modifications caused it.

If you want to investigate this route further… Lulzbot has a general guide for setting up the arduino environment at the link below. That is a little outdated (refers to arduino 1.05), but the process is the same for newer versions. I have been using 1.6.9 to compile the Marlin 1.1.xxx builds from Lulzbot, and the Lulzbot-provided 1.1.xxx source files include the necessary libraries/addons for arduino 1.6.x.
https://ohai.lulzbot.com/project/arduino_modifications/firmware-flashing/

I couldn’t get the link to work, but found it anyway (at the same address as the link that I could not get to work). Should I download Arduino 1.8.0, or the 1.6.9 version you are using (or perhaps 1.6.12 which is the most recent 1.6.x version they show)?

I thought I’d take a look. I have some programming background, but that was many years ago (BASIC and Pascal back in the '80s and late '70s). I’ll be careful, but I assume this is a relatively harmless change.

I would suggest 1.6.9, because… The latest I have used is 1.6.9, and I can verify that it works – and that the Lulzbot source files include libraries appropriate for 1.6.9. I only “dabble” in arduino, so I can’t vouch for 1.6.12 (it may be fine, or better, I just don’t know), nor can I say whether the libraries for 1.6.x would work with 1.8.x versions.

Let me see what else I can do to help… I will send you a PM so we can talk offline.