• Tags
  • Documentation
  • Order
  • Register
  • Login
Duet3D Logo Duet3D
  • Tags
  • Documentation
  • Order
  • Register
  • Login

Importantance of bed leveling.

Scheduled Pinned Locked Moved
General Discussion
10
11
1.4k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • undefined
    zBeeble
    last edited by 20 Feb 2018, 20:25

    So… I have the IR bed level sensor on order, but it's backordered for the moment. I'm migrating the rig from RAMPS 1.4 electronics to the Duet3dWifi. How important (to the firmware application) is bed leveling? Can I proceed to use the rig without bed leveling until it arrives, or do I need to wait?

    1 Reply Last reply Reply Quote 0
    • undefined
      deckingman
      last edited by 20 Feb 2018, 21:08

      Firmware wise you can proceed without bed levelling. Hardware wise, if the bed is flat and level and stays that way, you don't need firmware compensation - ever.

      Ian
      https://somei3deas.wordpress.com/
      https://www.youtube.com/@deckingman

      1 Reply Last reply Reply Quote 0
      • undefined
        Poent
        last edited by 20 Feb 2018, 21:09

        Automatic bed leveling should be considered a convenience, and specifically should NOT be relied upon until you've done your best to level the bed manually. I printed for years without any automated bed leveling setup and had great success - though a significant amount of time was spent on the manual leveling process.

        So yes, you can proceed to use a 3d printer without automatic bed leveling - and the duet works without relying on one as well.

        1 Reply Last reply Reply Quote 0
        • undefined
          kraegar
          last edited by 21 Feb 2018, 13:37

          Let's differentiate calibration vs leveling.

          Bed leveling = having the bed mechanically level so anywhere the nozzle is at z=0 it is just touching the bed.

          Bed calibration = work around, via software, for when bed leveling isn't perfect

          You can mechanically level your bed, by hand, by physically adjusting your printer, and this should be your first goal before relying on calibration. If you do well enough, calibration won't do a lot lot for you.

          True automatic bed leveling (such as using 3 steppers to physically level the bed for you) is combining the two. The duet can do this as well, if your printer is capable of it.

          Co-Creator of the RailcoreII CoreXY printer
          https://www.thingiverse.com/thing:2407174

          1 Reply Last reply Reply Quote 0
          • undefined
            DjDemonD
            last edited by 21 Feb 2018, 13:46

            Honestly if you have a solid machine with sturdy axes, and a bed that's actually flat, and a mechanism to level it you don't need any z probes. Level the bed by turning screws and don't move the machine around or change anything and it stays level.

            If your machine is a bit more flimsy and doesn't consistently stay level (or in tram) then sensors and firmware ABL helps to get that first layer down more consistently.

            If your bed isn't actually fiat, and there are some good reasons why this happens using a sensor to grid level enables printing on a non-flat bed. Tapering off compensation minimises the artefact in the print to just a few mm of the base.

            However probes are super useful for deltas as they make automatic calibration actually a pleasure, just hit a button and it sets itself up. Providing its mechanically correct and the probe accurate.

            Honestly despite being in the probe business I'm honest enough to say that they aren't always necessary. I recently got a cr10 to play with, used a piece of paper to check gap and turned a few screws and I can print anywhere on the bed.

            Also the manual calibration routine which now runs if you have no probe configured, actually works quite nicely. I used it on my XL machine when I was having a wiring issue with the probe. Just jog up and down, use piece of paper and show the firmware the probe heights at each point and you're done.

            Simon. Precision Piezo Z-Probe Technology
            www.precisionpiezo.co.uk
            PT1000 cartridge sensors NOW IN, just attach to your Duet board directly!

            1 Reply Last reply Reply Quote 0
            • undefined
              EasyTarget
              last edited by 21 Feb 2018, 16:36

              Totally agree with last two comments, my dinky little RF100 Cartesian with a magnetic mounted glass bed (+PEI'alike surface) and three manual leveling screws has now been untouched since before Christmas when I last had the nozzle out to clean. I set it up once with feeler gauges, and that was it.

              I can pop the plate on-off as much as I like and I get a perfect layer/adhesion first time, every time! Set and forget is lovely.

              My delta however… endstop jitter and a looser bed fitting makes my IR42 probe very much in demand, and calibration every print a prerequisite. One of my long-term goals to to make this set and forget too if I can find a accurate enough endstop mechanism.

              Disaster? The original Printeye is dying with RRF 3.5 (M208 depreciated).
              PrintPy2024 to the rescue!
              MicroPython based; with simple wiring and and no custom PCB.

              1 Reply Last reply Reply Quote 0
              • undefined
                Legrand
                last edited by 23 Feb 2018, 19:38

                I run five deltas and a cartesian FT5 and don't use a touch probe on any of them anymore. I had an IR sensor on a couple of them, but ditched it when I started using nice thick glass plates a couple of years ago.

                Spend the time to set the printer up properly and you'll never need a probe/sensor/etc,

                1 Reply Last reply Reply Quote 0
                • undefined
                  chanders
                  last edited by 26 Mar 2018, 21:03

                  @DjDemonD:

                  Also the manual calibration routine which now runs if you have no probe configured, actually works quite nicely. I used it on my XL machine when I was having a wiring issue with the probe. Just jog up and down, use piece of paper and show the firmware the probe heights at each point and you're done.

                  Does the Duet have a manual calibration routine?

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    Phaedrux Moderator
                    last edited by 26 Mar 2018, 22:05

                    You can create some macros to make it easier.

                    Z-Bot CoreXY Build | Thingiverse Profile

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      JohnOCFII
                      last edited by 27 Mar 2018, 02:49

                      @chanders:

                      Does the Duet have a manual calibration routine?

                      Yes: https://duet3d.dozuki.com/Wiki/Using_the_manual_bed_levelling_assistant

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        Phaedrux Moderator
                        last edited by 27 Mar 2018, 06:28

                        @chanders:

                        @DjDemonD:

                        Also the manual calibration routine which now runs if you have no probe configured, actually works quite nicely. I used it on my XL machine when I was having a wiring issue with the probe. Just jog up and down, use piece of paper and show the firmware the probe heights at each point and you're done.

                        Does the Duet have a manual calibration routine?

                        I don't have multiple Z axis motors to use the leveling assistant so I created a macro that takes me through a manual bed leveling, calibrates the Zprobe trigger height, and gets everything ready for a G29 detailed probe.

                        [c]
                        ; Helps guide leveling the bed mechanically, and calibrate the ZProbe trigger height before running a grid bed compensation routine..
                        ;

                        ; Preamble to tell the user to prepare the printer before continuing
                        ;
                        ;M291 P"Before proceeding make sure the printer is mechanically sound and properly functioning." R"Prepare printer for leveling routine" S3 ; User must click OK
                        ;M291 P"ZProbe should be configured and working. Clear the print bed of any obstacles or debris." R"Prepare printer for leveling routine" S3 ; User must click OK
                        ;M291 P"This routine will take about 10-20 minutes and heat both the bed and nozzle." R"Prepare printer for leveling routine" S3 ; User must click OK
                        ;M291 P"You will need a screwdriver and piece of paper. Filament will be unloaded." R"Prepare printer for leveling routine" S3 ; User must click OK
                        ;M291 P"Make sure you have successful Gcodes logged to the console before proceeding." R"WARNING" S3 ; User must click OK or cancel
                        ;M291 P"Make a note of your M558 Z value and backup current heightmap before proceeding." R"WARNING" S3 ; User must click OK or cancel

                        ; Clear compensation map and Zprobe trigger height
                        ;
                        M291 P"Grid bed compensation map and ZProbe trigger height will be cleared. Ok or Cancel?" R"WARNING" S3 ; User must click OK or cancel.
                        M561 ; Disable any current bed compensation
                        G31 Z0 ; Reset zprobe trigger height

                        ; Heat up bed and nozzle to PLA temps in prep for filament removal and probing
                        ;
                        M291 P"Bed and nozzle will preheat and home all axis." R"Preheat and Home" S3 ; User must click OK or cancel
                        M104 S130 ; Set nozzle to 130 and release
                        M140 S55 ; Set bed to 55 and release

                        ; home all axis
                        ;
                        G28 ; Home all axis
                        G90 ; Absolute positioning
                        T0 ; Activate first tool

                        ; Set lower speeds for Z homing and lower Z motor current
                        ;
                        M566 Z10 ; Set maximum instantaneous speed changes (mm/min) (Jerk)
                        M203 Z400 ; Set maximum speeds (mm/min)
                        M201 Z100 ; Set maximum accelerations (mm/s^2)
                        M906 Z900 ; Drop motor current to prevent damage in case of head crash

                        ; Move nozzle forward for filament removal
                        ;
                        M291 P"Moving nozzle to the front for filament removal and cleaning."
                        G1 X50 Y5 Z100 ; Moves print head to front left and drops the bed down for easy access
                        M109 S130 ; Set nozzle to 130 and wait

                        ; Tone to get user attention
                        ;
                        M400 ; Clear movement buffer so tones play reliably
                        M300 S666 P500
                        G4 P501
                        M300 S1111 P300
                        G4 P301

                        ; Unload filament and clean nozzle
                        ;
                        M291 P"Unload filament if loaded and clean nozzle, then press OK to continue" R"Unload Filament" S3 ; User must click OK or cancel

                        ; Preheat to probing temps
                        ;
                        M291 P"Preheating to bed to 60 and nozzle to 210 for accurate probing"
                        M104 S210 ; Set nozzle to 210 and release
                        M190 S60 ; Set bed to 60 and wait
                        M109 S210 ; Set nozzle to 210 and wait

                        ; Tone to get user attention
                        ;
                        M400 ; Clear movement buffer so tones play reliably
                        M300 S666 P500
                        G4 P501
                        M300 S1111 P300
                        G4 P301

                        ; Move nozzle to center of bed at Z10 and drop to Z1
                        ;
                        M291 P"Nozzle will now move to center of bed and move close to the bed"
                        G1 X155 Y140 Z3 F4000 ; move to bed center

                        ; Reset z to 5 to allow jogging up to touch bed to nozzle
                        ;
                        G92 Z5

                        ; Dialog to allow user to job z to touch nozzle to bed gently and then move Z down 10
                        ;
                        M291 P"Carefully Jog the Z Axis until the bed and nozzle are touching and click OK" R"Setting Z=0" Z1 S3
                        G92 Z0 ; set z = 0

                        ; Move nozzle to leveling points and prompt user to level bed at each
                        ;
                        M291 P"Nozzle will now move to the 3 leveling points twice." S2

                        ; Move to leveling point 1
                        G1 Z1 ; move to z1 for travel
                        G1 X60 Y285 F6000 ; Move to rear left corner
                        G1 Z0 ; Move to Z0 for adjustment
                        M400
                        M291 P"Adjust point 1 using a piece of paper and screw driver. Use the jog buttons if needed." R"Adjustment Point 1" S2 Z1

                        ; Move to leveling point 2
                        G1 Z1 ; Move to Z1 for clearance
                        G1 X275 Y285 F6000 ; Move to rear right corner
                        G1 Z0 ; Move to Z0 for adjustment
                        M400
                        M291 P"Adjust point 2 using a piece of paper and screw driver. Use the jog buttons if needed." R"Adjustment Point 2" S2 Z1

                        ; Move to leveling point 3
                        G1 Z1 ; Move to Z1 for clearance
                        G1 X158 Y15 F6000 ; Move to front middle
                        G1 Z0 ; Move to Z0 for adjustment
                        M400
                        M291 P"Adjust point 3 using a piece of paper and screw driver. Use the jog buttons if needed." R"Adjustment Point 3" S2 Z1

                        ; Repeat to verify
                        ;
                        M291 P"The adjustment sequence will now repeat for fine adjustment." S2

                        ; Move to leveling point 1
                        G1 Z1 ; move to z1 for travel
                        G1 X60 Y285 F6000 ; Move to rear left corner
                        G1 Z0 ; Move to Z0 for adjustment
                        M400
                        M291 P"Adjust point 1 using a piece of paper and screw driver. Use the jog buttons if needed." R"Adjustment Point 1" S2 Z1

                        ; Move to leveling point 2
                        G1 Z1 ; Move to Z1 for clearance
                        G1 X275 Y285 F6000 ; Move to rear right corner
                        G1 Z0 ; Move to Z0 for adjustment
                        M400
                        M291 P"Adjust point 2 using a piece of paper and screw driver. Use the jog buttons if needed." R"Adjustment Point 2" S2 Z1

                        ; Move to leveling point 3
                        G1 Z1 ; Move to Z1 for clearance
                        G1 X158 Y15 F6000 ; Move to front middle
                        G1 Z0 ; Move to Z0 for adjustment
                        M400
                        M291 P"Adjust point 3 using a piece of paper and screw driver. Use the jog buttons if needed." R"Adjustment Point 3" S2 Z1

                        ; Move nozzle to center of bed at z10
                        ;
                        M291 P"Nozzle will now move to center of bed to reset Z0 and calibrate probe" S3
                        G1 Z1 ; Drop bed for nozzle clearance
                        G1 X155 Y140 Z2 F4000 ; Move to bed center

                        ; Reset z to 5 to allow jogging up to touch bed to nozzle
                        ;
                        G92 Z5

                        ; Dialog to allow user to jog z to touch nozzle to bed gently and then move Z down 10
                        ;
                        M291 P"Jog the Z Axis until the bed and nozzle are touching and click OK" R"Setting Z=0" Z1 S3
                        G92 Z0 ; Set z = 0

                        ; Move probe to center of bed and get probe trigger heights
                        ;
                        M291 P"Probe will now move to center of bed and measure trigger height 10 times" R"ZProbe Trigger Height Calibration" S3
                        G1 Z1 ; Drop bed for nozzle clearance
                        G1 X200 Y140 F4000 ; Move to bed center

                        M291 P"Heights will be found in gcode console if logging successful gcode is enabled" R"Did you remember to enabled gcode logging?" S3

                        ; G30 S-1 10 times
                        ;
                        ; 1
                        G1 Z10
                        G30 S-1

                        ; 2
                        G1 Z10
                        G30 S-1

                        ; 3
                        G1 Z10
                        G30 S-1

                        ; 4
                        G1 Z10
                        G30 S-1

                        ; 5
                        G1 Z10
                        G30 S-1

                        ; 6
                        G1 Z10
                        G30 S-1

                        ; 7
                        G1 Z10
                        G30 S-1

                        ; 8
                        G1 Z10
                        G30 S-1

                        ; 9
                        G1 Z10
                        G30 S-1

                        ; 10
                        G1 Z10
                        G30 S-1

                        M291 P"Probing complete. Turning off heaters and homing axis. Check log for trigger heights and enter into config.g" S2

                        ; Turn off heaters
                        ;
                        M104 S0 ; Set nozzle to 0 and release
                        M140 S0 ; Set bed to 0 and release
                        M906 Z1500 ; Return Z motor current to normal
                        G28 ; Home all

                        ; Tone to get user attention
                        ;
                        M400 ; Clear movement buffer so tones play reliably
                        M300 S666 P500
                        G4 P501
                        M300 S1111 P300
                        G4 P301

                        ; Tell user to take values from gcode console log and average the Z height and use that as the new Z probe trigger height
                        ;
                        ;M291 P"Average the 10 Z height values in the console and round to 2 decimal places" S2
                        ;M291 P"The resulting value is the ZProbe trigger height value (M558 Zn)" S2
                        ;M291 P"Either set the value in config.g and reboot, or send M558 Zn in the console before running G29." S2
                        ;M291 P"The bed is now mechanically leveled and probe height calibrated." R"Congratulations!" S2
                        ;M291 P"You may now run a Grid Bed Compensation Detailed Probe. (G92)." S2
                        ;
                        ; Run bed grid compensation routine
                        [/c]

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA