Closed WheresWaldo closed 7 years ago
Yeah, looks like all we need to do is set the whole bed as 'unreachable' and then G29 P2 will allow you to manually set every point.
@WheresWaldo:
Try this and tell me if this gives you what you want, effectively:
G29 I 999
G29 P2 B
@bgort 99% there, it duplicated the functionality perfectly, I knew it was there all along. The only thing missing is visual feedback, but that can wait until all the important things are done. Process leaves you at the info screen the entire time.
I would also see the possibility of a single menu item under UBL tools that would do the following
G28 G29 I 999 G29 P2 B G29 S1 M420 S1 M500
then even the menu functionality would be restored.
So then really all we need to do is add a menu item named 'MANUALLY GENERATE MESH' or something, which does G29 I <mesh points>
and then G29 P2 B
, and have some feedback on the screen during the G29 P2 process. I believe what you're looking for was there at one point, but maybe was removed.
Yep, that would do it. It results in a simple to use alternative that stores mesh information in the format UBL needs.
I'm not all that familiar with the menu system - and I think it's being worked on pretty regularly by others anyway - so I'm not the best person to do that, but I can look into the on-screen feedback, unless anyone else wants to do it.
Besides the nozzle moving so you can see where it is relative to the bed.... What else should be seen? Probably the current (X,Y,Z) location of the nozzle. Anything else? Right now G29 P2 just displays the normal Status Screen.
It can display anything that is useful.
Are the current encoder wheel multipliers and 'Steps per Menu Item' sufficient to get the Encoder Wheel to feel good while doing a G29 P2 ? I don't know what should be changed to make the P2 feel better.
Where in the menu would ya'll like MANUALLY GENERATE MESH
placed?
This will send G29 I999\nG29 P2 B
, correct?
How about we put it at the very top for a few weeks just so people know it is there. Later we can put it in a more reasonable place.
I tagged a T0
at the end for those who do want the serial output during the build.
Okay... #6972
Sorry was busy with life today, What MESH gave you was the number of the point being probed stating at 1 and ending with Rows X Columns and the Z adjustment that way when you turned the encoder not only did the nozzle move up or down, the numbers indicated just where you were. It was a great visual cue. Then pressing the encoder button saved the point and moved the head, incremented the point number and started the process again, when it was all done and the last point was accepted it would store memory to save the mesh. Nothing fancy, but if you wanted to give the array position and Z height that would be completely understandable and easy to communicate. So the menu option actually did more than just measure, pressing LEVEL would home x,y,z then wait for input (encoder click, which was totally unnecessary) then move to first point to start the process, at the last point it would home again and save memory and tell you it was done, then exit to the info screen after an encoder press.
Tannoo just added a command to invalidate the entire mesh and then manually probe it. (And I just merged it.) We put it at the very top of the UBL LCD menu so everybody that has been using the original Mesh Bed Leveling will know it is there.
But... UBL is setup to look for the closest point to the nozzle and do things with that. Everything is designed with the ability to edit (or probe) a region that continually expands until the user says "Good enough!" and stops it. The order the points are probed should not matter so long as they all get probed....
@Roxy-3D Understood, and noticed this behavior when auto-generating the mesh. Numbering sequentially like Edward did, I believe was a concession to ease of programming and display. If it is just the array location and Z then that would be enough to tell what was going on. As you said it doesn't matter what order they are probed as long as the whole bed is probed.
Originally I thought the UBL: Tools Menu would be a good place for this, but once you flush out the entire menu system some likely spot will jump out at you. There were a lot of people in my sphere that were lost and just reapeating over and over "MESH is going away" this completely allays those fears.
Heck it could be just an indicator of Z for the most part.
There were a lot of people in my sphere that were lost and just reapeating over and over "MESH is going away" this completely allays those fears.
Well... The original Mesh Bed Leveling will go away someday. But I suspect it is still with us for another 6 months. There is nothing saying it needs to go away soon. And actually... It is so small in size it might actually make sense to keep it around especially for small 128 KB processors.
The thing is this... The very important lessons and technology that the original Mesh Bed Leveling brought us have been fully understood and absorbed into the later systems. So from that stand point, the natural thing to do is 'move on'. But there is no requirement that happens soon. Mostly, the biggest motivation to do that is to reduce some of the complexity in the code base with all the conditional compilation. And like I say... that doesn't have to happen 'soon'.
That was one reason I had the utmost confidence that the ask here was something already in the code base for UBL and just not explored or exposed for consumer use. If this works and every indication is that it will work exactly or close enough to MESH, MESH code could be completely deprecated without anyone missing it. I also want to apologize if you felt slighted in any way by my insistence, that was not my intention. I was a program manager for, at the time, the number 3 producer of PC software products in the world, and some of that was bubbling back up to the surface.
Does this tell you why it easily got lost in the mix?
It was not intentionally left out. The UBL menu system has still got that new car smell.
Heck it could be just an indicator of Z for the most part.
I think just showing Z centered in the LCD is best/clearest. Can't imagine anyone will care what X and Y are.
Like: 'Z: +0.250 mm'
@bgort I think you are on the right track. Z is plenty
And actually... It is so small in size it might actually make sense to keep it around especially for small 128 KB processors.
Good point. Although, without adding any other bells and whistles, all the original bed leveling systems come in at a pretty small size. Here are some current build sizes…
Default config
Program: 52744
Data: 2615
ABL 3-point, Probe Manually
Program: 59664 (+6920)
Data: 2723 (+108)
Mesh Bed Leveling
Program: 60660 (+7916)
Data: 2707 (+92)
ABL Bilinear, Probe Manually
Program: 65190 (+12446)
Data: 2795 (+180)
ABL Linear, Probe Manually
Program: 69580 (+16836)
Data: 2872 (+257)
Default plus G3D_PANEL
Program: 81366
Data: 2924
ABL 3-point, Probe Manually, LCD_BED_LEVELING
Program: 90008 (+8642)
Data: 3046 (+122)
Mesh Bed Leveling
Program: 92670 (+11304)
Data: 3021 (+97)
ABL Bilinear, Probe Manually, LCD_BED_LEVELING
Program: 96442 (+15076)
Data: 3118 (+194)
ABL Linear, Probe Manually, LCD_BED_LEVELING
Program: 100232 (+18866)
Data: 3195 (+271)
I have a question about manually doing probing until this menu item is working completely. I'm still using 1.1.3 and I got the manual instructions from this thread and the other one opened by @WheresWaldo, so I'm doing:
G28 G29 I 999 G29 P2 B etc.
My question is that when I finish a homing (G28). The Z axis is at my M851 Z probe offset of 2.8. Before I issue the G29 commands, should I manually move the Z to 0? It seems like when I start the G29 P2 B command, on the first point, I have to crank the Z axis down to compensate for the offset, but then for the rest I don't.
In the old mesh bed leveling I believe that after the mesh was created, it would start automatically moving the Z to 0 after homing and maybe this will do the same once I have a mesh saved, but on the first try, do I need to manually do this?
Yes.... That sequence of commands should let you build a mesh manually. You will also notice other differences. It will probe the thickness of the business card or shim you are using. It is also going to probe the bed's mesh points in a different order.
But... You will be able to build a mesh, save it, and edit it to further refine it.
so once you get this all up and running what should starting gcode look like?
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
I think this question is directed at @Tannoo since the UBL menu is his creation. So I got UBL up and running as as I suspected if I auto-create the mesh I have to go back and tweak about 80 points of the 100. For me it is not worth the time and effort to figure out how to move the head to the correct spot and then edit the information for each of those points. So I am trying to figure out how to use the "business card" method to create the entire mesh from scratch. To say the UBL menu system is a bit less than intuitive is being kind. No disrespect to all the work you did, I wouldn't have gotten as far as I have without the UBL menu system. Is there a way to outline from start to finish what buttons must be pressed in what order to go from no UBL mesh to a complete and enabled UBL mesh, using just the LCD and manually measuring each point?
Sorry for being insistent on the user experience, but no matter how much better UBL is than MESH, one thing that can be said about Ed Patel's implementation is that it was easy to do, with very few steps. So at least, at this stage since better isn't really easy, it becomes a barrier to implement.