Duet 3 mini 5+, First layer is not correct
-
I am in the process of building a modified Voron 2.4 setup with a duet 3 mini 5+ wifi.
Current setup: Duet 3 mini 5+, Duet 1lc v1.2, 4x z motor setup, one microswitch z sensor for homing, and one z microswitch probe sensor for bed leveling. Firmware version: 3.3.10
The initial setup seems to work correctly until I start a print. I can home, perform a G32, and set the print head to the center of the bed at Z=0 and a piece of paper barely fits underneath the extruder tip. I begin a print, everything heats like it should and it starts printing 3mm above the bed, even though the height on the display shows it at .2mm.
I thought it was the G31 command that was set in the config.g file was off, so used the following to verify that the heights are correct: https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_testing
Ran this for the z homing and probe to verify the height of each and update the configuration.Verified the starting Gcode didn't modify anything(pasted below).
I am at a loss.
Config:
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jan 22 2022 16:53:33 GMT-0700 (Mountain Standard Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Zoey's the Best" ; set printer name M669 K1 ; select CoreXY mode ; Wait a moment for the CAN expansion boards to start G4 S2 ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives for Z M569 P0.0 S0 D3 ; physical drive 0.0 goes backwards M569 P0.1 S1 D3 ; physical drive 0.1 goes forwards M569 P0.2 S0 D3 ; physical drive 0.2 goes backwards M569 P0.3 S1 D3 ; physical drive 0.3 goes forwards ; Drives for xy M569 P0.5 S1 D3 ; physical drive 0.2 goes forwards M569 P0.6 S1 D3 ; physical drive 0.2 goes forwards ;Drive for Extruder M569 P121.0 S0 ; physical drive 121.0 goes forwards M584 E121.0 ; set drive mapping M584 X0.5 Y0.6 Z0.0:0.1:0.2:0.3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X160 Y160 Z400.00 E428 ; set steps per mm M566 X900.00 Y900.00 Z30.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X36000.00 Y36000.00 Z2000.00 E1200.00 ; set maximum speeds (mm/min) M201 X1500.00 Y1500.00 Z350.00 E250.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z1200 E600 I60 ; set motor currents (mA) and motor idle factor in per cent M84 S10 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X289 Y289 Z200 S0 ; set axis maxima ; Endstops M574 X2 S1 P"^io6.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin ^io6.in M574 Y2 S1 P"^io5.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ^io5.in ;M574 Z1 S1 P"^io4.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin ^io4.in ; Z microswitch M558 K1 P8 C"io4.in" I1 H2 F350:60 T18000 A10 S0.01 R0.2 ; set Z probe type to switch and the dive height + speeds G31 K1 P500 X0 Y0 Z-1.09 ; set Z probe trigger value, offset and trigger height -1.8 ; Z-Probe ;M558 K0 P8 C"121.io1.in" I1 H5 F350:120 T18000 A5 S0.02 R0.2 ; set Z probe type to switch and the dive height + speeds, For the removed z probe ;M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M558 K0 P8 C"^121.io1.in" I1 H4 F150:80 T18000 A5 S0.02 ; set Z probe type to switch and the dive height + speeds G31 K0 P500 X0 Y25 Z5.492 ; set Z probe trigger value, offset and trigger height M671 X354:354:-53:-53 Y0:370:370:0 S20 ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right) M557 X15:285 Y25:275 S40 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out1" T0 ; create bed heater output on out1 and map it to sensor 0 ;M307 H0 R0.799 C380.0 D4.51 S0.60 V24.0 ; enable bang-bang mode for the bed heater and set PWM limit M307 H0 R0.651 K0.288:0.000 D3.85 E1.35 S0.60 B0 M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"121.temp0" Y"pt1000" ; configure sensor 1 as PT1000 on pin 121.temp0 M950 H1 C"121.out0" T1 ; create nozzle heater output on 121.out0 and map it to sensor 1 M307 H1 B0 R2.961 C302.9:188.1 D9.32 S1.00 V23.8 ;M307 H1 B0 R4.403 C286.7:156.8 D11.34 S1.00 ;default settings ;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"121.out2" Q250 ; create fan 0 on pin 121.out1 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"121.out1" Q3 ; This is the hotend fan: create fan 1 on pin 121.out2 and set its frequency M106 P1 S.5 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 S"E3D" D0 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 ; Custom settings M671 X-55:-55:350:350 Y-15:375:375:-15 ;Setting Global Variables M98 P"/macros/Startup/Set_Global.g"
Starting Gcode:
if !exists(global.FirstBedTemp) || global.FirstBedTemp=null global FirstBedTemp = [first_layer_bed_temperature] else set global.FirstBedTemp = [first_layer_bed_temperature] if !exists(global.FirstExtTemp) || global.FirstExtTemp=null global FirstExtTemp = [first_layer_temperature] else set global.FirstExtTemp = [first_layer_temperature] M98 P"0:/macros/Print/Print_start"
Print Start Macro:
; Clear mesh settings M561 ; Clear PA M572 D0 S0 ;Start Extruder Heating M104 S{global.FirstExtTemp} ; Start heating the bed M140 S{global.FirstBedTemp} ; Home if needed M98 P"0:/macros/Home/Home_xy" M98 P"0:/macros/Home/Home_z" ; Wait until the bed is hot M190 S{global.FirstBedTemp} ; Perform QGL and prime nozzle. G32 M98 P"0:/macros/Bed_Center_Point.g" ; Load Mesh Map G29 S1
-
@casperen said in Duet 3 mini 5+, First layer is not correct:
M98 P"0:/macros/Home/Home_xy"
M98 P"0:/macros/Home/Home_z"
M98 P"0:/macros/Bed_Center_Point.g"In your print_start macro, what are in these macros? And what does your bed mesh look like?
You are also running G32 (bed levelling with bed.g) after you have homed Z. Usually you'd home Z after doing this.
Ian
-
@droftarts The initial zprobe is to determine the initial height of the bed for the dive height of the probe. When this was not done, the probing would error out if the print head was higher than the value set on M558.
Here are the other macros:
Bed_center_point:
g1 x135 y145 z15 f20000
Home_xy:
; Home, but only if homing is needed if !move.axes[0].homed || !move.axes[1].homed G28 XY
Home_z:
; Home, but only if homing is needed if !move.axes[2].homed G28 Z
Bed.G:
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jan 22 2022 16:53:33 GMT-0700 (Mountain Standard Time) M561 ; clear any bed transform ;G29 ; probe the bed and enable compensation ; Home, but only if homing is needed if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed G28 M98 p"/macros/newKlicky/loadClicky.g" M98 P"/macros/Home/z_current_low.g" while true if iterations = 8 abort "Too many auto calibration attempts" G30 K0 P0 X30 Y25 Z-99999 ; probe near front left belt if result != 0 continue G30 K0 P1 X30 Y250 Z-99999 ; probe near back left belt if result != 0 continue G30 K0 P2 X250 Y250 Z-99999 ; probe near back right belt if result != 0 continue G30 K0 P3 X250 Y25 Z-99999 S4 ; probe near front right belt if result != 0 continue if move.calibration.initial.deviation <= 0.04 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)" ; end loop echo "Auto calibration successful, deviation", move.calibration.initial.deviation ^ "mm" M98 P"/macros/Home/z_current_high.g" M98 p"/macros/newKlicky/unloadClicky.g" G28
-
-
-
Finally figured it out, had an issue with it loading an old height map.
Found the issue by using the M114 command:
M114
X:255.000 Y:240.000 Z:10.710 E:0.000 E0:47.7 Count 79200 2400 4200 Machine 255.000 240.000 10.710 Bed comp -0.210The Bed comp was set to 2.5mm, reran the bed mesh and it seems to have fixed the issue.