Welcome! Log In Create A New Profile

Advanced

Marlin 2.0.9.3 & Build surface alignment

Posted by Mr Kroll 
Marlin 2.0.9.3 & Build surface alignment
March 22, 2022 06:26PM
Hello, I Have been upgrading an Anet A8.

I am having Three basic problems with my build that I just can't quite figure out; All Three problems seem to stem from the same origin, I would truly appreciate any ideas on how to trouble shoot theses Problems. Thank you in advance

I have Upgraded the control electronics to the new BIGTREETECH SKR_2 With the new 429 chip set. ( Absolutely love how quiet it makes the machine) I Have Compiled Marlin 2.0.9.3 to drive it. (Umpteen times so far!)
It does compile well, but for the life of me, I can't figure out what I keep missing in the firmware settings.

My first problem is with homing, it will not home at the center of the Bed. The BL Touch sensor contacts the bed at the center of the X axis, and it contacts 1/2 way between center of the bed and the Neg Y edge of the Bed.
My Marlin Settings are:

#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT X_CENTER // X point for Z homing
#define Z_SAFE_HOMING_Y_POINT Y_CENTER // Y point for Z homing
#endif
#define BED_CENTER_AT_110_110 // ORIGINALLY AT _0_0 (bed = 220 x 220)

* +-- BACK ---+
* | [+] |
* L | 1 | R <-- Example "1" (right+, back+)
* E | 2 | I <-- Example "2" ( left-, back+)
* F | [-] N [+] | G <-- Nozzle
* T | 3 | H <-- Example "3" (right+, front-)
* | 4 | T <-- Example "4" ( left-, front-)
* | [-] |
* O-- FRONT --+

#define NOZZLE_TO_PROBE_OFFSET { -27, -42, -3 } {these Values were measured with calipers} Why is the X axis offset being adjusted for by Marlin, But not the Y axis offset?


cool smiley Auto leveling, seems to fall part way on the bed and part way off. It will not measure Positive Y (forward) of the center of the Bed, It fails trying to measure air.

C) the BL Touch sensor needs to be reset every time a G34 command is issued, but the Z axis leveling succeeds.

I have tried to Home, and Level the build plate from the Pronterface UI, From Gcode, and from My TFT. It responds in the same manner from all three sources.
I would really appreciate any help or information that you might have regarding how to further troubleshoot and correct these problems.

<<<>>>
Attachments:
open | download - IMG_0496.jpg (479.6 KB)
open | download - IMG_0524.jpg (692.3 KB)
open | download - IMG_0526.jpg (709.8 KB)
Re: Marlin 2.0.9.3 & Build surface alignment
March 22, 2022 06:34PM
Post configuration.h for your Marlin 2.0.9.3


Computer Programmer / Electronics Technician
Re: Marlin 2.0.9.3 & Build surface alignment
March 22, 2022 07:37PM
BED_CENTER_AT_110_110 is not a valid keyword the keyword is BED_CENTER_AT_0_0, to set the bed center to 0,0

You cannot just make up new keywords to change their function (not without adding additional code to support it)

If you adjust NOZZLE_TO_PROBE_OFFSET in firmware you must refresh the EEPROM contents, or it will continue to use the old values already stored in eepom.
Use Gcode M502 then M500 to load firmware defaults and save to eeprom.

Edited 3 time(s). Last edit at 03/22/2022 10:32PM by Dust.
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 04:55PM
Here it is.
Attachments:
open | download - Configuration.h (108.9 KB)
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 05:50PM
Good afternoon Dust, I altered, "BED_CENTER_AT_110_110" to "BED_CENTER_AT_0_0". Then I recompiled, Flashed the EEPROM, and Issued G codes M502 & M500.

It did change My Homing point. Not to center as I am trying to set it up to do, but it's a start.. I have Included a pic. Thankyou for the help so far, Mr kroll
Attachments:
open | download - IMG_0528.jpg (801.6 KB)
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 06:43PM
Dust, Thanks for the info, I am curios about how marlin expresses these lines.

// The center of the bed is at (X=0, Y=0)
#define BED_CENTER_AT_0_0

Maybe I am ignorant, but this implies to me to set the center of the bed to...
My logic is;

X axis zero is Full left on the gantry (X Axis all the way Negative)
Y axis Zero is Full front on the bed (toward user)(Y axis all the way Negative)
Which equals Lt front corner of bed.
Yet The second line defines bed center?
Should bed center not be the physical center of the bed?
Is there a logic to the coding that I do not understand?
Thankyou, Mr kroll
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 07:20PM
On my 3D Printer in order to center the nozzle on my bed I added the distance to Z-Safe Homing.

My probe is exactly 25 mm directly behind the nozzle in Y direction.
This make my Probe center the bed but to get the nozzle to the center added the 25 mm offset to Z safe Home.
See code below
  #define Z_SAFE_HOMING_X_POINT X_CENTER      // X point for Z homing
  #define Z_SAFE_HOMING_Y_POINT Y_CENTER + 25 // Y point for Z homing

Edited 1 time(s). Last edit at 03/23/2022 07:21PM by Roberts_Clif.


Computer Programmer / Electronics Technician
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 07:57PM
BED_CENTER_AT_0_0 is a binary switch it is either enabled or disable. It does not allow to change the position.

This is for delta 3d printers where the center of the bed is 0,0
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 09:19PM
Thanks Dust, The Question that I should ask then is, In Marlin how do you distinguish between a line that is a binary switch and one that is a user definable value? Thanks
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 09:23PM
Thanks will play with with adding values to Z_safe homing point. - Mr kroll
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 09:35PM
Non binary defines have spaces and values after them
Eg #define EXTRUDE_MINTEMP 170

This sets EXTRUDE_MINTEMP to 170
Re: Marlin 2.0.9.3 & Build surface alignment
March 23, 2022 09:43PM
Step 1) is to make sure your bed is defined correctly. See [manuelmclure.github.io]

Ie when you home then G1X0Y0 the hotend is over the X0 Y0 position of the bed


Safe Z homing moves the PROBE to the center of your headed bed (not the hotend). This requires that probe offsets are set correctly as well as X0 Y0
Re: Marlin 2.0.9.3 & Build surface alignment
March 24, 2022 07:53PM
Thank you Dust, I will set this up today and Friday in between work and Honey does.
Re: Marlin 2.0.9.3 & Build surface alignment
March 25, 2022 09:59PM
Good evening, I have worked on configuring this a couple of different ways now. Still having Trouble though. I know, "how could the guy mess this up?"

Dust the manual referred to in your link is absolutely clear thankyou.

G28 X Y does result in the nozzle orienting near The Lt Front of the bed.

However G0 X0 Y0 or G1 X0 Y0 result in the nozzle orienting Lt. and rear of the bed.

The A8's Y end stop switch is Y Positive.

It is in the left rear position that the TFT IS reporting X=0 Y=0

,,,thankyou for any troubleshooting advise you can recommend...
Re: Marlin 2.0.9.3 & Build surface alignment
March 26, 2022 02:14AM
Hello Again, I spent the evening setting the Y end stop plug in marlin to Y_neg. On an Anet A8 the Y axis switch is at the end of Positive bed travel. I then reversed the motor direction for the Y axis, set the software end stop from Y_neg to Y_ Pos.
At this point I configured my machine limits and Bed position in marlin.
Nozzle can reach every part of the bed

Machine is homing X=0, Y=0
Z_safe homing happens center of bed
Z stepper auto align is working
UBL Bed leveling is probing on the surface of the bed

The Problem I now have is my Y axis is running in reverse.
When I enter A command for Y Positive the bed travels towards me.
The TFT shows the same behavior
So does pronterface

Everything is very unstable, BL Touch sensor fails to deploy randomly.

Are the Machine limits set in a different way for a machine that the end stop is normally y_pos. Any Ideas as to what is going on?

Edited 1 time(s). Last edit at 03/26/2022 10:58AM by Mr Kroll.
Re: Marlin 2.0.9.3 & Build surface alignment
March 27, 2022 09:40AM
Thankyou dust, It is nice to know the correct way to configure this part of Marlin.

Several small adjustments to the firmware,
A New BL Touch Sensor,
And a few mechanical tweaks later,
The machine has stabilized.

( I hate it when things don't just work smoothly)

Is a Y Positive command supposed to move the build plate toward the operator during use?
rq3
Re: Marlin 2.0.9.3 & Build surface alignment
March 27, 2022 06:54PM
Quote
Mr Kroll
Thankyou dust, It is nice to know the correct way to configure this part of Marlin.

Several small adjustments to the firmware,
A New BL Touch Sensor,
And a few mechanical tweaks later,
The machine has stabilized.

( I hate it when things don't just work smoothly)

Is a Y Positive command supposed to move the build plate toward the operator during use?

Yes. Positive Y is at the back of the bed. Positive X is to the right. When you ask for Y+10, the bed should move towards you.
Re: Marlin 2.0.9.3 & Build surface alignment
April 01, 2022 09:12PM
Thank you all very much. The Machine is coming along nicely. working on calibrations and a few bugs.

I have a question about the link that Dust posted, "Configuring Marlin for Unified Bed Leveling"

Is that a component of a larger service book? If so what is it called and where can it be obtained?

It is the most concise and informative document about marlin that I have ever seen.

<<>>
Re: Marlin 2.0.9.3 & Build surface alignment
April 01, 2022 10:22PM
@Mr Kroll

That document is a work in progress by MMcLure

There is no more, yet
Re: Marlin 2.0.9.3 & Build surface alignment
April 02, 2022 01:24PM
Thank you,
Re: Marlin 2.0.9.3 & Build surface alignment
June 16, 2022 03:06PM
Quote
Dust
Step 1) is to make sure your bed is defined correctly. See [manuelmclure.github.io]

Ie when you home then G1X0Y0 the hotend is over the X0 Y0 position of the bed


Safe Z homing moves the PROBE to the center of your headed bed (not the hotend). This requires that probe offsets are set correctly as well as X0 Y0



The procedure at manuelmclure.github, referenced above covers a printer with x-min and y-min endstops and is excellent. My printer has x-max and y-max endstops and the following is the procedure to determine the origin of the print area and the size of the print area.

1. Compile Marlin using your actual bed size and upload.
2. I used Arduino monitor to home the x and y axis (G28 X Y) this should be the right back of the print bed, your LCD should display the x and y bed size you entered in the config.h.
3. Use G92 to zero the x and y axis (G92 X0 Y0), also disable the software endstops with (M211 S0).
4. Now using the LCD controller move the x axis negative to the edge of the bed and record the position shown (this will be the right edge of the bed),
continue to move the x axis to the left edge of the bed (this will be the number without the negative sign to use for the X_MAX_POS). The x bed size is the right bed edge number subtracted from the left edge number (no negative signs) and is entered as X_BED_SIZE.
5. Use the same procedure to determine the y axis Y_MAX_POS and Y_BED_SIZE

As you can see the origin of the bed, (X=0 and Y=0) is the distance from the MAX endstops to the left front edge of the bed, this distance is set from the numbers entered in the X_MAX_POS and Y_MAX_POS lines of the config.h. The bed size numbers you entered are used by Marlin to compute the software limits to use for the bed.

Edited 1 time(s). Last edit at 06/17/2022 10:29AM by normw.
Sorry, only registered users may post in this forum.

Click here to login