MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.16k stars 19.21k forks source link

Is auto bed leveling actually tested? #1088

Closed thorleifjacobsen closed 9 years ago

thorleifjacobsen commented 9 years ago

On my bed it does the 4 point leveling, i've put it a little off on the left side just for fun.

But when i start to print after enabling everything just as the guide says it actually pushes the plate down on that side which is a little higher. But the left side where it first probed is perfect.. It just dosent look like this works on ultimaker?

alexborro commented 9 years ago

You probably have reversed coordinates. With the printer facing you and looking from above, the 0,0 is the lower left corner. Anything other than that will make a mess with BAL.

I'm gonna place this instructions in the reade.me

Cheers.

Alex.

2014-09-30 23:09 GMT-03:00 Toffe87 notifications@github.com:

On my bed it does the 4 point leveling, i've put it a little off on the left side just for fun.

But when i start to print after enabling everything just as the guide says it actually pushes the plate down on that side which is a little higher. But the left side where it first probed is perfect.. It just dosent look like this works on ultimaker?

— Reply to this email directly or view it on GitHub https://github.com/ErikZalm/Marlin/issues/1088.

"Não é o mais forte da espécie que sobrevive, nem o mais inteligente. É aquele que se adapta melhor as mudanças" ( Charles Darwin )

Alex Borro

thorleifjacobsen commented 9 years ago

alexborro, i've not edited the code (other than adding servo pin and enabling the stuff that the tutorials says) and uses a original ultimaker. Should not be reversed then? I dont even feel the Z-stepper doing anything. holding the rod to feel for movements.. should be about 2-3mm movements on my testing jig.

oysteinkrog commented 9 years ago

Auto bed leveling works very well for me, here is my config: https://github.com/oysteinkrog/Marlin/blob/config_i3/Marlin/Configuration.h The test you describe (holding z rods to feel for movement) is positive for me, if my bed is very uneven (which has happened after rebuilding stuff etc) I can even see the z rods turn during X/Y moves.

thorleifjacobsen commented 9 years ago

Great to hear Øystein! You use an RAMP. I'm using an Ultimaker, on the Ultimaker the "servo0_pin" isent even defined, so i dont think this software is completely compatible with ultimaker. If anyone successfully got this working with an ultimaker i'd be glad to see.

Another thing i might have been doing wrong: I had "AUTO0.G" on my SD card to always probe on startup.

; Z-Probing M84 M402 M1 ;wait until user's ready G28 X0 Y0 ;move X/Y to min endstops G29 Y3 ;detailed z-probe G28 X0 Y0 ;Back to XY min.

I read somewhere that G28 may clear out the probing information. But unfortunately the 3d printed mount for servo broke on the last try so i had to stop testing. I did some in air testing and changing the last G28 X0 Y0 to G1 X0 Y0 and it did not work out well. It crashed in the wall and the stepper went crazy. Can anyone confirm that G28 clears the autolevel data?

galexander1 commented 9 years ago

From Marlin_main.cpp:

 ...
case 28: //G28 Home all Axis one at a time

ifdef ENABLE_AUTO_BED_LEVELING

  plan_bed_level_matrix.set_to_identity();  //Reset the plane ("erase" all l

eveling data)

endif //ENABLE_AUTO_BED_LEVELING

 ...

G28 does clear the ENABLE_AUTO_BED_LEVELING matrix.

thorleifjacobsen commented 9 years ago

That might have been my problem all along, I'll see if i manage to trick it to print a new servo mount and try again! Got a really pricy metalgear servo that might do the trick and last a while too :)

jamesgao commented 9 years ago

I just tried the latest version of the bed autolevel on my delta printer, and it's all sorts of broken for deltas. With the G29 command, the Z carriage keeps moving down until it slams into the bottom of the rail. I believe it's because the probe_pt function in Marlin_main.cpp is trying to move the the effector in stepper coordinates instead of cartesian coordinates (which are one and the same in cartesian printers), but I don't know the code well enough to figure it out.

Is there a preferred branch for delta bed leveling?

galexander1 commented 9 years ago

For better or for worse, this is still a practically useful branch for delta:

https://github.com/jcrocholl/kossel

It has a different auto-level hack than the one in main-line Marlin. It probes the bed at a grid of coordinates and then applies a straightforward z correction. It doesn't attempt to do any systematic correction such as spherical or what-not. Plus it is tested on deltas.

errolt commented 9 years ago

The branch is at https://github.com/jcrocholl/Marlin, but it is 6 months old.

Also, if bed leveling is known broken for delta then there should be an #ifdef to throw an error if both DELTA and ENABLE_AUTO_BED_LEVELING is enabled. This will prevent damage to printers...

boelle commented 9 years ago

@Toffe87 did you get the servo issue fixed?

boelle commented 9 years ago

no comments since 11 nov besides my own... also the title says if autolevel have been tested... a very wide hitting title... many are using auto bed level so you can say yes it has been tested... but on the ultimaker is might be a total different issue...

but since the lack of "action" i will close this one for now... as with all other issues i have closed they can always be reopened should the OP come back

github-actions[bot] commented 2 years ago

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.