Auto Leveling

1. Hardware

Extend Servo Motor and min Z limit switch for auto leveling, http://wiki.fastbot3d.com/extended-interface#toc7
Extend Proximity sensor of min Z probe for auto leveling, http://wiki.fastbot3d.com/extended-interface#toc10

After wiring you must test your hardware.
Warning:
1.You must connect 5V DC for power, USB port don't provide power for extend interface.
2.You must Enable "Auto Bed Leveling" in your Octoprint profile.

1.1 Test servo motor

First, make sure you check the option "Auto leveing" and "Servo motor" in profile.

  • Send gcode command "M401" extend z probe, and make sure it work
  • Send gcode command "M402" retract z probe, and make sure it work

1.2 Test min Z limit switch

Press min Z limit switch manually, send gcode command "M119" to get endstop status, it should be "AutoLevel Z hit"
Release min Z limit switch, send gcode command "M119" to get endstop status, it should be "AutoLevel Z not hit"

1.3 Test Proximity sensor

Check sensor type which is supported( http://wiki.fastbot3d.com/extended-interface#toc10 ) and wiring again , and after that start a test.

1.3.1 Test work status
First, make sure you check the option "Auto leveing" and "Proximity sensor" in profile.

  • Be close to metal, sensor led will light up,
  • Send gcode command "G32" to enable firmware work,
  • Send "M119" to get "AutoLevel Z" status, It should be "AutoLevel Z hit".
  • Be far away from metal, sensor led will turn off ,
  • Send "M119" to get "AutoLevel Z" status, It should be "AutoLevel Z not hit".

1.3.2 Test offline status

  • Be close to metal, sensor led will light up,
  • Send gcode command "G31" to disable firmware work,
  • Send "M119" to get "AutoLevel Z" status, It should be "AutoLevel Z not hit"
  • Be far away from metal, sensor led will turn off ,
  • Send "M119" to get "AutoLevel Z" status, It should be "AutoLevel Z not hit".

2. Servo Motor for auto Leveling

Here http://wiki.fastbot3d.com/fastbot-bbp-user-guide#toc27 is Servo Motor config in profile.
You must enter the appropriate values for auto Leveling of Servo Motor.
Get these values by following step.

2.1 "Endstop angle"

  • Send gcode command "M401" extend z probe
  • Send gcode command "M402" retract z probe

you need repeat test and get a good angle, and fill them to profile.

2.2 "Z raise before probing"
Meause your probe length to fill a larger value for "Z raise before probing" in profile

2.3 "Device offset"
It is similar to Marlin code, as

  #define X_PROBE_OFFSET_FROM_EXTRUDER -25
  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35

These are the offsets to the probe relative to the extruder tip (Hotend - Probe device),
The following is way to get these value.

2.3.1 Move extruder to reference point(X,Y,Z)

You can choose any point or center of Bed.

  • Send gcode command "M402" on "Terminal" pannel to retract z probe.
  • Click "Motors off" button on "Control" pannel to power off stepper motor.
  • Move extruder to X, Y, Z by manual. "Z" position relative to bed is 0.1mm, about a A4 paper thickness.
  • Send gcode command "G92 X0 Y0 Z0 E0" on "Terminal" pannel to set current x,y,z,e current position is 0.
  • Send gcode command "M114", you will get information as follow.It's ok
 "Current Position X:0.000000 Y:0.000000 Z:0.000000 E:0.000000"

2.3.2 Move z probe to reference point(X,Y,Z)

  • Click "Motors on" button on "Control" pannel.
  • Move z probe by press "Z" arrow button on "Control pannel", move it up until it is enough distance to extend z probe.
  • Send gcode command "M401" on "Terminal" pannel to lower z probe.
  • Move z probe to reference point(X,Y) , by press "X/Y" arrow button on "Control pannel"
  • Move z probe by press "Z" arrow button on "Control pannel", move it down until it hit bed. and send gcode command "M119" to check end stop status.

2.3.3 Get current position and right parameters

Send gcode command "M114" to get current position.

"Current Position X:-20.000000 Y:-8.000000 Z:1.200000 E:0.000000"

Because sensor position is always lower than hotend, and is the offsets to the probe relative to the extruder tip (Hotend - Probe device),
z value is always negative value.
So right parameters is x=-20, y=-8, z=-1.2

Note: After auto leveling, When you start to print, your extruder is a little high releative to bed, you can adjust a little "z" value.
For example old "z" value is -1.2, you may change "z" from -1.2 to -1.7.

Warning: It will scatch nozzle, if you add large z value, so please modify z value a little every time, and test print, then repeat until ok.

2.4 "Probe Grid"

It is similar to Marlin code, as

    // set the rectangle in which to probe
    #define LEFT_PROBE_BED_POSITION 15
    #define RIGHT_PROBE_BED_POSITION 170
    #define BACK_PROBE_BED_POSITION 180
    #define FRONT_PROBE_BED_POSITION 20

     // set the number of grid points per dimension
     // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
     #define AUTO_BED_LEVELING_GRID_POINTS 2

Note: More points will more precise, and more longer probe distance, more better.

3. Proximity sensor for auto Leveling

Here http://wiki.fastbot3d.com/fastbot-bbp-user-guide#toc27 is Proximity sensor config in profile.

You must enter the appropriate values for auto Leveling of Proximity sensor.
Get these values by following step.

3.1 "Device offset"
It is similar to Marlin code, as

  #define X_PROBE_OFFSET_FROM_EXTRUDER -25
  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35

These are the offsets to the probe relative to the extruder tip (Hotend - Probe device),
The following is way to get these value.

3.1.1 Move extruder to reference point(X,Y,Z)

You can choose any point or center of Bed.

  • Click "Motors off" button on "Control" pannel to power off stepper motor.
  • Move extruder to X, Y, Z by manual. "Z" position relative to bed is 0.1mm, about a A4 paper thickness. At this time, sensor led light, or you must adjust height of your sensor to more lower.
  • Send gcode command "G92 X0 Y0 Z0 E0" on "Terminal" pannel to set current x,y,z,e current position is 0.
  • Send gcode command "M114", you will get information as follow.It's ok
 "Current Position X:0.000000 Y:0.000000 Z:0.000000 E:0.000000"

3.1.2 Move Proximity sensor to reference point(X,Y,Z)

  • Click "Motors on" button on "Control" pannel.
  • Send gcode command "G32" to enable firmware to check sensor status.
  • Move up sensor by press "Z" arrow button on "Control pannel", If sensor led light, move it up by a little distance like "0.1" mm until sensor turn off led.
  • Send gcode command "G31" to disable firmware to check sensor status.
  • Move sensor to reference point(X,Y) , by press "X/Y" arrow button on "Control pannel", each step is 0.1 mm.

3.1.3 Get current position and right parameters

Send gcode command "M114" to get current position.

"Current Position X:-20.000000 Y:-8.000000 Z:1.200000 E:0.000000"

Because sensor position is always lower than hotend, and is the offsets to the probe relative to the extruder tip (Hotend - Probe device),
z value is always negative value.
So right parameters is x=-20, y=-8, z=-1.2

Note: After auto leveling, When you start to print, your extruder is a little high releative to bed, you can adjust a little "z" value.
For example old "z" value is -1.2, you may change "z" from -1.2 to -1.7.

Warning: It will scatch nozzle, if you add large z value, so please modify z value a little every time, and test print, then repeat until ok.

3.2 "Probe Grid"

It is similar to Marlin code, as

    // set the rectangle in which to probe
    #define LEFT_PROBE_BED_POSITION 15
    #define RIGHT_PROBE_BED_POSITION 170
    #define BACK_PROBE_BED_POSITION 180
    #define FRONT_PROBE_BED_POSITION 20

     // set the number of grid points per dimension
     // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
     #define AUTO_BED_LEVELING_GRID_POINTS 2

Note: More points will more precise, and more longer probe distance, more better.

4. Modify "Printing start gcode"

G29 will start a auto leveling process.
Must change start gcode, add G29 after G28 gcode

For example, a start gcode for auto leveling
M80,
G28 X0 Y0,
G28 Z0,
G29 -> start auto leveling
G1 Z15.0 F6000
M104 T0 S200.0,
M109 T0 S200.0
M140 S60.0,
M190 S60.0,

About "print start gcode", please look here http://wiki.fastbot3d.com/fastbot-bbp-user-guide#toc9
Note: Don't add G32 because you have added G29 gcode.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License