Adjust Z Axis with 2 independent Z-Motors & Mesh calibrating



  • Hello,

    i Have 2 ballscrew's in my Printer they run so smoth that allways when i switch off the printer my Printbed moves down.

    It is possible to adjust the bed height automatically first, and after that using the Mesh calibrating function with a connected z-probe like piezo orion?

    what i want is:

    first both z axis drive the bed up until the first endstop is triggert now the triggering site is stopped the other side motor will drive until the second endstop is triggering.

    If it is possible how i can configure it?

    regards

    Andy





  • this i know and is running so far on my printer, but this only levels the bed and not adjust it.




  • administrators

    @siam said in Adjust Z Axis with 2 independent Z-Motors & Mesh calibrating:

    this i know and is running so far on my printer, but this only levels the bed and not adjust it.

    What do you mean by "this only levels the bed and not adjust it"?



  • when I start leveling with g32, my two measurement points are measured, and in my example, one side is 0.7 mm too deep.
    If I measure the print bed manually after the command g32 the one side is still 0.7 too deep i think this will be corrected during the print (leveling)

    What I would like to have would be my example: if i send the command g32 or similar to the printer the print bed will be corrected so that i have both axis at the same hight (adjust)


  • administrators

    When you home the printer and then run G32 several times in succession, what output do you get in the DWC console?



  • ok it seems to work ! this means i have to send the g32 command 10 times or more to get a even printbed? or is there a miss configuration on my side ?

    09:39:03G32
    Leadscrew adjustments made: -0.043 -0.052, points used 2, deviation before 0.052 after 0.000
    09:38:30G32
    Leadscrew adjustments made: -0.040 -0.042, points used 2, deviation before 0.042 after 0.000
    09:37:56G32
    Leadscrew adjustments made: -0.034 -0.049, points used 2, deviation before 0.049 after 0.000
    09:37:25G32
    Leadscrew adjustments made: -0.048 -0.062, points used 2, deviation before 0.062 after 0.000
    09:36:51G32
    Leadscrew adjustments made: -0.038 -0.071, points used 2, deviation before 0.072 after 0.000
    09:36:20G32
    Leadscrew adjustments made: -0.064 -0.091, points used 2, deviation before 0.091 after 0.000
    09:35:48G32
    Leadscrew adjustments made: -0.027 -0.123, points used 2, deviation before 0.135 after 0.000
    09:35:17G32
    Leadscrew adjustments made: -0.020 -0.228, points used 2, deviation before 0.261 after 0.000
    09:34:44G32
    Leadscrew adjustments made: -0.001 -0.385, points used 2, deviation before 0.455 after 0.000
    09:34:26G28
    09:33:53T0```


  • It works well for me! Thanks for that quick and working solution 🙂



  • post your config.



  • Istalled firmware is 2.03

    my config.g

    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Sun Apr 21 2019 14:18:45 GMT+0200 (Mitteleuropäische Sommerzeit)
    ; General preferences
    G90                                         ; Send absolute coordinates...
    M83                                         ; ...but relative extruder moves
    
    M669 K1
    
    ; Network
    M550 P"hypercube"                          ; Set machine name
    M552 S1                                     ; Enable network
    ;*** Access point is configured manually via M587
    M586 P0 S1                                  ; Enable HTTP
    M586 P1 S0                                  ; Disable FTP
    M586 P2 S0                                  ; Disable Telnet
    
    ; Drives
    M569 P0 S1                                  ; Drive 0 = X goes forwards
    M569 P1 S1                                  ; Drive 1 = Y goes forwards
    M569 P2 S1                                  ; Drive 2 = Z goes forwards
    M569 P3 S1                                  ; Drive 3 = e0 goes backwards
    M569 P4 S1                                  ; Drive 4 = e2 goes forwards
    
    ; Calibrierung z achsen
    
    M584 X0 Y1 Z2:4 ; zwei an die Treiberausgänge Z und E1 angeschlossene Z-Motoren
    M671 X-10:390 Y190:190 S2 ; Leitspindeln links und rechts von der X-Achse
    
    
    M350 X16 Y16 Z16 E16 I1                     ; Configure microstepping with interpolation
    
    
    M92 X80.5 Y80.5 Z800.00 E426 ;xy= 8050 E2864.00          ; Set steps per mm bowden
    
    M566 X960.00 Y960.00 Z240.00 E250          ; Z 12 Set maximum instantaneous speed changes (mm/min)bowden
    M203 X9000.00 Y9000.00 Z1200.00 E12000.00      ; Set maximum speeds (mm/min)***** / = 180 (lahm)bowden
    M201 X2000.00 Y2000.00 Z500.00 E2000.00            ; Set accelerations (mm/s^2) bowden
    M906 X1000.00 Y1000.00 Z1000.00:1000.00 E1000.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S0                                      ; Set idle timeout
    
    
    
    
    ; Axis Limits
    M208 X-1 Y0 Z-3 S1                          ; Set axis minima
    
    M208 X-5:205 Y0:200 ; Der X-Wagen bewegt sich von -5 bis 205, das Y-Bett von 0 bis 200
    M208 X400 Y380 Z450 S0                      ; Set axis maxima
    
    ; Endstops
    M574 X1 Y1 S1                               ; Set active high endstops
    
    ; Z-Probe
    M574 Z1 S2                                  ; Set endstops controlled by probe
    M558 P8 R0.4 H5 F450 T6000 I1                 ; Set Z probe type to effector and the dive height + speeds
    G31 P500 X0 Y0 Z0.20                        ; Set Z probe trigger value, offset and trigger height
    M557 X15:390 Y15:390 S50                    ; Define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                            ; Disable bang-bang mode for the bed heater and set PWM limit
    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.06e-8 R4700                 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                                ; Set temperature limit for heater 1 to 280C
    
    ; Fans
    M106 P0 S0 I0 F25500 H-1 C"KĂĽhlung"                    ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P1 S1 I0 F75 H1 T45 C"hotend"                  ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S0.5 I0 F250 H-11 T35 C"LED"             ; LED Set fan 2 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
    M501                                        ; Load saved parameters from non-volatile memory
    

    bed.g

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Sun Apr 21 2019 14:18:45 GMT+0200 (Mitteleuropäische Sommerzeit)
    M561 ; clear any bed transform
    ;G29  ; probe the bed and enable compensation
    
    G28 ; home
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    
    ; Probe the bed at 4 points
    ;G30 P0 X15 Y15 H0 Z-99999
    ;G30 P1 X15 Y375 H0 Z-99999
    ;G30 P2 X375 Y375 H0 Z-99999
    ;G30 P3 X375 Y15 H0 Z-99999 S
    
    

  • administrators

    @siam said in Adjust Z Axis with 2 independent Z-Motors & Mesh calibrating:

    ok it seems to work ! this means i have to send the g32 command 10 times or more to get a even printbed? or is there a miss configuration on my side ?

    I suspect you are homing the printer between each run, or perhaps in your bed.g file. Don't do that, do several leadscrew correction cycles without homing in between.

    It's common to find that each cycle under-corrects. You can help compensate for this by using the M671 F parameter to force over-correction. Try F2.

    When you know how many cycles you need, you can replicate the sequence of G30 commands in bed.g that number of times.



  • now im a little confused i have changed my bed.g to this:

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Sun Apr 21 2019 14:18:45 GMT+0200 (Mitteleuropäische Sommerzeit)
    
    M561 ; clear any bed transform
    
    G28 ; home
    
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    M401 ; Z-Probe einsetzen (bei Verwendung von bltouch weglassen)
    G30 P0 X10 Y190 Z-99999 ; Sonde in der Nähe einer Leitspindel auf halbem Weg entlang der Y-Achse
    G30 P1 X380 Y190 Z-99999 S2 ; Sonde in der Nähe einer Leitspindel und 2 Motoren kalibrieren
    M402 ; retract probe (bei Verwendung von bltouch weglassen).
    
    
    
    
    ; Probe the bed at 4 points
    ;G30 P0 X15 Y15 H0 Z-99999
    ;G30 P1 X15 Y375 H0 Z-99999
    ;G30 P2 X375 Y375 H0 Z-99999
    ;G30 P3 X375 Y15 H0 Z-99999 S
    
    
    

    with this in the config.g:

    M671 X10:380 Y190:190 S2 F1; Leitspindeln links und rechts von der X-Achse
    

    i get a good result

    22:44:45Leadscrew adjustments made: 0.000 -0.001, points used 2, deviation before 0.001 after 0.000
    22:44:35Leadscrew adjustments made: 0.002 -0.001, points used 2, deviation before 0.002 after 0.000
    22:44:25Leadscrew adjustments made: 0.006 -0.004, points used 2, deviation before 0.005 after 0.000
    22:44:15Leadscrew adjustments made: 0.014 -0.019, points used 2, deviation before 0.016 after 0.000
    22:44:04Leadscrew adjustments made: 0.041 -0.043, points used 2, deviation before 0.042 after 0.000
    22:43:54Leadscrew adjustments made: 0.119 -0.148, points used 2, deviation before 0.134 after 0.000
    22:43:43G32
    Leadscrew adjustments made: 0.008 -0.812, points used 2, deviation before 0.575 after 0.000
    
    

    now i change to m671 F2

    M671 X10:380 Y190:190 S2 F2; Leitspindeln links und rechts von der X-Achse
    

    then i get this result:

    22:47:49Leadscrew adjustments made: -1.003 -0.995, points used 2, deviation before 0.499 after 0.000
    22:47:39Leadscrew adjustments made: 1.003 1.003, points used 2, deviation before 0.501 after 0.000
    22:47:28Leadscrew adjustments made: -0.995 -1.015, points used 2, deviation before 0.503 after 0.000
    22:47:18Leadscrew adjustments made: 0.970 1.033, points used 2, deviation before 0.501 after 0.000
    22:47:08Leadscrew adjustments made: -0.893 -1.097, points used 2, deviation before 0.500 after 0.000
    22:46:57Leadscrew adjustments made: 0.685 1.312, points used 2, deviation before 0.523 after 0.000
    22:46:47G32
    Leadscrew adjustments made: -0.123 -1.952, points used 2, deviation before 0.692 after 0.000
    

    with the multiplier M671 F2 should be more corrected and not less, right?


  • administrators

    In your previous results it looked like it was only doing about 50% of the correction needed, which is why I suggested F2. Now it looks like it's applying almost the right amount when you use F1, and far too much when you use F2. So stick with F1, or try F1.1 or thereabouts.

    You don't need all those M401 and M402 commands.



  • ok i think now i can work with this function

    Thank you for this great Product and the perfect support


Log in to reply