have problems with mesh bed leveling

  • i have problems to level my bed

    Z-Probe: Piezo Orion
    E3d V6 Original ( no Clone )

    manual bed leveling give me this as output

    Manual corrections required: 0.00 turn up (0.00mm) 0.00 turn down (0.00mm) 0.0 turn up (0.00mm)

    seems perfect or not ?

    but after i run G29

    i got this as output


    i try since hours to get it flat but no chance

    anyone can help me

    if you nedd my configs please tell me i will reply


  • Hi,

    Can you run G29 using the same 3/4 points you use for the manual bed leveling procedure?

    I would do it just to be sure you get the same results - perfectly level.


  • if you explain how i can do that

    thats my bed.g

    ;M561 ; clear any bed transform
    ;G28 ; home
    ;M401 ; deploy Z probe
    ;G30 P0 X215 Y210 Z-99999 ; probe near an adjusting screw
    ;G30 P1 X215 Y9 Z-99999 ; probe near an adjusting screw
    ;G30 P2 X5 Y114 Z-99999 S3 ; probe near an adjusting screw and report adjustments needed
    ;M402 ; retract probe

  • Moderator

    I'm not quite sure why you have a bulge in the bed (possibly expansion due to heating?) but you do have a 'tramming' issue. This is shown by, on the left of your bed map, the high point at the front and the low point at the back, while on the right it is relatively level. This means that your Y axis smooth rods are not level. Assuming this is a cartesian printer with a bed that moves in Y, which most likely has four feet, and is not sat on a flat surface, so one corner of your printer is lifted. The easiest fix for this is to put a shim (folded piece of paper, 1mm thick) under the front left foot of the printer.

    To resolve other issues we'll need to know more about the printer; type and construction of heated bed, layout of rods etc. Or post a picture of it.


  • this is my printer


    my config.g

    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v2 on Thu Apr 11 2019 17:51:12 GMT+0200 (Mitteleuropäische Sommerzeit)
    ; General preferences
    G90                                      ; Send absolute coordinates...
    M83                                      ; ...but relative extruder moves
    ; Network
    M550 P"AM8"                              ; Set machine name
    M552 S1                                  ; Enable network
    M587 S"+++++" P"++++++"  ; Configure access point. You can delete this line once connected
    M586 P0 S1                               ; Enable HTTP
    M586 P1 S0                               ; Disable FTP
    M586 P2 S0                               ; Disable Telnet
    ; Drives
    M569 P0 S0                               ; Drive 0 goes forwards X
    M569 P1 S0                               ; Drive 1 goes forwards Y
    M569 P2 S1                               ; Drive 2 goes backwards Z
    M569 P3 S1 				 ; Drive 3 goes forwards Extruder
    M569 P4 S1 			         ; Drive 4 2nd Z-motor - Normally used as Extruder 1
    ; Motor Remapping
    M584 X0 Y1 Z2:4 E3	; two Z motors connected to driver outputs Z and E1
    M350 X16 Y16 Z16 E16 I1                  ; Configure microstepping with interpolation
    M92 X100.12 Y99.35 Z408.16 E396.24      ; Set steps per mm
    M566 X600.00 Y600.00 Z18.00 E300.00      ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z450.00 E6000.00  ; Set maximum speeds (mm/min)
    M201 X1500.00 Y1500.00 Z450.00 E10000.00 ; Set accelerations (mm/s^2)
    M906 X1400.00 Y1400.00 Z1400.00 E800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                                  ; Set idle timeout
    ; Axis Limits
    ;M671 X-15:205:205 Y105:205:15 P0.5   ; für manual bed levelling
    ;M671 X-15:100:215 Y190:-10:190 P0.5 ; adjusting screws at rear left (-15,190), front middle (100,-10) and rear right (215,190), thread pitch 0.5mm
    M671 X-33:220 Y0:0 S0.5 		 ; leadscrews at left and right of X axis für 2 motoren
    M208 X-33 Y-10 Z0 S1                     ; set axis minima
    M208 X220 Y220 Z240 S0                   ; set axis maxima
    ; Endstops
    M574 X1 Y1 S0                            ; Set active low and disabled endstops
    ; Z-Probe
    M574 Z1 S2                               ; Set endstops controlled by probe
    M558 P5 I1 R0.4 F420 X0 Y0 Z0			 ; Set Z probe type to effector and the dive height + speeds
    G31 X0 Y0 Z0 P100                      ; Set Z probe trigger value, offset and trigger height 
    M557 X20:200 Y20:200 S40                 ; define mesh grid
    ; Heaters
    ;M307 H0 B0 S1.00                         ; Disable bang-bang mode for the bed heater and set PWM limit
    ;M307 H0 A78.5, C355.9, D1.0	          ; Pid Tuining BED
    ;M143 H0 S130                             ; Set temperature limit for heater 0 to 130C
    M305 P0 T100000 B4138 R4700              ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                             ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S275                             ; Set temperature limit for heater 1 to 275C
    M307 H1 A224.6, C134.6, D5.3 S1		 ; Pid Tuning -nozzle
    ; Fans
    M106 P0 S0 I0 F500 H-1                   ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45                ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    ; Tools
    M563 P0 D0 H1                            ; Define tool 0
    G10 P0 X0 Y0 Z0                          ; Set tool 0 axis offsets
    G10 P0 R0 S0                             ; Set initial tool 0 active and standby temperatures to 0C
    ; Automatic saving after power loss is not enabled
    ; Custom settings are not configured
    ; Miscellaneous
    T0                                       ; Select first tool

  • @lui2004

    Why are all of the commands in your bed.g commented out?

    As to getting G29 to do a simplified 4 point probe try M557 X5:215 Y9:210 P2.

    Those values are determined by the values in your bed.g file. In that file you specify the first two points as X215,Y210 and X215,Y9 with the X of the third point as X5. So I am using the X range (5 to 215) and the Y range (9 to 210) to specify the four points of a rectangle which would give you a simplified height map showing just the overall levelness of the bed.

    Now I don't recall if the M557 command needs to be set taking into account the probe offset or not.

    I don't use the bed leveling assistant as I find it hard to turn the adjustment screws just the amount reported.

    I just use G29 with 4 point probing near the corners of the bed. Then I can look at the values reported in the height map and tweak the adjustment screws. It takes a number of runs of G29 but I find that I can get the four points adjusted within 0.005 mm easily and within 0.001 mm with a bit more work.

    One I have the bed leveled to my satisfaction then I use G29 with multi-point probing to determine the actual mesh compensation to use during printing.


  • i still try it


  • it seems almost perfect 😉

    epRapFirmware height map file v2 generated at 2019-10-03 19:25, min error 0.000, max error 0.017, mean 0.009, deviation 0.008
      0.017,  0.000
      0.017,  0.002

  • Hi,

    Were you actually running the bed.g file with all of the commands commented out?


  • my bed.g is like this:

    ;; bed.g
    ; called to perform automatic bed compensation via G32
    ; generated by RepRapFirmware Configuration Tool v2 on Mon Apr 29 2019 10:01:00 GMT+0200 (Mitteleuropäische Sommerzeit)
    M561 ; clear any bed transform
    G28 ; home
    M401 ; deploy Z probe
    G30 P0 X215 Y210 Z-99999 ; probe near an adjusting screw
    G30 P1 X215 Y9 Z-99999 ; probe near an adjusting screw
    G30 P2 X5 Y114 Z-99999 S3 ; probe near an adjusting screw and report adjustments needed
    M402 ; retract probe

  • G29 with multi-point probing i got this output


  • administrators

    If you compare the simple 4 points, with the multi point it certainly looks like your bed has a huge bulge. try rotating the surface or flipping it over to confirm it is a physical issue with the bed surface.

  • ok shit 😉

    can you recommend me a good bed ?

  • today i have changed the bed and all is flat

    now,what i do first before i start print?
    G29 S1 ; Load Mesh
    G32 to Level the 2 independend Z-Motors

    and the start print is correct ? if yes my prints starts over the air if do this

  • @lui2004

    Well for my DBOT equipped with 3 Z-axis steppers and I am leveling the bed and/or creating the height map as separate operations via Macros

    For printing I:

    • warm the bed and extruder heater for several minutes
    • home all
    • set the "Z=0 Datum" using the Z-probe
    • load the height map
    • begin print


  • for Simplify3d in Endscript is the code like this ?

    G28 ; home all axis
    G1 X110 Y110 ; Go to Center
    G30 ; Z=0 Datum
    G29 S1 ; Load Mesh

  • @lui2004

    The only gcode I have in S3D is to use M98 to invoke two macros, print_begin.g and print_end.g


  • Hi

    i have never used macros, can you explain me ho to use it ?

    thanks a lot for your help

  • @lui2004 said in have problems with mesh bed leveling:


    i have never used macros, can you explain me ho to use it ?

    thanks a lot for your help

    A macro is just a file containing G-codes. You use M98 P"macro filename" to run a macro by name.

    They are great for putting the code for a specific function which you might want to run from various places in one file so there's only one file to edit when you need to change things.

    For example, you could have the code needed to home your X, Y and Z axes repeated in both homeall.g and the individual home macros. Or, you could just call the individual home macros from homeall.g

  • ok nice !

    for example for z=Datum


    G1 X110 Y110 ; Go to bed center
    G30 ; Probe once

    and then i can insert in Simplify3d in Startscript

    M98 Zdatum.g

    is it correct ?

Log in to reply