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

    How to level the gantry on Voron2

    Scheduled Pinned Locked Moved
    Using Duet Controllers
    4
    8
    420
    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.
    • CanDo415undefined
      CanDo415
      last edited by

      I feel compleatly stupid.
      How do i level the gantry on the Voron2?

      ;; system and network ----------------------------------------------------------------------------------
      M111 S0                 ; Debug off
      M550 PVoron				; Machine name and Netbios name (can be anything you like)
      M551 Preprap            ; Machine password (used for FTP)
      
      M552 S1			        ; start network module (must have been configured first with M587)
      M586 P2 S1 T0	        ; enable telnet
      M586 P1 S1 T0	        ; enable ftp
      
      M555 P2					; Set output to look like Marlin
      G21						; Work in millimetres
      G90						; Send absolute coordinates...
      M83						; ...but relative extruder moves
      
      ; Display ----------------------------------------------------------------------------------------------
      M575 P1 S1 B57600   ; activate paneldue
      
      ;; geometry --------------------------------------------------------------------------------------------
      M667 S1                     ; corexy mode
      M208 X0 Y0 Z0 S1.   	    ; S1 = set axes minima
      M208 X330 Y357 Z330 S0  	; S0 = set axes maxima
      
      
      ; drives -----------------------------------------------------------------------------------------------
      ;   A		B
      ;| 0.4 | | 0.5 |
      ;   ----+----   Z-Drives
      ;   | 3 | 2 |
      ;   ----+----
      ;   | 0 | 1 |
      ;   ----+----
      ;     Front
      
      M569 P1.0 S0  D3     									; X motor direction
      M569 P1.1 S0  D3    									; Y motor direction
      M569 P0.0 S1  D3    									; Z0 motor direction
      M569 P0.1 S0  D3    									; Z1 motor direction
      M569 P0.2 S1  D3    									; Z2 motor direction
      M569 P0.3 S0  D3    									; Z3 motor direction
      M569 P0.4 S1      									; E0 motor direction	prefeed on colorselector
      M569 P0.5 S0      									; E1 motor direction	hotend
      M569 P1.2 S0      									; U motor direction	colorselector
      
      M584 X1.0 Y1.1 Z0.0:0.1:0.2:0.3 E0.4:0.5 U1.2		; motor bindings
      M84 S3600                			          		; motor idle timeout
      M350 X16 Y16 Z16 E16 U16 I1         		    	; set microstepping
      M92 X80 Y80 Z400 E426 U400          				; set microsteps per mm
      M566 X5000 Y5000 Z1000 E1000 U1000			        ; instantaneous speed change / jerk (mm/min)
      M203 X21000 Y21000 Z8000 E400 U1500      			; maximum speed (mm/min)
      M201 X1500 Y1500 Z300 E500  U1500 					; maximum acceleration (mm/s²)
      M906 X1100 Y1100 Z900 E900 U300 I30					; motor drive current
      M84 S30												; Set idle timeout
      
      
      endstops------------------------------------------------------------------------------------------------
      M574 X1 S1 P"io2.in"   ; X min active low endstop switch IO1
      M574 Y2 S1 P"io1.in"   ; Y min active low endstop switch IO2
      M574 Z1 S1 P"io4.in"   ; Z min active low endstop switch IO3
      
      ;Filamentsensor----------------------------------------------------------------------------------------+
      ;M591 D1 P7 C"e1_stop" L3.3 R60:140 E7 A1 S1		; Pulse-type filament monitor on pin e1stop, enabled, sensitivity 3.3mm/pulse, allowed movement 90% to 130%, check every 7.0mm 
      
      ; Bed leveling params ----------------------------------------------------------------------------------
      ; define the z-probe, unsure, might not been needed
      ;M558 P5 C"zprobe.in" I1 A5 H1.45 R0.1 F65 T7000 A5 S0.01 B1
      M950 S0 C"io7.out"                              ; create servo pin 0 for BLTouch
      M558 P9 C"io7.in" H5 F120 T6000                 ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X0 Y25 Z2.042                   ; set Z probe trigger value, offset and trigger height
      M671 X-46:-46:345:345 Y9:368:368:9 S20	        ; Z leadscrews positions								+++++++++++++++++++++++++++++++++++++++++++++++++++
      M557 X50:330 Y50:330 S270                        ; Bed mesh grid
      
      ; thermal section --------------------------------------------------------------------------------------
      ; M308 S3 Y"mcu-temp" A"Board" ; Board thermal sensor
      ; M912 P0 S-8                  ; MCU tempurature sensor correction (subtract 8°K)
      
      ;Bed heater single thermistor setup, not used
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed Pad"  ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"Out0" T0                                      ; create bed heater output on out0 and map it to sensor 0
      M143 H0 S120                                               ; set temperature limit for heater 0 to 120C
      M307 H0 B0 S0.6                                            ; disable bang-bang mode for the bed heater and set PWM limit
      M140 P0 H0                                                 ; Mark heater h0 as bed heater (for DWC)
      
      ;Bed heater dual thermistor setup ----------------------------------------------------------------------
      ;M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 A"Bed Pad"   ; configure sensor 0 as thermistor on pin bedtemp (pad sensor)
      ;M308 S2 P"e1temp" Y"thermistor" T100000 B3950 A"Bed Plate"  ; configure sensor 2 as thermistor on pin e1temp (plate sensor)
      ;M950 H0 C"bedheat" T2 Q10                                   ; create bed heater output on out0 and map it to sensor 2 (plate sensor). Set PWM frequency to 10Hz
      ;M140 P0 H0                                                  ; Mark heater H0 as bed heater (for DWC)
      ;M143 H0 P1 T0 A2 S115 C0                                    ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 110°C. Use Heater monitor 1 for it
      ;M143 H0 P2 T0 A1 S125 C0                                    ; Shut off (A1) bed heater (H0) if pad sensor (T0) exceeds 120°C. Use Heater monitor 2 for it
      ;M143 H0 S120                                                ; Set bed heater max temperature to 120°C, use implict monitor 0 which is implicitly configured for heater fault
      ;M307 H0 B1 S0.6                                             ; Enable Bang Bang mode and set PWM to 60% to avoid warping
      
      
      ;HotEnd ------------------------------------------------------------------------------------------------
      ;M308 S1 P"e0temp" Y"thermistor" T100000 B4685 C6.5338987554e-08 A"Hotend"
      M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.060000e-8 A"Hotend" 	; configure sensor 1 as thermistor (ATC Semitec 104GT2)
      M950 H1 C"Out1" T1                                                 		; create nozzle heater output on e0heat and map it to sensor 1
      M143 H1 S300                                                         	; set temperature limit for heater 1 to 300°C
      M307 H1 B0 R3.482 C197.7 D6.33 S0.60 V24.1
      
      ;Chamber sensor (DHT22) --------------------------------------------------------------------------------
      ;M308 S7 P"spi.cs6" Y"dht22"    A"Chamber Temp"          ; define DHT22 temperature sensor
      ;M308 S8 P"S7.1" Y"dhthumidity" A"Chamber Hum[%]"        ; Attach DHT22 humidity sensor to secondary output of temperature senso
      
      ; fans -------------------------------------------------------------------------------------------------
      ; part cooler OUT 7
      M950 F0 C"out7" Q500            ; part cooler, set to 20Hz PWM
      M106 P0 T60 H1 C"HotEnd"       	; Name it "PartCooler"
      
      ;Hot End OUT 8
      M950 F1 C"out8" Q20             ; hotend fan, set to 20Hz PWM
      M106 P1 C"Part"        ; attach hotend fan to heater 1 and set activation temperature to 60°C
      ;M106 P1 T60 H1 C"ToolFan"      ; attach hotend fan to heater 1 and set activation temperature to 60°C
      
      ; controller / electronics fan OUT 4:5:6
      ;M950 F2 C"out4" Q500            ; electronics compartment fan on duex, set to 20Hz PWM
      ;M106 P2 H4 T45:50 ;C"ElectronicsFan1" ; fan is activated when MCU reports 35°C; runs on full speed from 50°C on
      ;M950 F3 C"out5" Q500            ; electronics compartment fan on duex, set to 20Hz PWM
      ;M106 P3 H4 T45:50 ;C"ElectronicsFan2"
      ;M950 F4 C"out6" Q500            ; electronics compartment fan on duex, set to 20Hz PWM
      ;M106 P4 H4 T45:50 ;C"ElectronicsFan3"
      
      ; chamber Fan
      ; M950 F3 C"duex.fan4" Q20          ; chamber fan on duex, set to 20Hz PWM
      ; M106 P3 T40:45 H7 C"ChamberFan"   ; Chamberfan is activated when chamber thermistor reached 40°C; runs on full speed from 45°C on
      
      
      ; tools ------------------------------------------------------------------------------------------------
      M563 P0 S"White" D0:1 H1 F0:1                           ; 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
      M568 P0 S1                                              ; enable mixing for tool 0
      M567 P0 E0.5:0.5                                        ; set mixing ratios for tool 0
      
      M563 P1 S"Zusatz 1" D1:0 H1 F0:1                        ; define tool 1
      G10 P1 X0 Y0 Z0                                         ; set tool 1 axis offsets
      G10 P1 R0 S0                                            ; set initial tool 1 active and standby temperatures to 0C
      M568 P1 S1                                              ; enable mixing for tool 1
      M567 P1 E0.5:0.5                                        ; set mixing ratios for tool 1
      
      M563 P2 S"Zusatz 2" D1:0 H1 F0:1                        ; define tool 2
      G10 P2 X0 Y0 Z0                                         ; set tool 2 axis offsets
      G10 P2 R0 S0                                            ; set initial tool 2 active and standby temperatures to 0C
      M568 P2 S1                                              ; enable mixing for tool 2
      M567 P2 E0.5:0.5                                        ; set mixing ratios for tool 2
      
      M563 P3 S"Magneta" D0:1 H1 F0:1                         ; define tool 3
      G10 P3 X0 Y0 Z0                                         ; set tool 3 axis offsets
      G10 P3 R0 S0                                            ; set initial tool 3 active and standby temperatures to 0C
      M568 P3 S1                                              ; enable mixing for tool 3
      M567 P3 E0.5:0.5                                        ; set mixing ratios for tool 3
      
      M563 P4 S"Cyan" D1:0 H1 F0:1                            ; define tool 4
      G10 P4 X0 Y0 Z0                                         ; set tool 4 axis offsets
      G10 P4 R0 S0                                            ; set initial tool 4 active and standby temperatures to 0C
      M568 P4 S1                                              ; enable mixing for tool 4
      M567 P4 E0.5:0.5                                        ; set mixing ratios for tool 4
      
      M563 P5 S"Yellow" D0:1 H1 F0:1                          ; define tool 5
      G10 P5 X0 Y0 Z0                                         ; set tool 5 axis offsets
      G10 P5 R0 S0                                            ; set initial tool 5 active and standby temperatures to 0C
      M568 P5 S1                                              ; enable mixing for tool 5
      M567 P5 E0.5:0.5                                        ; set mixing ratios for tool 5
      
      M563 P6 S"Black" D0:1 H1 F0:1                           ; define tool 6
      G10 P6 X0 Y0 Z0                                         ; set tool 6 axis offsets
      G10 P6 R0 S0                                            ; set initial tool 6 active and standby temperatures to 0C
      M568 P6 S1                                              ; enable mixing for tool 6
      M567 P6 E0.5:0.5                                        ; set mixing ratios for tool 6
      
      M563 P7 S"Direct only" D0:1 H1		                    ; define tool 7
      G10 P7 X0 Y0 Z0                                         ; set tool 7 axis offsets
      G10 P7 R0 S0                                            ; set initial tool 7 active and standby temperatures to 0C
      M568 P7 S1                                              ; enable mixing for tool 7
      M567 P7 E0:0.5                                        	; set mixing ratios for tool 7
      
      ;MISC --------------------------------------------------------------------------------------------------
      T0                  ; activate tool 0
      
      ;LED
      M150 X0 ;Dotstar LED strip
      
      ; read config-override.g
      ;M501
      
      ;; firmware retraction ---------------------------------------------------------------------------------
      ;; Choose one as your default:
      ;M98 P"/macros/retraction/quiet_nozhop.g
      ;M98 P"/macros/retraction/quiet_zhop.g
      ;M98 P"/macros/retraction/pa_nozhop.g"
      ;M98 P"/macros/retraction/pa_zhop.g"
      
      
      A Former User? zaptaundefined 2 Replies Last reply Reply Quote 0
      • A Former User?
        A Former User @CanDo415
        last edited by A Former User

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • zaptaundefined
          zapta @CanDo415
          last edited by

          @cando415 , you can see an example in this github repository https://github.com/ocgeek/Duet-Mini5-Backup , this is also what I used as a starting point.

          They use iterations, either a fixed number of iterations (I do 3) or until the deviation is blow some threshold.

          Check that macros directory for a QGL macro.

          1 Reply Last reply Reply Quote 0
          • CanDo415undefined
            CanDo415
            last edited by

            Holy shit. Not as easy as mentioned.
            still working on it.

            zaptaundefined 1 Reply Last reply Reply Quote 0
            • zaptaundefined
              zapta @CanDo415
              last edited by zapta

              @cando415, if it helps, my script for V2.4/250 looks like the one below (it's still in flux and I cleaned it before posting here so take with a grain of salt). It always does three iterations and uses the stowaway style 'clicky' probe.

              $ cat QGL
              if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
                  echo "Can't QGL: Not XYZ homed."
                  abort
              
              M98 P"/macros/clicky_pick"
              
              echo "Starting mag probe QGL"
              M561  ; Disable mesh compensation.
              echo "Bed transformation cleared"
              
              ; Move fast near first point
              G1 X32 Y11 Z30
              
              ; Lower currents, speed & accel
              M98 P"/macros/speed_probing"
              M98 P"/macros/z_current_low"            ; reduce current to limit potential damages
              
              ; Pass 1
              echo "Doing 1st pass. Old deviation was: " ^ move.calibration.initial.deviation
              
              M558 K0 H10 F3000 ; increase the depth range, gets the gantry mostly level immediately
              
              M98 P"/sys/bed_probe_points.g"
              
              ; Pass 2
              echo "Doing 2nd pass. Current deviation: " ^ move.calibration.initial.deviation
              ; NOTE: speed subject to Z speed limit set by /macros/speed_probing.
              M558 K0 H4 F600                                         ; reduce depth range, probe slower for better repeatability
              M98 P"/sys/bed_probe_points.g"
              echo "Current deviation: " ^ move.calibration.initial.deviation
              
              ; Pass 3
              echo "Doing 3rd pass. Current deviation: " ^ move.calibration.initial.deviation
              ; NOTE: speed subject to Z speed limit set by /macros/speed_probing.
              M558 K0 H2 F300                                         ; reduce depth range, probe slower for better repeatability
              M98 P"/sys/bed_probe_points.g"
              echo "Current deviation: " ^ move.calibration.initial.deviation
              
              ; Restore (?)
              M558 K0 H5 F600
              
              M98 P"/macros/z_current_high"
              M98 P"/macros/speed_printing"
              
              G1 Z30
              M98 P"/macros/clicky_drop"
              
              1 Reply Last reply Reply Quote 1
              • CanDo415undefined
                CanDo415
                last edited by

                The Gantry is lowering between P1-P4 while moving to P2-P4. Moving to P0 works fine.
                I remember i read this somewere in the forum, but didn't find it anymore.

                ; bed.g
                G28 XY
                G90
                G30 P0 X0 Y34 Z-99999 
                G30 P1 X330 Y34 Z-99999 
                G30 P2 X330 Y330 Z-99999 
                G30 P3 X0 Y330 Z-99999 S4 
                
                Phaedruxundefined 1 Reply Last reply Reply Quote 0
                • Phaedruxundefined
                  Phaedrux Moderator @CanDo415
                  last edited by

                  @cando415 I'm not sure what you mean in your last post.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  CanDo415undefined 1 Reply Last reply Reply Quote 0
                  • CanDo415undefined
                    CanDo415 @Phaedrux
                    last edited by CanDo415

                    @phaedrux
                    While treveling from Probepoint 1 to P2 (or P2-> P3 or P3->P4) Z moves down simultaniusly.

                    now I use

                    ; bed.g
                    M150 R145 U40 B0 Y1 S1 F0
                    G28 XY
                    G1 	 	X10 y10 Z5 F30000
                    G30 P0  X10 Y40 Z-99999
                    G1 	   X325 y10 Z5 F30000
                    G30 P1 X325 Y40 Z-99999 
                    G1 		X325 y300 Z5 F30000
                    G30 P2 	X325 Y330 Z-99999 
                    G1 	   X10 y300 Z5 F30000
                    G30 P3 X10 Y330 Z-99999 S4 
                    M150 R0 U255 B0 Y1 S1 F0
                    

                    it works better, but not as supposed in the tutorials

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