Welcome! Log In Create A New Profile

Advanced

Non-Flat Surface and Bed Auto Leveling

Posted by coultercs 
Non-Flat Surface and Bed Auto Leveling
September 13, 2016 03:35PM
My prior understanding of the auto leveling feature in Marlin firmware is that it assumes a flat surface, but titled at an angle. I did some searching and I’ve found some info hinting that mesh bed leveling does account for non-flat surfaces. Specifically here:

[github.com]

Can anyone confirm or deny there is a way to compensate for a non-flat surface with some form of the auto leveling feature? What version of Marlin firmware will do it (if any)?

I’m considering building my own large printer with a build plate of ~24” x 36”, but getting a large aluminum plate within 0.005”-0.010” flat is tricky. Alcoa offers Mic-6 flat plate, but it’s expensive. I’m skeptically about using glass. I was thinking about keeping it to PETG or other filaments that don’t exhibit very much shrinkage during printing / cooling.

Any advice would be helpful before I head down this path purchasing materials and potentially throwing money down the drain.

Thanks in advance for any input!
Re: Non-Flat Surface and Bed Auto Leveling
September 13, 2016 07:59PM
In the RC-7 version of Marlin there is the ability to turn on Mesh Leveling. It works very well for non-flat beds.

I'm currently working on a much fancier bed leveling system. It's foundation is a high resolution mesh that is auto probed (and saved). It also has a very easy to use interactive Mesh Editor along with a Mesh Validation command to show you if any areas of your Mesh are defective. You can get it here: [github.com]

It is in a development branch, but it works very well.

Edited 1 time(s). Last edit at 09/13/2016 07:59PM by Roxy.
Re: Non-Flat Surface and Bed Auto Leveling
September 13, 2016 11:33PM
Fantastic! Thank you for the conformation. I'll move forward my design and potential build. Anything specific about the mesh bed leveling I should know in advance before proceeding with a design?
Re: Non-Flat Surface and Bed Auto Leveling
September 14, 2016 09:36AM
The UBL System is trying to provide all the previous bed leveling capabilities and features for all machine types. But still, it wouldn't hurt to bring up the system on an existing printer and make a few simple prints. You will see how it works and what you can expect from it. I haven't started bringing up the code on Delta's yet. But that is the main motivation for what I'm doing. It is my hope (and expectation) that with a 15 x 15 Mesh, even a poorly calibrated Delta will be able to get the use of its entire Printable Radius.
Re: Non-Flat Surface and Bed Auto Leveling
September 16, 2016 04:27PM
I use the mesh bed level on my machine from RC7 and it works great!
Re: Non-Flat Surface and Bed Auto Leveling
September 17, 2016 03:36PM
Quote
Floyd
I use the mesh bed level on my machine from RC7 and it works great!

There will be a new version of devel_UBL uploaded later today or early tomorrow. If you like the RC-7 version of Mesh Leveling, you will like the UBL code and feature set even better.
Re: Non-Flat Surface and Bed Auto Leveling
September 20, 2016 03:36PM
Ill have to find that and see how to update my RC7 version with the new feature!
Id love to see it work even better
Re: Non-Flat Surface and Bed Auto Leveling
September 20, 2016 07:13PM
Quote
Floyd
Ill have to find that and see how to update my RC7 version with the new feature!
Id love to see it work even better

No... It is branched from RC-7 but it is seperate from that work for right now. It is based on RC-7 at a July 4th 2016 point of time. When RC-7 (or RC-8) goes final, the UBL branch will get updated with all the improvements. But it is too hard to keep both branches in sync right now.

You can get the UBL branch here: [github.com]
Re: Non-Flat Surface and Bed Auto Leveling
September 20, 2016 07:51PM
Trying it out tonight!
Re: Non-Flat Surface and Bed Auto Leveling
September 21, 2016 04:32PM
Failed... Waiting on a new version from Roxy
Re: Non-Flat Surface and Bed Auto Leveling
September 21, 2016 06:55PM
Quote
Floyd
Failed... Waiting on a new version from Roxy

It would be helpful to know a little more about what the problem is.
Re: Non-Flat Surface and Bed Auto Leveling
September 22, 2016 12:41AM
I sent it to you in a message.
I went through the procedure and then after the bed and nozzle heats up, it purges the nozzle. Once I click the knob it dives into the bed without stopping if I dont kill the power.
Re: Non-Flat Surface and Bed Auto Leveling
September 22, 2016 01:07PM
One of the guys over at GitHub had a funny issue with a rise and lower at every layer change. That is now fixed. And somebody else had a Graphics LCD and with their other options they were running out of free memory during the G26 and it would raise the nozzle. I freed up 750 bytes of RAM memory so that problem should be gone also.

If you pull down the latest code base, it probably is going to work for you.

You will know very quickly if you bring up the firmware and do these steps:
  • G28
  • G29 P1 R M
  • G29 P3 C 0.25 R M
  • G26 C P O 2.5
  • G29 P4 R M (To edit or fine tune various mesh points)
  • G29 A
  • G29 S1
  • And go ahead and reboot and print something!

Edited 1 time(s). Last edit at 09/22/2016 01:10PM by Roxy.
Re: Non-Flat Surface and Bed Auto Leveling
September 22, 2016 03:22PM
Trying again tonight.
Im also putting my Z probe back on for testing as well. I took it off because it was more of a hassle than it was worth.
Re: Non-Flat Surface and Bed Auto Leveling
September 22, 2016 03:44PM
Quote
Floyd
Trying again tonight.
Im also putting my Z probe back on for testing as well. I took it off because it was more of a hassle than it was worth.

You should be able to use the UBL System without a Z-Probe. It probably will take an extra iteration of G26's and G29 P4's to get the mesh perfect. If you want to try it without out a probe, you would do:
  • G28
  • G29 P0 M
  • G26 C P O2.5
  • G29 P4 R M (With nozzle parked over areas needing adjustment) (You can stop the editing of a given area by pressing and holding the Encoder Wheel. And then move to another area that needs editing)
  • G26 C P O2.5
  • G29 P4 R M (With nozzle parked over areas needing adjustment --- keep doing G26's and G29 P4's until you have the Mesh Validation Pattern as good as you want it)
  • G29 A
  • G29 S1
  • reboot and print something that stretches across the entire bed. You should get a good 1st layer everywhere.

Edited 2 time(s). Last edit at 09/22/2016 03:47PM by Roxy.
Re: Non-Flat Surface and Bed Auto Leveling
September 23, 2016 11:43AM
I tried this last night with a Z-probe and it seemed to work until it crashed.

G28 seemed to work then I did the G29 P1 M
It probed 3 points REAL close to the edge of the bed then shot off the side and crashed.
Re: Non-Flat Surface and Bed Auto Leveling
September 23, 2016 02:06PM
Quote
Floyd
I tried this last night with a Z-probe and it seemed to work until it crashed.

G28 seemed to work then I did the G29 P1 M
It probed 3 points REAL close to the edge of the bed

It may be a problem with how you have the Bed Size and PROBE_OFFSET_FROM_EXTRUDER setup. But one thing to be aware of is the G29 P1 starts from where ever the nozzle is positioned (if you don't specify a position)
You could try G29 P1 M X100 Y100 to start closer to the center of the bed and watch it expand its way outward.

Edited 1 time(s). Last edit at 09/23/2016 02:08PM by Roxy.
Re: Non-Flat Surface and Bed Auto Leveling
September 23, 2016 04:24PM
I will check tonight and see.
My bed is 200mm x 200mm
I thought it was odd that the G28 z probe wasnt near the center, it was about 20mm from the edge of the glass.
Re: Non-Flat Surface and Bed Auto Leveling
September 23, 2016 06:57PM
Uploading now. Ill place the nozzle at 100,100 before probe and after G28
Re: Non-Flat Surface and Bed Auto Leveling
September 23, 2016 08:11PM
Quote
Floyd
I will check tonight and see.
My bed is 200mm x 200mm
I thought it was odd that the G28 z probe wasnt near the center, it was about 20mm from the edge of the glass.

Well, probably something isn't configured correctly. But it would be interesting to see if you can see the probed area of the bed slowly expand. It probably will still get to the point where the crazy stuff happens, but we will have a better idea what isn't correct if we can get to behave as expected on the early probing.
Re: Non-Flat Surface and Bed Auto Leveling
September 25, 2016 08:42PM
I got it to finish probing but then it prints a test. The test goes to the edge of the area hitting my binder clips that hold my glass on.
Is there a way I can bypass this test?
Re: Non-Flat Surface and Bed Auto Leveling
September 26, 2016 03:03PM
Quote
Floyd
I got it to finish probing but then it prints a test. The test goes to the edge of the area hitting my binder clips that hold my glass on.
Is there a way I can bypass this test?

There are several options. One is to reduce the Mesh area. You can define:

#define MESH_MIN_X X_MIN_POS+5
#define MESH_MAX_X X_MAX_POS-5
#define MESH_MIN_Y Y_MIN_POS+5
#define MESH_MAX_Y Y_MAX-5

You can also start the Mesh Validation pattern where ever you want and let it grow outwards from that point. And when it gets too close to a clip, press and hold the encoder wheel to terminate the printing of the pattern. You can use the partially printed pattern to adjust any Mesh Point that isn't perfect (using G29 P4 R) by doing the same thing. Move the nozzle to the center of the poorly printed area, and issue the command. Press and Hold the encoder wheel when you finish editing the region in question. Then repeat this process somewhere else (far away from a bed clip).

You should consider pulling down the latest UBL Code. (it is here: [github.com] ) I fixed a bug that was affecting the Z-Compensation on the final segment of a line this morning. For sure, the new code base is going to print better than what you have loaded right now.
Re: Non-Flat Surface and Bed Auto Leveling
September 26, 2016 04:33PM
Perfect. Ill see if I can try this out tonight.
Im thinking about 8-10mm is all I need on the X axis and it will clear the clips.
Re: Non-Flat Surface and Bed Auto Leveling
September 27, 2016 08:17AM
Got it all working last night!
Id recommend speeding up the Z speed. The probing was SLOW and took about an hour to do 190mm x 190mm.
Re: Non-Flat Surface and Bed Auto Leveling
September 27, 2016 08:27AM
Quote
Floyd
Got it all working last night!
Id recommend speeding up the Z speed. The probing was SLOW and took about an hour to do 190mm x 190mm.

Those are my Configuration.h setting. My printer has a very slow Z-Axis. The whole reason my settings are there is just because it will be easier to debug and find problems if other people are using similar setups. But with that said, you are free to speed up the settings if you have everything working. Just make one or two changes at a time so if a problem shows up, we aren't over whelmed by all the changes from a working to non-working version.
Re: Non-Flat Surface and Bed Auto Leveling
September 28, 2016 10:33AM
Roxy,

I'm just getting back to trying UBL after some diversions. I got the latest from github and have built with the latest Arduino IDE 1.6.12.
Just wanted to let you know there is a new warning that shows up with 1.6.12. I get the following warning for each call but things still build OK.

C:\Users\Dave\AppData\Local\Temp\arduino_build_654146\sketch\G26_Mesh_Validation_Tool.cpp: In function 'void gcode_G26()':

C:\Users\Dave\AppData\Local\Temp\arduino_build_654146\sketch\G26_Mesh_Validation_Tool.cpp:234:72: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

debug_current_and_destination("Starting G26 Mesh Validation Pattern.");
Re: Non-Flat Surface and Bed Auto Leveling
September 28, 2016 12:10PM
Thanks! That warning should be OK to ignore. But I'll get that cleaned up.
Sorry, only registered users may post in this forum.

Click here to login