Welcome! Log In Create A New Profile

Advanced

Help with Kossel Auto Bed Leveling...

Posted by xboxhacker 
Help with Kossel Auto Bed Leveling...
January 09, 2014 12:32PM
I am using Johanns version of Marlin for my Rostock printer (most recent form Github) on a RAMPS 1.4. I have spent hours fine tuning it, and it prints very well. I wanted to add the auto bed leveling to it in hopes to make it better, and to help keep it finely tuned over the course of many prints.

I have run into several problems that I need some assistance with.....

1- How can I change the code to probe the bed as a square platform, and NOT a round platform? I have the MK2 heatbed, and its a square, so the probe misses the corners.

2- When the probing is complete, and back right corner is almost 2mm high. If I shim up the corner and reprobe....same results. The opposite corner in the rear is not to bad.

3- The entire bed seems to slop downward, with the front of the bed being just higher then the rear. This is also evident in the output to Pronterface.

If i go back to non auto leveling, it still prints good....I am just glutton for punishment, so I want to make this work. smiling smiley

Thank you in advance for your assistance!!
Re: Help with Kossel Auto Bed Leveling...
January 09, 2014 02:21PM
Here is the Pronterface output from the probe points.

1.150 1.150 1.150 1.225 1.375 1.375 1.375
0.737 0.737 0.825 0.975 1.012 0.975 0.975
1.163 0.800 0.950 0.850 0.750 0.662 0.412
1.038 0.913 0.438 0.300 0.338 0.175 -0.137
1.363 1.050 0.375 -0.025 -0.150 -0.337 -0.600
0.313 0.313 0.075 -0.325 -0.637 -0.837 -0.837
0.112 0.112 0.112 -0.538 -0.925 -0.925 -0.925

numbers on top are from the rear of the bed...

And here is, what i think, is the code that controls the probing of the round bed....

void calibrate_print_surface(float z_offset) {
  for (int y = 3; y >= -3; y--) {
    int dir = y % 2 ? -1 : 1;
    for (int x = -3*dir; x != 4*dir; x += dir) {
      if (x*x + y*y < 11) {
	destination[X_AXIS] = AUTOLEVEL_GRID * x - z_probe_offset[X_AXIS];
	destination[Y_AXIS] = AUTOLEVEL_GRID * y - z_probe_offset[Y_AXIS];
	bed_level[x+3][y+3] = z_probe() + z_offset;
      } else {
	bed_level[x+3][y+3] = 0.0;
      }
    }
    // For unprobed positions just copy nearest neighbor.
    if (abs(y) >= 3) {
      bed_level[1][y+3] = bed_level[2][y+3];
      bed_level[5][y+3] = bed_level[4][y+3];
    }
    if (abs(y) >=2) {
      bed_level[0][y+3] = bed_level[1][y+3];
      bed_level[6][y+3] = bed_level[5][y+3];
    }
    // Print calibration results for manual frame adjustment.
    for (int x = -3; x <= 3; x++) {
      SERIAL_PROTOCOL_F(bed_level[x+3][y+3], 3);
      SERIAL_PROTOCOLPGM(" ");
    }
    SERIAL_ECHOLN("");
  }
}
I only know some basic stuff....so i am unsure if this can be changed to do a square bed.
Re: Help with Kossel Auto Bed Leveling...
January 09, 2014 04:57PM
Erik's Marlin [github.com] repository has autobed leveling for square printing platforms with a configurable amount of probing points.
It supports delta geometry but comes setup for cartesian. Have a read in the configuration.h it has instructions on how to set it up for delta style.

Edited 1 time(s). Last edit at 01/09/2014 04:58PM by TheTechnicalNoob.
Re: Help with Kossel Auto Bed Leveling...
January 10, 2014 02:56PM
Quote
TheTechnicalNoob
Erik's Marlin [github.com] repository has autobed leveling for square printing platforms with a configurable amount of probing points.
It supports delta geometry but comes setup for cartesian. Have a read in the configuration.h it has instructions on how to set it up for delta style.

thank you TTN... but the current Marlin only does 4 points.

#ifdef ENABLE_AUTO_BED_LEVELING

  // these are the positions on the bed to do the probing
  #define LEFT_PROBE_BED_POSITION 15
  #define RIGHT_PROBE_BED_POSITION 170
  #define BACK_PROBE_BED_POSITION 180
  #define FRONT_PROBE_BED_POSITION 20

I would be back to square one and still not have the full bed probed. UNLESS you a way to allow more then these points.
Re: Help with Kossel Auto Bed Leveling...
January 11, 2014 06:58AM
Find this in your configuration. It's line 389.
    #define ACCURATE_BED_LEVELING_POINTS 2
  #endif
That's the variable that sets the bed leveling to use 2x2 grid of probing points in configuration.h . Make it as large a variable as you see fit thumbs up

Edited 1 time(s). Last edit at 01/11/2014 07:00AM by TheTechnicalNoob.
Re: Help with Kossel Auto Bed Leveling...
January 15, 2014 12:10AM
I started looking into it here: [groups.google.com]

Yes you can probe a square bed.
Re: Help with Kossel Auto Bed Leveling...
May 13, 2014 07:13PM
Hi, i developed a kossel mini printer and follow the assembly guide with all care, i finish the assembly and now i´m trying to do the callibration of the printer using the printer bed auto levelling but when i use the G29 command start touching the printing bed but then it goes high and continue the points in the air, can someone help me to find why this is happening and what should i do to make a successfull callibration? i send the picture of how it looks when i use the G29 command.

Best regards,

Hernando
Attachments:
open | download - auto-levelling-hernando.jpg (279.7 KB)
Re: Help with Kossel Auto Bed Leveling...
May 16, 2014 12:20PM
That seemes to be exactly the problem I also have, did you change something on the original geometry?
Re: Help with Kossel Auto Bed Leveling...
May 28, 2014 09:48AM
It stairsteps upward when it thinks it's hit the probe point immediately upon moving downward towards the bed. In other words, your z probe is being "pressed" all the time. Set the Z_MIN_ENDSTOP_INVERTING to the opposite of what it is now and see if that fixes it. When its right, you should be able to send M119 to the printer and get:

06:39:28.542 : N9 M119 *3
06:39:28.545 : Reporting endstop status
06:39:28.545 : x_max: open
06:39:28.549 : y_max: open
06:39:28.549 : z_min: open
06:39:28.549 : z_max: open

If you're seeing this, then it means the Z probe is reversed.
06:40:07.890 : N22 M119 *58
06:40:07.897 : Reporting endstop status
06:40:07.897 : x_max: open
06:40:07.897 : y_max: open
06:40:07.897 : z_min: TRIGGERED
06:40:07.897 : z_max: open
Sorry, only registered users may post in this forum.

Click here to login