How to level the gantry on Voron2
-
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"
-
This post is deleted! -
@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.
-
Holy shit. Not as easy as mentioned.
still working on it. -
@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"
-
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
-
@cando415 I'm not sure what you mean in your last post.
-
@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