Welcome! Log In Create A New Profile

Advanced

Marlin 2.0 leveling bed corners

Posted by BigJ 
Marlin 2.0 leveling bed corners
March 11, 2021 03:54PM
I have a Two Trees Sapphire Plus printer. The print bed is 310x310mm with a printable area of 300x300mm. The printable area is centered on the print bed. The physical endstops leave the print head at (0, 300). I have added a probe to the print head. The probe is inline with the nozzle on the X axis and sits 45mm in front of the nozzle (Y axis).
The NOZZLE_TO_PROBE_OFFSET is defined as {0, -45, 0}. This is in accordance with the diagram in Configuration.h.

I am trying to set where Marlin 2.0 will probe the print bed for Corner Leveling. Ideally I would like to see the probe hit all four corners with a 50mm inset ((50,50), (250,50), (250, 250) & (50, 250)). I realize that the motion system makes moves based on where the nozzle should be, not the probe. However, when using the probe to level the corners, the nozzle position should be compensated for the probe offsets. Therefore for 50mm insets the nozzle positions should be; (50, 95), (250, 95), (250, 5), (50, 5).

I have been unable to configure Marlin 2.0 to achieve the desired positions. LEVEL_CORNERS_INSET_LFRB { 50, 50, 50, 50 } does not provide a uniform inset of 50mm. The left and right, X axis are correct, however the probe is off the print bed in the front and close to the middle of the print bed in the back (Y axis positions are way off). If I adjust the LEVEL_CORNERS_INSET_LFRB to move the probe to 50mm from the front edge of the print bed I have to enter a value of 130. I cannot get the back to have an inset of 50mm. Any value less than 45 results in a Sanity check failure.

I believe that there is something wrong with how Marlin 2.0 is using LEVEL_CORNERS_INSET_LFRB and NOZZLE_TO_PROBE_OFFSET to calculate the nozzle positions to achieve the requested 50mm insets.

It may be that my perception of what the LEVEL_CORNERS_INSET_LFRB are used for is incorrect. My expectation is that when I set the insets for 50mm then the probe will test each corner with an inset of 50mm. I should not have to calculate the nozzle positions for each corner manually and then work backwards to determine what the inset should be.

Any help would be appreciated. An explanation of how these values are used to determine the actual nozzle positions would also help.

I am using the latest Marlin 2.0 bugfix (CONFIGURATION_H_VERSION 020008) and am able to compile, download and run the software. The basics are all working. I am trying to get corner leveling and UBL functioning properly. Configuration files are available upon request.
Attachments:
open | download - Configuration.h (99.1 KB)
open | download - Configuration_adv.h (148.4 KB)
Re: Marlin 2.0 leveling bed corners
March 12, 2021 01:37PM
Make sure that when you execute `M851` it shows the same offsets you set in the firmware. If it doesn't, execute `M502` followed by `M500` to copy the new settings from the firmware into the EEPROM.
Re: Marlin 2.0 leveling bed corners
March 14, 2021 06:28PM
Thanks for the suggestion. However, M851 does not display the insets, just the Z probe offset.
M503 does not show the Corner Leveling Insets nor the calculated positions that are used.
Re: Marlin 2.0 leveling bed corners
March 15, 2021 01:42PM
Yes, but if you didn't do M502/M500, the probe offsets could be wrong in EEPROM so Marlin doesn't understand where to put the probe.
Sorry, only registered users may post in this forum.

Click here to login