Welcome! Log In Create A New Profile

Advanced

Marlin with Auto bed leveling

Posted by Gelber 
Marlin with Auto bed leveling
September 24, 2014 11:59AM
Long time reader, first time poster smiling smiley

Hello guys,

I'm having some issues configuring my Auto bed leveling settings in Marlin. I was hoping someone could help me.

My bed has this dimensions:
Quote
// Travel limits after homing
#define X_MAX_POS 190
#define X_MIN_POS 18 //18 mm before my hotend tip is above the bed itself
#define Y_MAX_POS 168
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

When I home all axis with G28, the Z axis is suposed to home at:

Quote
#ifdef Z_SAFE_HOMING

#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)

#endif


which gives me X= 95 and Y = 84,

But instead, by Z axis is homing on

Quote
X:131.00 Y:137.00.

I'm not undestanding why marlin is using those distances and how I can make the z probe level the z axis on the center of the bed.

Another strange thing happens when I use the AUTO_BED_LEVELING_GRID

Mine is defined like this:

Quote
#ifdef AUTO_BED_LEVELING_GRID

// set the rectangle in which to probe
#define LEFT_PROBE_BED_POSITION 0
#define RIGHT_PROBE_BED_POSITION 160
#define BACK_PROBE_BED_POSITION 125
#define FRONT_PROBE_BED_POSITION 30


But when I try the G29 command Marlin uses

Left: 0
Front: 10
Right: 205
Back: 178

Does Marlin use the hot end tip or the tip of the Z probe as reference when leveling itself?

I've attached my configuration file and I would really apreciate if someone could take a look at it
Attachments:
open | download - Configuration.h (33 KB)
Re: Marlin with Auto bed leveling
November 05, 2014 06:21AM
I've been trying to figure out this auto bed leveling also. The x axis numbers you are getting is a calculation of the ((x max - x min)/2) + x offset, the same with your y axis.

I think there is a bug in the "z - safe homing" routine, so comment that line:
//#define Z_SAFE_HOMING
Couldn't figure out how to get the the "grid mode" to position the probe, so comment that line:
//#define AUTO_BED_LEVELING_GRID

Now the firmware is setup for "3 point auto bed leveling". The probe points should be the actual extruder positions you want probed. If your offsets are correct, the probe positions will be the same as the extruder positions. My back center probe position is X 155, Y 175:
#define ABL_PROBE_PT_1_X 155
#define ABL_PROBE_PT_1_Y 175

I'm using Repetier-Host and it still works correctly. I have a Rambo board and a Inductive probe setup per Tom's Guide:
[www.youtube.com]

The probe Z offset should be setup with the bed hot.

Hope this info helps.

Edited 2 time(s). Last edit at 11/06/2014 11:54AM by normw.
Re: Marlin with Auto bed leveling
November 23, 2014 01:05PM
Now have the GRID auto leveling working.

The 3 point auto leveling was working intermittently and the GRID auto level would appear to home, but would not center the probe in the bed. Eventually, the 3 point auto leveling stopped working completely and the axis were moving erratically.

The problem: Unused endstops were triggering - they should always be open. The unused endstops should always have the pullup resistors enabled and the endstop inverting set to true. This will insure that the unused endstops will always be open.

My printer uses the XMAX, YMAX, and ZMIN endstops. The unused endstops did not have the pullups enabled and the inverting was set to false.

The configuration should be:
#ifdef ENDSTOPPULLUPS
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
***define ENDSTOPPULLUP_ZMIN Depends on the type of probe used.
#endif

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = *****; // set to true to invert the logic of the endstop. Depends on the type of probe used.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.

I am using an inductive probe, so my ZMIN pullup is disabled and the ZMIN inverting is set to true.

This setup is common to any control board that uses the Mega 2560 chip
Re: Marlin with Auto bed leveling
March 08, 2015 07:07AM
Below is a link to my auto leveling video. The firmware is setup to use a 3 point grid, which probes 9 points.

The inductive probe sensor is easy to install and works very well. It requires an aluminum print surface. An 1/8" aluminum bed or the MK3 headed aluminum bed both work well, detecting the surface at about 2mm.

[www.youtube.com]
Sorry, only registered users may post in this forum.

Click here to login