Need help with mesh bed levelling
-
-
the reference point is the point where you probed with bed with g30 during homing.
-
After I do a G29 S1, I have to do a homing with G30 Z-9999?
Thank you,
Pierre -
@medicusdkfz said in Need help with mesh bed levelling:
After I do a G29 S1, I have to do a homing with G30 Z-9999?
no before you do a G29 S1 you need to do a G30
-
Without any parameter?
-
@medicusdkfz said in Need help with mesh bed levelling:
Without any parameter?
G30 by itself is used to set the Z=0 datum.
You first need to move to your XY reference point - I use the center of the bed.
Setting the Z=0 datum needs to be done when creating the height map and when loading the height map.
Frederick
-
I see! I've tried it and it works... I'm very happy! Thank you for your help!!!!!
Pierre
-
@medicusdkfz said in Need help with mesh bed levelling:
I see! I've tried it and it works... I'm very happy! Thank you for your help!!!!!
what firmware version are you running? because if you did not do that, there should have been a warning in the console
-
This post is deleted! -
A happy new year to you all!
Sorry, I still have trouble. In a first attempt it looked good. But yesterday I did a print over the whole bed with a lot of trouble. After homing and qgl, I go to the middle of the bed and do a G30. Then I do a very fine mesh bed levelling with 420 points. Before printing I do again a G30 and activate the mesh with G29 S1. But then I have a bad first layer. When I activate my mesh without printing after a G30 in the middle of the bed, I have inconsistent Z-heights in the paper test. I guess, that I should have at every point inside the mesh coordinates the same heights under the nozzle. But it isn't! Any suggestions?
Thank you very much,
Pierre -
After doing a G30 at the center of the bed have you verified that the Z position is correct?
If you move to Z=0 is the tip of the nozzle touching (or almost touching) the bed?
Frederick
-
Can you show us your gcode commands being executed?
What is in your slicer start gcode and any of the files called from there. homeall.g, bed.g, etc -
I solved my problem... First layer with 0.2mm height...
-
Based on the configuration of Fulg (Voron Discord) - many thanks to you...
config.g:
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; General preferences M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin M575 P1 B57600 S1 ; Comms parameters for PanelDue M564 S1 H1 ; Forbid axis movements when not homed ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M554 P0.0.0.0 ; gateway M553 P255.255.255.0 ; subnet mask M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP (for remote backups) M586 P2 S0 ; disable Telnet ; General setup M669 K1 ; Select CoreXY mode (2.03 and up) M550 PVoron 2.4 350mm^3 ; set printer name ; Drives for XY M569 P0.4 S1 ; A motor (X) M569 P0.5 S0 ; B motor (Y) ; Drives for Z M569 P0.0 S1 ; Front left M569 P0.1 S0 ; Back left M569 P0.2 S1 ; Back right M569 P0.3 S0 ; Front right ; Drive for extruder M569 P1.0 S1 ; physical drive 1.0 goes forwards M572 D0 S0.025 ; pressure advance ; Motor mapping and steps per mm M584 X0.4 Y0.5 Z0.0:0.1:0.2:0.3 E1.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; Use 1/16 microstepping with interpolation everywhere M92 X160 Y160 Z800 ; Set XYZ steps per mm (0.9deg motors) M92 E410 ; Set Extruder steps per mm ; Drive currents M906 X1200 Y1200 Z1200 E600 ; XYZ and E current M906 I30 ; Idle current percentage M84 S120 ; Idle timeout ; Accelerations and speed M98 P"/macros/print_scripts/speed_printing.g" ; Axis travel limits M208 X0 Y1 Z-4 S1 ; set axis minima M208 X346 Y355 Z320 S0 ; set axis maxima ; Endstops M574 X2 S1 P"!io1.in" ; X Hall effect endstop M574 Y2 S1 P"!io2.in" ; Y Hall effect endstop M574 Z0 P"nil" ; no Z endstop ; Z-Probe M558 K0 P8 C"^io4.in" I1 H3 F200 T18000 A5 S0.01 B0 R0.2 ; set Z probe type to switch and the dive height + speeds G31 P1000 X0 Y23.5 Z2.000 ; set Z probe trigger value, inductive probe offset and trigger height (Papiertest, G92 Z0 setzen und anschliessend G30 S-1/G1 Z5 mehrfach wiederholen -> Höhe = Offset M558 K1 P8 C"io3.in" T18000 F60 H2 A10 S0.005 R0.2 G31 K1 P500 X0 Y0 Z-0.489 ; Z switch offset (if positive, greater value = lower nozzle. if negative, more negative = higher nozzle) M671 X-62:-62:407.5:407.5 Y-1:429:429:-1 S20 ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right) M557 X10:340 Y30:320 S33:29 ; Anfahrtpunkte für Sonde!!! define mesh grid (for G29) - überschreibt Grideinstellungen in DOW nach Neustart ; Hotbed (dual thermistor setup) M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Keenovo" ; configure sensor 0 as thermistor on pin temp0 (heater sensor) M308 S2 P"temp2" Y"thermistor" T100000 B3950 A"Heizbett direkt" ; configure sensor 2 as thermistor on pin temp2 M950 H0 C"out0" T2 Q10 ; Heater --> SSD-Steuerung M307 H0 A261.9 C549.2 D0.7 V24.0 B0 ; Heater 0 model: gain 261.9, time constant 549.2, dead time 0.7, max PWM 1.00, calibration voltage 24.0, mode PID M140 P0 H0 ; Map heated bed to heater 0 - Keenovo 220V, 750W M143 H0 P1 T0 A2 S125 C0 ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 115°C. Use Heater monitor 1 for it M143 H0 P2 T0 A1 S130 C0 ; Shut off (A1) bed heater (H0) if pad sensor (T0) exceeds 125°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.9 ; Enable Bang Bang mode and set PWM to 60% to avoid warping ; Hotend M308 S1 P"temp1" Y"thermistor" T500000 B4723 C1.196220e-7 A"Mosquito" ; Thermistor R-Wert eicht die Temp R3950 M950 H1 C"out1" T1 ; Heater M307 H1 A593.7 C180.4 D7.6 V24.0 B0 ; Heater 1 model: gain 593.7, time constant 180.4, dead time 7.6, max PWM 1.00, calibration voltage 24.0, mode PID M143 H1 S350 ; Sets temperature limit for extruder - Mosquito ; DHT22 sensor ;M308 S10 P"0.spi.cs0" Y"dht22" A"Chamber Temp" ; Temperature (connected to cs0 port on the temp daughterboard slot ;M308 S11 P"S10.1" Y"dhthumidity" A"Chamber Hum[%]" ; Humidity ; MCU sensors M308 S3 Y"mcu-temp" A"MCU" M308 S4 Y"drivers" A"Duet Drivers" ; Main fans M950 F0 C"1.out6" Q500 ; Part cooling fan M106 P0 S0 B0.1 H-1 ; Default off; booststart for 0.1s (B0.1); thermostatic control off M950 F1 C"out7" Q500 ; Hotend cooling fan M106 P1 S255 H1 T50 ; Default on; thermistatic control on above 50C ; Aux fans (option to control daughter board fans based on main board temp sensor coming in RRF3.3, for now has to be manual) M950 F2 C"1.out7" Q500 ; Electronics compartment fan 1 M106 P2 S1.0 H-1 ; Default on; thermostatic control off M950 F3 C"1.out8" Q500 ; Electronics compartment fan 2 M106 P3 S1.0 H-1 ; Default on; thermostatic control off M950 F6 C"out8" Q500 ; Noctua exhaust filter fan M106 P6 S0 H-1 ; Default off ; LED-Stripes ;M950 F5 C"out9" Q500 ; LED-Streifen rechts --> derzeit nicht installiert ;M106 P5 S1.0 H-1 ; Default on; thermostatic control off ; Misc M912 P0 S-4 ; MCU temperature calibration (yours will be different) M572 D0 S0.01 ; Pressure Advance M592 D0 A0.015 B0.0012 L0.2 ; Non-linear extrusion M376 H10 ; Fade mesh out compensation over 10mm Z ; Tools M563 P0 D0 H1 F0 ; Define tool 0 using fan 0 for M106 G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C ; DAA tuning (you will need to change this for your slicer) ;M593 F26.6 ; Cura 4.5 stock profile @ 40mm/s outer printing speed M593 F42.5 ; PrusaSlicer @ 40mm/s outer perimeter M80 ; turn on PSU & mains voltage M501 ; load config-override.g T0 ; select tool 0 ; workaround for bug in 3.2beta3, M143 needs to be done after all M950, M307, M140 and M141. https://forum.duet3d.com/topic/19031/m143-issue/25?_=1605986986974 M143 H0 S115 M143 H1 S350
homeall.g:
; homeall.g ; called to home all axes ; Relative positioning G91 ; Lower currents, speed & accel M98 P"/macros/print_scripts/xy_current_low.g" ;M98 P"/macros/print_scripts/z_current_low.g" M98 P"/macros/print_scripts/speed_probing.g" ; Lift Z relative to current position if needed if !move.axes[2].homed G1 Z10 F9000 H1 elif move.axes[2].userPosition < 10 G1 Z10 F9000 ; Coarse home X or Y G1 X600 Y600 F2400 H1 ; Coarse home X G1 X600 H1 ; Coarse home Y G1 Y600 H1 ; Move away from the endstops G1 X-5 Y-5 F9000 ; Fine home X G1 X600 F360 H1 ; Fine home Y G1 Y600 H1 ; Absolute positioning G90 ; Home Z microswitch M98 P"/macros/print_scripts/goto_z_switch.g" G30 K1 Z-9999 if move.axes[2].userPosition < 5 G1 Z5 ; Restore high currents, speed & accel M98 P"/macros/print_scripts/xy_current_high.g" ;M98 P"/macros/print_scripts/z_current_high.g" M98 P"/macros/print_scripts/speed_printing.g"
mesh.g:
; give one last chance to cancel... M291 P"This will replace the existing bed mesh. Are you sure?" R"Bed Mesh" S3 ; Level the gantry so we can park the carriage in the middle of the bed G32 M98 P"/macros/print_scripts/goto_bed_center.g" ; Heat the bed to 100C M291 P"Heating up the bed..." R"Probing New Bed Mesh" T5 M190 S100 ; Set the hotend to 250C M291 P"Heating up the hotend..." R"Bed Mesh" T5 G10 P0 S250 M116 ; Level the gantry again while everything is hot M291 P"QGL while everything is hot..." R"Bed Mesh" T5 G32 ; ignore current heightmap M561 ; Establish final Z ref M291 P"Final Z ref..." R"Bed Mesh" T5 M98 P"/macros/print_scripts/do_nozzle_wipe.g" M98 P"/macros/print_scripts/do_nozzle_wipe.g" G28 Z ; Get the reference Z offset M291 P"Get reference Z offset..." R"Bed Mesh" T5 M98 P"/macros/print_scripts/goto_bed_center.g" if move.axes[2].userPosition < 5 G1 Z5 G30 K0 S-1 G1 Z5 G30 K0 S-1 G1 Z5 G30 K0 S-1 G1 Z5 G30 K0 S-3 G1 Z5 ; Probe a new bed mesh! M291 P"Probing now!" R"Bed Mesh" T5 M557 X10:340 Y30:320 S41.25:36.25; 81 Anfahrtpunkte für Sonde!!! define mesh grid (for G29) - überschreibt Grideinstellungen in DOW nach Neustart G29 S0 ; Done, move to center and turn off heat M98 P"/macros/print_scripts/goto_bed_center.g" if move.axes[2].userPosition < 5 G1 Z5 G10 P0 S0 M140 S0 M291 P"Done!" R"Bed Mesh" T5
bed_probe_points.g:
;###### Pierre ###### ;G30 K0 P0 X10 Y26 Z-99999; probe near front left belt ;G30 K0 P1 X10 Y315 Z-99999; probe near back left belt ;G30 K0 P2 X340 Y315 Z-99999; probe near back right belt ;G30 K0 P3 X340 Y26 Z-99999 S4; probe near front right belt ;#################### ;####### fulg ####### G30 K0 P0 X340 Y315 Z-99999 G30 K0 P1 X340 Y26 Z-99999 G30 K0 P2 X10 Y26 Z-99999 G30 K0 P3 X10 Y315 Z-99999 S4 ;####################
bed.g:
; bed.g ; Called to align the gantry to the bed plane via G32 ; Clear any bed transform M561 ; Turn off noisy Extruder motor M84 E ; Home all axes G28 ; Lower currents, speed & accel M98 P"/macros/print_scripts/speed_probing.g" ;M98 P"/macros/print_scripts/z_current_low.g" M98 P"/macros/print_scripts/xy_current_low.g" ; Probe the bed at 4 points, x3 for more precision M558 K0 H5 F240 ; reduce depth range, probe slower for better repeatability M98 P"/sys/bed_probe_points.g" M558 K0 H4 F240 ; reduce depth range, probe slower for better repeatability M98 P"/sys/bed_probe_points.g" while true if iterations = 5 abort "Too many auto calibration attempts" M558 K0 H1 F60 ; reduce depth range, probe slower for better repeatability M98 P"/sys/bed_probe_points.g" if result != 0 continue if move.calibration.initial.deviation <= 0.005 break ; If there were too many errors or the deviation is too high - abort and notify user echo "Repeating calibration because deviation is too high (" ^ move.calibration.initial.deviation ^ "mm)" echo "Auto calibration successful, deviation", move.calibration.initial.deviation ^ "mm" ; Restore high currents, speed & accel M98 P"/macros/print_scripts/speed_printing.g" M98 P"/macros/print_scripts/xy_current_high.g" ;M98 P"/macros/print_scripts/z_current_high.g" if move.axes[2].userPosition < 5 G1 Z5 G28 Z
-
Is it possible to define the number of probing attempts with the inductive probe while mesh bed leveling or a G30 at the probing point to increase the accuracy? Sometimes the first value is bad. But 3 or 4 are better...
-
@medicusdkfz said in Need help with mesh bed levelling:
Is it possible to define the number of probing attempts with the inductive probe while mesh bed leveling or a G30 at the probing point to increase the accuracy? Sometimes the first value is bad. But 3 or 4 are better...
yes
https://duet3d.dozuki.com/Wiki/Gcode#Section_M558_Set_Z_probe_type
the A parameter.but you already have it at 5
you could also try reducing the F parameter
-
@medicusdkfz said in Need help with mesh bed levelling:
Is it possible to define the number of probing attempts with the inductive probe while mesh bed leveling or a G30 at the probing point to increase the accuracy? Sometimes the first value is bad. But 3 or 4 are better...
You can force the averaging of a fixed number of readings by setting the M558 S parameter to -1 and setting the A parameter to the desired number of readings - see the M558 command docs.
Frederick
-
Thank you for your help!
-
@Veti When do I need a G30 and when a G30 S-2 with mesh bed levelling? My first probe is a Z microswitch at the Voron 2.4. This is my reference also for temperature issues with the inductive probe. After homing and levelling the quad gantry, I want to do my mesh. At the process of creating a mesh I have to do what, before I perform a G29 S0?
At the process of using an existing mesh I have to do what, before I perform a G29 S0?
Today I had the warning again with the z datum...
-
@medicusdkfz said in Need help with mesh bed levelling:
G30 S-2
you only need that if you are calibrating your probe initially
G29 S0 is the same as G29
you load an existing mesh with G29 S1
Today I had the warning again with the z datum...
you need to run a G30 (normally part of the homing) before executing G29 S1