Home Z before Homing Z?
got my shiny new duet wifi board and fitted it to my printer, everything has been going well. heaters work, bed works. steppers jog, bltouch works etc etc X and Y both home correctly and bump the endstops nicely, but, i cant home Z or Home All. If i send G92 Z100 and then send G30 the Z axis moves down and probes the bed and sets the correct offset as per the config. i just cant get the G28 commands to work.
Details: CoreXZ, BlTouch, v1.20 firmware, ATX ps_on
Error messages: G28 Z "Must home these axes: Z before homing these: Z"
G28 "Push(): stack overflow"
Being a Duet Newbie ive probably got something out order or missing, been running Marlin for last 3 years decided its time to get with the times. Im in love with the duet ecosystem, such a pleasure to use! Quality of the Duet board is excellent. leaps and bounds coming from a ramps setup.
Heres my setup:
; Configuration file for Duet WiFi (firmware version 1.20 or newer) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool on Mon Feb 19 2018 19:56:04 GMT+1100 (AEDT) ; 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 M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Configure automatic saving on power loss M667 S2 Z3 ; Select CoreXZ mode, Scaled Z by 3 ; Drives M569 P0 S0 ; Drive 0 goes forwards X M569 P1 S0 ; Drive 1 goes forwards Z M569 P2 S1 ; Drive 2 goes backwards Y M569 P3 S1 ; Drive 3 goes forwards M569 P4 S0 ; Drive 4 goes backwards M584 X0 Y2 Z1 E3:4 ; Apply custom drive mapping M350 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation M92 X100 Y100 Z100 E469:469 ; Set steps per mm M566 X900 Y900 Z12 E120:120 ; Set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z1800 E2700:2700 ; Set maximum speeds (mm/min) M201 X1000 Y1000 Z100 E200:200 ; Set accelerations (mm/s^2) M906 X855 Y1000 Z855 E1200:1200 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-9 Y0 Z0 S1 ; Set axis minimum M208 X260 Y250 Z270 S0 ; Set axis maximum ; Endstops and Bltouch M574 X1 Y1 S0 ; Set active low endstops M574 Z1 S2 ; Set endstops controlled by probe M307 H3 A-1 C-1 D-1 ; use heater 3 as pwm out M558 P5 X0 Y0 Z1 H5 F100 T2000 ; Set Z probe type to switch and the dive height + speeds G31 X0 Y-25 Z0.88 P5 ; Set Z probe trigger value, offset and trigger height M557 X5:255 Y5:245 S25 ; Define mesh grid ; Heaters M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning) M305 P0 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 0 M143 H0 S140 ; Set temperature limit for heater 0 to 140C M301 H0 S1.00 P27.12 I1.81 D101.3 T0.4 W180 B30 ;Set Hotend PID parameters M305 P1 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 1 M143 H1 S280 ; Set temperature limit for heater 1 to 280C ; 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 M563 P1 D1 H1 ; 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 ; Network M550 PGavatron3000 ; Set machine name M552 S1 ; Enable network M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Fans M106 P0 S1 I0 F500 H1 T50 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P1 S1 I1 F500 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P2 S1 I0 F500 H-1 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off ; Custom settings are not configured ; Miscellaneous T0 ; Select first tool
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool on Mon Feb 19 2018 19:56:04 GMT+1100 (AEDT) G91 ; relative positioning G1 Z5 ; move Z up to clear bed G90 ; Absolute positioning G1 X130 Y150 F3000; Z safe homing G30 G1 Z4 F1800 ; go back a few mm G30 G1 Z4 F1000 ; lift Z relative to current position
That's a confusing error message! What I think it means is that trying to home Z didn't work. I'll see if I can reproduce it.
Are you using firmware 1.21RC3 by any chance? If so then your G1 Z5 command in homez.g must be changed to G1 S2 Z5.
Please post your homeall.g file too.
i had a laugh when it popped up lol
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool on Mon Feb 19 2018 19:56:04 GMT+1100 (AEDT) ;home all axis in order G28 X Y M98 PHomez.g
i just changed my homeall.g to the above code, it homes x and y then moves to middle of bed then says : G30 insufficient axes homed
if i change my homez.g to this:
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool on Mon Feb 19 2018 19:56:04 GMT+1100 (AEDT) G91 ; relative positioning G1 Z5 ; move Z up to clear bed G90 ; Absolute positioning G1 X130 Y150 F3000; Z safe homing G92 Z270 G30 G1 Z4 F1800 ; go back a few mm G30 G1 Z4 F1000 ; lift Z relative to current position
i can get it to work for G28, but errors still popup saying homing failed, button turns blue on Web interface though. still fails on G28 Z
Homeall.g should not have a G28 in it; but you can call the homex.g and homey.g files like this if you wish:
I expect the recursive nature of G28 on your machine accounts for the confusing error message too. It certainly accounts for the stack overflow!
yep no worries, oversight by me, so ive changed that. homeall overflow error is gone, so now
homeall works if i include G92 Z270 before G30
home z gives same error regardless, home z first before z
not a CoreXZ issue hopefully
When you get the error message, are you trying to home Z when X and Y have already been homed, or when X and Y are not homed?
X and Y are already homed
I'm sorry, I have only just realised that you are using a CoreXZ architecture. I think you may be the first to use CoreXZ on a Duet!
The current code assumes that on a CoreXZ machine, a Z endstop switch is used, because it requires all of X, Y and Z axes to be homed before bed probing. But I can't think of a good reason for that, so in firmware 1.21RC4 I'll change it to requires only X and Y to be homed before bed probing (as for most other architectures). Meanwhile I suggest you use the G92 workaround.
ahhh ok no problems ill wait eagerly for that firmware, cheers David