New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Understanding AUTOBEDLEVELING/AUTO BED LEVELING #7562
Comments
BULL FU#$K!#g $H!+ You put stuff like this in your post and you don't expect some discussion?
At: There are simple directions that tell you how to bring up UBL after you can
M502 ; Reset settings to configuration defaults...
M500 ; ...and Save to EEPROM. Use this on a new install.
M501 ; Read back in the saved EEPROM.
M190 S65 ; Not required, but having the printer at temperature helps accuracy
M104 S210 ; Not required, but having the printer at temperature helps accuracy
G28 ; Home XYZ.
G29 P1 ; Do automated probing of the bed.
G29 P2 B T ; Do manual probing of unprobed points. Requires LCD.
G29 P3 T ; Repeat until all mesh points are filled in.
G29 T ; View the Z compensation values.
G29 S1 ; Save UBL mesh points to EEPROM.
G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
G29 A ; Activate the UBL System.
M500 ; Save current setup. WARNING: UBL will be active at power up, before any `G28`.
;---------------------------------------------
;--- Fine Tuning of the mesh happens below ---
;---------------------------------------------
G26 C P T3.0 ; Produce mesh validation pattern with primed nozzle PLA temperatures
; are assumed unless you specify B 105 H 225 for ABS Plastic
G29 P4 T ; Move nozzle to 'bad' areas and fine tune the values if needed
; Repeat G26 and G29 P4 T commands as needed.
G29 S1 ; Save UBL mesh values to EEPROM.
M500 ; Resave UBL's state information. How about you ACTUALLY TRY THOSE DIRECTIONS before you post crap like that. I bet those steps pretty much get you perfect adhesion across 100% of your bed 100% of the time.
Please JUST FOLLOW THOSE STEPS. And no discussion from you until you do! |
Show some initiative. JUST DO IT and see what happens. |
The automated G29 P1 probing does NOT need any configuration of probe points. It is building a mesh. Just do it and watch it probe the entire bed to get the first iteration of the automatically generated mesh. Everything after this step is aimed at filling in unprobed mesh points and further refinement of the accuracy of those mesh points. |
Isn't there already a guide in the documentation? |
@Roxy-3D . I'm googlized now ! |
@Roxy-3D @thinkyhead Issues Curiosity 1-) Why no LCD menu for FADE HEIGHT ? very usefull to SEE and to SET I don't know i have made ' right ' questions , but , all help about each topic will be appreciated THks |
G29 J is used to tilt the mesh. You can save the tilted mesh if it really does make sense. But I doubt that really makes sense most of the time..
I use G29 W (What? command)
10mm. UBL was developed with that number and it is well tested. It is possible some people need or want a different number. But pretty much, 10mm works for most printers. 4-) How to purge EEPROM and delete all grid You could do a G29 P0 which will zero the current mesh. And then save it on top of any mesh you want destroyed. 5-) Why the ubl utility in lcd menu tell me to choose my number point and my custom grid , and when i make a grid outside of the ubl menu , the grid is made with the number points defined on the firmware I'm not sure what you are looking at. You should probably give us the full path through the LCD Menus so we know what you are seeing. @Tannoo might know the answer off of the top of his head.
I guess nobody has gotten around to adding that if it isn't there. For that kind of stuff, I would just use PronterFace to send a G29 F 12.34 if I wanted to change it. For me, command line control is easier.
I'm not sure that is true. This text can be found at: https://github.com/MarlinFirmware/MarlinDocumentation/blob/master/_features/unified_bed_leveling.md The following command sequence can then be used to home, level, and then fine-tune the results: M502 ; Reset settings to configuration defaults...
The mesh is very expensive from a RAM memory perspective. And the access to the mesh is optimized in a number of ways. Pretty much, if you want to change the mesh dimensions, you need to re-build the firmware. Most people don't change mesh sizes. In fact, the most common mesh dimensions are 10 x 10 and that seems to work for most machines. I'm currently using 10 x 10 on my 400 mm x 400 mm printer.
I'm not sure this is true. I see at least two G29 S1's in the step by step directions at: https://github.com/MarlinFirmware/MarlinDocumentation/blob/master/_features/unified_bed_leveling.md And the M500 at the end will save the mesh if the firmware is configured that way. |
I am lost.
You mean this one?
It shows this on the LCD: Scroll down in the UBL Step-by-Step menu to see all options. You will see seven of them. Refresher on the Step-by-Step UBL:
By the LCD, there are two ways to see this:
|
@Tannoo ' I'm sure everybody is ok to say UBL is not an Easy access for '3d maker ' " , too much possibilities and user is lost between them. Not all maker are 'informaticians ' or ' devellopers ' , some are just ' artist or designer ' , and UBL technology not help them |
UBL is always evolving. The thought is, that one day it will be just a "point-and-level" solution. |
Some bad questions have been made , just for the only reason of my bad 'english' , but now , i have enough knowledge to understand them For fun , i will give here my own idea of the new ubl For gcode just activation on/off , fade height , and makemesh 'if bltouch ' it's enough |
Why stop there? Let's have one single GCode that says "Print the entire object perfectly." |
And with 300 000 km/s feedrate of course ! No ! if print is perfect , MARLIN COMMUNITY WILL DYE ;-) |
@Tannoo |
When building the mesh, it probes the closest points to the current postion of the nozzle. |
thks 👍 |
I have a question regarding this function: I 'm pretty sure this is not possible yet, but I think it would be a really nice addition to Marlin, especially considering the crazy high prices of torch height control devices, which makes them difficult to afford for DIYers. I have no idea if this is complicated to do or not to program though. Thanks a lot, sorry for the rather long message. |
I don't think this would be that hard to do. The problem you are fighting is most of the people doing the firmware have 3D-Printers and do not have CNC machines. So, they only see the problems that 3D-Printers have. They don't see the problems that CNC machines experience. There are a couple of options... We could probe a single location close to the cut and see how much it curled up... And raise the whole mesh that much. Or we could just raise the mesh points close to where the probe happened. And there are other questions: How often can we stop a cut and probe? If we can stop the cut often enough and probe to see what is happening... we could probably come up with an algorithm that does the 'right thing'. One problem to think about is the curl won't be uniform. Even if you get one cut done right, if you move some where else on the sheet and start cutting.... You will need a different offset because that location won't be curled. Maybe the firmware could always do a probe (along the projected cut line) before it starts a cut so it knows how to correct? |
Thanks for your answer Roxy :) Probing from time to time or only at the beginning of a path wouldn't work, because warp up is very significant on these machines. For some small sheets, warping during the cut can be more than 4-5 millimeters! That's why voltage measurement and height adjustments must be continuous. |
OK... We can use (or allow) the various bed leveling systems to work and help... But it sounds like we need a whole new GCode for doing laser cuts. And this new GCode would have various parameters.
Do you write C code? If somebody else doesn't help, I'll help... We can get this merged with very little work. |
Yes, indeed, It may need those parameters. I don't see any other ones aside from the ones you mentioned so I thing you pretty much covered it :) Unfortunately, I completely suck at coding, I can only do very, very basic things, and would be totally unable to code this in Marlin... If you could help with that to make it an "enable/disable" option, it would really be awesome, I think it could help many people who struggle with plasma height systems and have to pay big bucks for these ! Could finally make plasma cutting an option for the average DIYer! Again, a million thanks for your help ! |
Wow! Very cool! |
I want one ! Haha |
Use a loud glass on your parts . To press the objects on the table and to have constant height And after you will have to motorise the sensor to place it always in the next direction . If you measure the rear and go to the front .. measurement is wrong . Or place 4 sensors . |
The only solution is to unconnect z motor and add a new arduino board just programmed for the z teal time correction with a sensor capable of a peripheral area around the laser to make a mean correction for all direction |
Or glue the material to fight against warping |
These wouldn't work. I cannot glue the material to anything, because the way plasma cutters work. They blast high pressure air to evacuate the melted metal through the plate, so I cannot have anything on top of the plate or even under. The plate will be supported by some kind of mesh. But these are no concerns to me, the only problem is how can I feed this voltage information in real time to the control board, so that it can compensate the height automatically during the cut. I'm sure this is technically possible, because height compensation is something that Marlin already does in the autobed mesh leveling. The only difference here would be that the mesh leveling would not be done before the cut, but while cutting, on the fly. |
Yes. To simplify things we have removed this extra term. But there was a z_offset term that got added to every move. In the case of a CNC doing plasma cutting, we could put back in a term that factored in the current voltage and tracked that too. And we could make it break up mesh cells into 100 (10 x 10) smaller mesh cells where the voltage is factored in at each sub-mesh cell crossing. But to do this... Hardware is required. If you can put together a sensor that accurately measures the instantaneous cutting voltage... We can make a few additions to the code to factor that into compensation. I don't know that we will be successful. But from what I'm hearing I think it is likely to work.
Yes. It would be a combination. You would have a base level of correction for your CNC bed. But you would have dynamic correction based on the cutting voltage. |
Yes, I will make the sensor soon, it should not be too complicated. Just a little voltage divider and some filters to get a clean 0-5V signal from the original 0-96V of the cutter. I may use another small Arduino in between to clean the signal and add a few functions, then connect this Arduino to the Main Arduino controlling the CNC machine, through an unused pin. |
Ooooo... a trinket pro would work nicely with that. |
I know I'm paranoid. But a couple of zener diodes to clamp the voltages going to the A to D converter might make sense too.... |
My first idea would be to regularly (100ms?) test if to high or ot low and insert some babysteps into the right direction. This will resonate a bit, but be better than nothing. |
Marlin use a buffer of 16 lines , but the z axis can be adjusted for each moves , |
I have a question : Before to make this , a waste so many nights and day to debugg all you never believe it appears in this adventure , i'm sure you're not the one that have this , and may be , a big effort on google and all communauties , and may be some professionals , to know ,if something exist , and may be something ' chinese ' that cost nothing ' could exist and already made , may be ' lol |
Yeah... That was part of the idea of sub-dividing the normal mesh cells into something with a much finer resolution. Sort of like the Delta's do with the number of segments per second. But... The problem with that is those moves are calculated and buffered in advance. Your idea of doing it in real time is better. There could be some code down in the stepper motor ISR that is monitoring the voltage and tracking it with baby steps up or down. That would do a much better job tracking the cut. |
Oh, yes, I didn't mention it but I did quite a lot of research and made my homework before asking this question here, of course. There are in fact two solutions, but none of them really satisfy me: "Your idea of doing it in real time is better. There could be some code down in the stepper motor ISR that is monitoring the voltage and tracking it with baby steps up or down. That would do a much better job tracking the cut." Yes, I think this would be the perfect solution |
If you want to do 'cut leveling' with Marlin's auto bed leveling systems.... I'll help.... I suspect there are a number of people that want to do Additive & Subtractive printing with Marlin. If somebody can do plasma cutting height sensors for a few dollars using a voltage divider and a couple of zener diodes... It opens a whole bunch of new doors.... |
I have a dual lead screw system where my bed just needs tilt correction before printing, but with UBL over the past two days, I have followed the guide and made a good mesh for PLA, but when I execute G29 L1, G29 J in my gcode to compensate for tilt on that specific print, the leveling stops and does not tram at all. I think this is an issue with fade hight, loading of the mesh via gcode send via octoprint and needs to be sent with a pause in between, or a factor In UBL that makes it not work well with a moving z bed. but I dont know where to start troubleshooting other than just going though the UBL guide a fourth time |
@mjc619 - I applaud you for searching before posting, but if you want support for your problem, highjacking someone elses thread is not the way to do it. You really need to open a new issue for tracking your problem (and please pay attention to the template contents because if you include all the relevant info asked for when you open it, you'll have the best chance of getting a response from someone who can help). Good luck ! -=dave |
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. |
What autobedleveling do
The magic of FADE_HEIGHT
Unified Bed Leveling
Why UBL ?
Thks to @Roxy-3D
For better results
Thks for all that want to complete this topic
How UBL works
For the moment UBL is too young , and not simplified , you have 20/30 menus and submenus but in resuming it's just a one click all in one system , I'm sure in a close future , UBL , will be a total automated system.
LCD Guide
Before
-Mesh Inset must be good , if not , the probe can not go everywhere , if you choose a 3x3 grid ' in firmware' , your mesh must probe 9 times if not , set better the MESH INSET , or use the manual mode
-Try to inform the firmware of the area the probe can reach , if not , you will have 'unprobed zone ' and you willl have to make it manually and it takes time for nothing.
-INITIALISATION OF MEMORY , if not , you will have bip and bip and nothing else
After
Create cold mesh in menu ' you can heat the bed and nozzle if you want precision '
Store in a Slot
Activate UBL
Store EEPROM if you want to keep this settings for the next boot ' the mesh is stored but not activated
Test
you make a movement NOT BY LCD , you need a true GCODE INSTRUCTION ,of x or y and you see if z motors move to make correction
If you want the perfect correction you use ' validate menu' and a test print will start
after the print , you can adjust , add points , add new values in manual mode , or increase the auto grid
Print Behavior
With UBL precision , your first layer will be perfect mathematicly and it's a problem for users that never have this precise settings. Why ? Because the first layer is not compressed and the risk of bad printing is possible , then , ask to your slicer , to reduce a little the first layer height and SLOW the speed , the extrusion will have no pressure on the build plate and , the fixation of the melt plastic can be corrupted.
it's why , the print test is included in the menus , because , it's not possible to make an UBL without human intervention to validate before use
You can reduce height , but you can increase extrusion too
Here are the gcode Steps , equal to LCD steps
No problem with this , let's follow
For better probing , bed and nozzles heated
Homing ' of course '
Now you need to probe the needed point or the desired points as you want
Or
Or
Probing is finished , and the map must be stored
The miracle now !!! The famous height of the perfect linearised layer with all your axes
Permanent parameter :: ON/OFF after booting , if saved in EEPROM take care !
No need of G29 , before printing , once activated , you can print directly .
Autotesting Pattern
This tool 'if defined in Firmware ' will heat bed and nozzle as specify and print some lines , you will now see where you need to add some probing points to perfect you mesh but always with the minimum points as possible ' of course'
Now I'm sure everybody has a better vision of the AUTOLEVELING system and all types, you can now access to the firmware documentation here
http://marlinfw.org/docs/features/unified_bed_leveling.html
Thks For all devellopers !
Enjoy !
The text was updated successfully, but these errors were encountered: