Thanks Thanks:  4
Likes Likes:  3
Dislikes Dislikes:  0
Page 1 of 2 12 LastLast
Results 1 to 10 of 19
  1. #1
    Expert 3D Printer
    Join Date
    Dec 2014
    Location
    Near Paris - France
    Posts
    204
    Post Thanks / Like

    [HOW TO] Set up your Auto-Levelling Bed

    Hello,

    I think Auto Levelling Bed is a true evolution on 3D printers.

    You can find a video that show auto leveling Bed on an extreme situation.

    There are few existing systems, you will find links with 2 differents :

    With a servo and the endstop :
    https://www.youtube.com/watch?v=x8eqSQNAyro

    A second solution with a capacitive sensor :
    https://www.youtube.com/watch?v=6SZOs9ONtwo

    The 2 solutions are cheap, less than 15 $.

    But this setup is only for capacitive sensor.

    I have joined the Marlin-Ozgun Firmware without modifications, if you don't have it (the modifications for ALB follows).

    I have joined 2 stl and 2 skp files for the bracket, in the zip file name : brackets.zip
    Without endstop version :
    capteur seul.jpg

    With endstop version :
    The position of the sensor is on the right side of the extruder.
    preview support capteur.jpg








    The material needed :

    -1 inductance sensor (DC 6 -36V NO) (NO is very important, it mean normaly open) like that :
    sensor.jpg

    -1 Positive volt regulator +5V (because the endstop need max 5V) L7805CV like that :
    volt regulator.jpg

    - Wiring :
    Wire.jpg

    And i followed the video : https://www.youtube.com/watch?v=EcGFLwj0pnA

    The wiring in the video is a little different, because they used resistances, but I prefered to use regulator.

    Here, some photos :

    the bracket mounted :
    bracket1.jpg

    The Wiring :
    Wiring.jpg

    I have put the tension regulator in a little box I drawn and printed (the stl and skp are joined)
    The box is "open" in order the component to be well ventilated.

    With the sensor mounted :
    With sensor.jpg








    MODIFICATIONS IN THE FIRMWARE :

    It is mainly in "Configuration.h" and one line on "Configuration_Adv.h"

    Modifications on the firmware (I underline the modifications and put additionnal informations between (), remember to not let it in your firmware or put // before :

    Open Marlin.ino with arduino

    In "Configuration_Adv.h" :

    //================================================== =========================
    //=============================Mechanical Settings===========================
    //================================================== =========================

    #define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing (Verify it is define !!)


    Thats all for "Configuration_Adv.h"








    In "Configuration.h" :


    //// The following define selects which power supply you have. Please choose the one that matches your setup
    // 1 = ATX
    // 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)

    #define POWER_SUPPLY 1 (I don't know if it change something but in the Ozgun it was set to 0, and in first 1.02 it was set to 1, so it put again 1)



    //================================================== =========================
    //============================= Mechanical Settings =========================
    //================================================== =========================

    // Uncomment this option to enable CoreXY kinematics
    // #define COREXY

    // Enable this option for Toshiba steppers
    // #define CONFIG_STEPPERS_TOSHIBA

    // coarse Endstop Settings
    #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

    #ifndef ENDSTOPPULLUPS
    // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
    // #define ENDSTOPPULLUP_XMAX
    // #define ENDSTOPPULLUP_YMAX
    // #define ENDSTOPPULLUP_ZMAX
    // #define ENDSTOPPULLUP_XMIN
    // #define ENDSTOPPULLUP_YMIN
    // #define ENDSTOPPULLUP_ZMIN
    #endif

    (I have added this part)
    #ifdef ENDSTOPPULLUPS
    #define ENDSTOPPULLUP_XMAX
    #define ENDSTOPPULLUP_YMAX
    #define ENDSTOPPULLUP_ZMAX
    #define ENDSTOPPULLUP_XMIN
    #define ENDSTOPPULLUP_YMIN
    // #define ENDSTOPPULLUP_ZMIN desactivated because sensor
    #endif


    // Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
    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 = true; // set to true to invert the logic of the endstop. (Verify it is true)
    const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
    const bool Y_MAX_ENDSTOP_INVERTING = true; // 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.
    //#define DISABLE_MAX_ENDSTOPS
    //#define DISABLE_MIN_ENDSTOPS

    // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define E_ENABLE_ON 0 // For all extruders

    // Disables axis when it's not being used.
    #define DISABLE_X false
    #define DISABLE_Y false
    #define DISABLE_Z false
    #define DISABLE_E false // For all extruders
    #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled

    // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
    #define INVERT_X_DIR true
    #define INVERT_Y_DIR true
    #define INVERT_Z_DIR true
    #define INVERT_E0_DIR true
    #define INVERT_E1_DIR true
    #define INVERT_E2_DIR true
    #define INVERT_E3_DIR true

    // ENDSTOP SETTINGS:
    // Sets direction of endstops when homing; 1=MAX, -1=MIN
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1 (verify it is define -1)

    #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
    #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.

    // Travel limits after homing (units are in mm) (put your bed dimensions)
    #define X_MIN_POS 0
    #define Y_MIN_POS 0
    #define Z_MIN_POS 0
    #define X_MAX_POS 190
    #define Y_MAX_POS 200
    #define Z_MAX_POS 190


    (There is a special part for manual bed levelling to display it on LCD menu, but I didn't try to activate it)

    //================================================== =========================
    //============================ Manual Bed Leveling ==========================
    //================================================== =========================

    //#define MANUAL_BED_LEVELING // Add display menu option for bed leveling
    //#define MESH_BED_LEVELING // Enable mesh bed leveling

    #if defined(MESH_BED_LEVELING)
    #define MESH_MIN_X 10
    #define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
    #define MESH_MIN_Y 10
    #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
    #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited
    #define MESH_NUM_Y_POINTS 3
    #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0
    #endif // MESH_BED_LEVELING





    //================================================== =========================
    //============================= Bed Auto Leveling ===========================
    //================================================== =========================

    #define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) (Verify it is define !!)
    #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. (Verify it is define !!)

    #ifdef ENABLE_AUTO_BED_LEVELING

    // There are 2 different ways to specify probing locations
    //
    // - "grid" mode
    // Probe several points in a rectangular grid.
    // You specify the rectangle and the density of sample points.
    // This mode is preferred because there are more measurements.
    //
    // - "3-point" mode
    // Probe 3 arbitrary points on the bed (that aren't colinear)
    // You specify the XY coordinates of all 3 points.

    // Enable this to sample the bed in a grid (least squares solution)
    // Note: this feature generates 10KB extra code size
    #define AUTO_BED_LEVELING_GRID

    #ifdef AUTO_BED_LEVELING_GRID

    // set the rectangle in which to probe
    #define LEFT_PROBE_BED_POSITION 47 (Put your infos, depending of where you fix your sensor)
    #define RIGHT_PROBE_BED_POSITION 153 (Put your infos, depending of where you fix your sensor) (Left + right = length of X axis)
    #define BACK_PROBE_BED_POSITION 190 (Put your infos, depending of where you fix your sensor)
    #define FRONT_PROBE_BED_POSITION 10 (Put your infos, depending of where you fix your sensor) (Back + Front = length of Y axis)

    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this

    // Set the number of grid points per dimension
    // You probably don't need more than 3 (squared=9)
    #define AUTO_BED_LEVELING_GRID_POINTS 3 (on mine, i can put 3, depend of the offset between the sensor and the nozzle, test with 2, raise to 3 and test compiling, if the offset is too important, you will have an error)



    // Offsets to the probe relative to the extruder tip (Hotend - Probe)
    // X and Y offsets must be integers
    #define X_PROBE_OFFSET_FROM_EXTRUDER 47 // Probe on: -left +right (Put your infos, depending of where you fix your sensor)
    #define Y_PROBE_OFFSET_FROM_EXTRUDER 9 // Probe on: -front +behind (Put your infos, depending of where you fix your sensor)
    #define Z_PROBE_OFFSET_FROM_EXTRUDER -0.25 // -below (always!) (Put your infos, depending of where you fix your sensor)

    (for the X and Y it is easy, for the Z a little more complicated :
    Put 0 for Z offset, save and upload it with Arduino on the RL200

    To verify your sensor is well connected and works :
    Switch on the printer, open the console of your favorite software
    Up the head until the light off
    Type M119 and validate
    you wil see normally :
    X_min : open
    X_max : open
    Y_min : open
    Y_max : open
    Z_min : open
    Z_max : open

    Put a metal objet under the sensor in order it light on
    Type M119 and validate
    Normally :
    all endstop : open
    Z_min : Triggered



    Use Cura assistant bed levelling
    Down the nozzle until you can pass a piece of paper under the nozzle.
    Down manually the sensor by unscrewing it, until the light is on, and screw it firmly (it is the first part of the tune)
    Close Cura assistant bed levelling

    Now the fine tune :
    Open your favorite software to have a terminal to enter code manually (cura or repetier host or octoprint)
    Type G28 and Validate (the head move normally at X=100, Y=100, Z=0 and stop, the sensor light on)
    Type G92Z10 and validate (the computer think you are at 10 mm height, and you can down the head (even if the light is on), If you don't do that you won't be able to do fine tune and you will not be allowed to down the head)
    Put a piece of paper under the nozzle
    Push the button -0.1 mm on Z axis until the paper touch the nozzle,just move without forcing
    Type M114 and validate (you will have the coordonate of the nozzle)
    take the Z and substract 10 (if you have push 2 times on the -0.1 button, your Z is 9.8, so you do 9.8-10= -0.2)

    Open Arduino
    Load Marlin.ino

    In "Configuration.h"

    Put the number of the subtraction on Z_PROBE_OFFSET_FROM_EXTRUDER (don't forget the minus sign !!!)

    Save and upload it

    Open your favorite software to have a terminal to enter code manually (cura or repetier host or octoprint)

    Now you can test it with G28 code and after G29 code by typing it directly

    Remember that G29 (autobedleveling) works only if you have done a G28 before.

    The last things to do is to modify the start-gcode area, in your favorite software (Like that the ALB will be done at every print).

    Find :
    G90
    M82
    M107

    And add just after :
    G28
    G29

    It is finishes, tell me if there are dark area.

    Sometimes i have strange issue, the head goes up instead of going down during the G28 or G29, I don't know why exactly, perhaps a bad connection on the wire, tell me if you have the same problem.
    Update (13/05):
    I have found why I have these issues, sometimes my sensor is blocked in triggered position.
    (M119 confirm that)
    I unplugged it, and plug again, it works well again
    Attached Files Attached Files
    Last edited by SAO; 05-13-2015 at 11:40 AM.

  2. Thanks bolsoncerrado thanked for this post
    Likes Joao, bolsoncerrado, ned73 liked this post
  3. #2
    Regular 3D Printer
    Join Date
    Dec 2014
    Posts
    97
    Post Thanks / Like
    I managed to get the output voltage on the sensor from 12vdc down to 6vdc with two 10k ohm resistors in a voltage divider circuit setup. I was working on getting it to 5vdc when I noticed the sensor is always reading near the target even when pointed away from metal. I think I may have a defective sensor. It was intermittently working when I first plugged it in, now it just stays on reading near all the time Any thoughts?





    Sent from my iPhone using Tapatalk

  4. #3
    Regular 3D Printer
    Join Date
    Dec 2014
    Posts
    97
    Post Thanks / Like
    I have an issue that after the g28 the g29 does not probe all the way down. On g28 it does hit the z min switch, but g29 it does not its about 10mm from hitting the switch. It goes to 4 points just fine but its not working because its not actually reading the bed, if I manually trigger the switch while its doing its probing the z axis moves up even further and stays there while its doing its pattern, it will go up further each time its triggered. I'm not sure why, I followed the recommended instructions and checked it 5 times.

  5. #4
    Regular 3D Printer
    Join Date
    Dec 2014
    Posts
    97
    Post Thanks / Like
    Thanks for starting this thread SAO. I ended up coding my marlin a little different I think there is a hand full of slightly different methods that will all work. The z height problem where it was not using the z limit switch on the g29 command resolved itself when I disabled EEPROM. I'm not sure why that is, my assumption is it was somehow interfering with the z height. Even though I had it set to zero. It only took me 8 hours to figure it out. Glad I finally did, I didn't want to do all the work to get this far and give up.

    I would like to enable baby stepping from the lcd controller, any ideas? I have it enabled in the firmware but when I select it in the lcd menu I don't get any numerical indication that anything is happening and I don't see any visible changes.

  6. #5
    Regular 3D Printer
    Join Date
    Dec 2014
    Posts
    97
    Post Thanks / Like
    Here is a video of my auto leveler in operation.

  7. #6
    Regular 3D Printer
    Join Date
    Dec 2014
    Location
    Italy
    Posts
    74
    Post Thanks / Like
    I've a problem: since my induction sensor its in front the nozzle, homing X and Y to 0, the Z probing it's outsuide the plate now.. There is a way to fix the Z probing without need to redraw and print a new sensor bracket?

    IMG_20161016_190748.jpg

  8. #7
    Administrator bolsoncerrado's Avatar
    Join Date
    Nov 2014
    Posts
    3,035
    Post Thanks / Like
    Which extruder is that one?!

  9. #8
    Regular 3D Printer
    Join Date
    Dec 2014
    Location
    Italy
    Posts
    74
    Post Thanks / Like
    E3D-V6 with belt bowden extruder:

    IMG_20161016_232017.jpg

  10. #9
    Administrator bolsoncerrado's Avatar
    Join Date
    Nov 2014
    Posts
    3,035
    Post Thanks / Like
    very nice setup!

    do you have sample prints (pics) of stuff printed in the e3d?

  11. #10
    Regular 3D Printer
    Join Date
    Dec 2014
    Location
    Italy
    Posts
    74
    Post Thanks / Like
    well that belt extruder it's printed @ 80mm/s with e3d hotend

    btw tomorrow i'll try to post u better pics

 

 

Similar Threads

  1. Auto Leveling bed
    By SAO in forum Rapide Lite 3D Printers
    Replies: 64
    Last Post: 05-13-2015, 09:56 PM
  2. Bed Levelling with heaters on for ABS?!
    By warx in forum Rapide Lite 3D Printers
    Replies: 1
    Last Post: 04-30-2015, 09:24 PM
  3. Print Bed Levelling Issue
    By Leon in forum Rapide Lite 3D Printers
    Replies: 10
    Last Post: 01-24-2015, 03:09 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •