DuetWifi 1.01 Updated to 1.24 - No Z Axis after update



  • Hello,

    I recently updated my DuetWifi 1.01 to the 1.24 firmware version. (edit: I believe it was 1.17 or 1.18 before update, so BIG jump in version)

    I haven't made any changes to my wiring at all, but now my z-axis isn't working. I can't home it or move it. X, Y and EXT motors all function fine as does the heater control and bed temp control.

    G28 works for X and Y axes. When I send the command to home the Z axis I get this error:

    G28 Z Error: G0/G1: insufficient axes homed

    Here is my config.g

    M111 S0                                 ; Debug off
    M550 OldYeller                ; Machine name and Netbios name (can be anything you like)
    M551 Preprap                            ; Machine password (used for FTP)
    ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED     ; MAC Address
    ;*** Wifi Networking
    M552 S1                    ; Enable WiFi. Disabled for setup and testing. Enable once set up on your network.
    
    M555 P2                               ; Set output to look like Marlin
    M575 P1 B57600 S1            ; Comms parameters for PanelDue
    
    G21                                     ; Work in millimetres
    G90                                    ; Send absolute coordinates...
    M83                                     ; ...but relative extruder moves
    
    ; Axis and motor configuration
    M569 P0 S0                          ; Drive 0 (x motor) goes reverse
    M569 P1 S0                          ; Drive 1 (y motor) goes reverse
    M569 P2 S0                          ; Drive 2 (z motor) goes reverse
    M569 P3 S0                          ; Drive 3 (ext motor) goes reverse
    
    M350 X16 Y16 Z16 E16 I1             ; set 16x microstepping with interpolation
    M574 X1 Y1 Z0 S1                    ; set homing switch configuration (x and y switches, at low end, active high)
    M906 X800 Y800 Z800 E800            ; Set motor currents (mA)
    M201 X1000 Y1000 Z1000 E100         ; Accelerations (mm/s^2)
    M203 X3000 Y3000 Z3000 E600         ; Maximum speeds (mm/min)
    M566 X1000 Y1000 Z1000 E50          ; Maximum jerk speeds mm/minute
    M208 X203 Y203 Z240                 ; set axis max and high homing switch positions (adjust to suit your machine)
    M208 X-0 Y0 Z0 S1                   ; set axis min and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
    M92 X80 Y80 Z400 E95                ; set axis steps/mm
    G21                                 ; Work in millimetres
    G90                                 ; Send absolute coordinates...
    M83                                 ; ...but relative extruder moves
    
    ; Thermistors
    M305 P0 T100000 B3950 R4700 H30 L0    ; Put your own H and/or L values here to set the bed thermistor ADC correction
    M305 P1 T100000 B3974 R4700 H30 L0    ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P2 T100000 B3974 R4700 H30 L0    ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
    M570 S180                ; Hot end may be a little slow to heat up so allow it 180 seconds
    
    ; Fans
    ;M106 P1 H-1                 ; disable thermostatic mode for fan 1
    
    ; Tool definitions
    M563 P0 D0 H1 F0:1                      ; Define tool 0 - Heater 1, Fan 0 (extruder) and Fan 1 (bed fan)
    G10 P0 S0 R0                            ; Set tool 0 operating and standby temperatures
    M92 E663:663                           ; Set extruder steps per mm
    
    ; Z probe and compensation definition
    ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
    M558 P5 X0 Y0 Z1            ; Z probe is an inductive probe and is used for homing
    G31 X25 Y0 Z0 P500            ; Set the zprobe height and threshold (put your own values here)
    
    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0                       ; Axis compensation here
    
    M208 S1 Z-0            ; set minimum Z
    ;
    T0                    ; select first hot end
    
    
    ;Enable pronterface?
    M555 P2```


  • https://duet3d.dozuki.com/Wiki/FAQ#Section_I_get_this_error_message_Error_G0_G1_insufficient_axes_homed

    Recent firmware versions do not allow axes to be moved before they have been homed. The only movements allows are homing moves (G1 moves with S1 or H1 parameter) and individual motor moves (G1 moves with S2 or H2 parameter). So any Z movements that your homing files make before Z is homed should use the S2 parameter. Alternatively, add M564 H0 to config.g to allow axis movement before homing.



  • @phaedrux said in DuetWifi 1.01 Updated to 1.24 - No Z Axis after update:

    M564 H0

    Thank you for this!

    Sending M564 H0 did indeed unlock my Z axis and allowed me to run a homing routine.

    Before running M564 Both G28 and G30 commands return the same insufficient axes homed error... which makes no sense to me. Is there a different command to home the Z-axis now? I'm using an inductive bed sensor on a Printrbot Simple Metal. I don't have a z-axis endstop, I have the inductive sensor wired to the Z-probe inputs. Not sure if this is relevant but the inductive bed sensor outputs its signal at 12v so I had to make a voltage divider to step it down to 3.3v. (see board diagram)

    The command I have in my config that defines Z homing is

    M558 P5 X0 Y0 Z1 ; Z probe is an inductive probe and is used for homing

    Is there something else I need to change in the config relative to the new firmware? The fact that neither G28 or G30 work by default leads me to believe there is something wrong with my M558. I tried adding S1 and S2 to both G28/30 commands as described in the FAQ and neither of them allowed me to home Z.

    Or is the solution to simply add M564 H0 to my config.g? I like the fact that the machine won't move unless homed so it seems like an unnecessarily brute force way to solve this problem.



  • The S2 switch needs to be added to G1 moves that happen before the homing move. It doesn't get added to G28 or G30. G28 simply runs homeall.g and G30 simply probes the bed.

    Please post your homing files and we can show you exactly what needs to change.

    Or, you can add M564 H0 to config.g to preserve the old functionality.

    Your M558 command looks like it might be missing some parameters. What kind of probe do you have?

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M558_Set_Z_probe_type



  • @dirtybirdnj said in DuetWifi 1.01 Updated to 1.24 - No Z Axis after update:

    I'm using an inductive bed sensor on a Printrbot Simple Metal. I don't have a z-axis endstop, I have the inductive sensor wired to the Z-probe inputs. Not sure if this is relevant but the inductive bed sensor outputs its signal at 12v so I had to make a voltage divider to step it down to 3.3v. (see board diagram)

    Here is an image for reference:
    Printrbot with Inductive Sensor

    I believe the sensor itself is open by default and closed when activated. There is a little red LED on top of the unit and when a metal object is present under it the LED turns on.

    I've added my homing files below, one thing of note is that I rarely ever used the homez.g functionality, I'd usually just run homeall.g. I see some G1 move commands there that based on the info so far in this thread thats not going to work.

    Before I submitted this post I did a test, after manually setting M564 H0 I ran the homeall.g and noticed that when I put a metal object under the sensor it detected it as expected and set the zero height! After that I adjusted the nuts on the inductive sensor and ran it again letting it detect the bed by itself, and the machine finally completed a homeall.

    So right now I think the main goal is to figure out what I have to change with the M558 so that I don't have to add the M564 H0 to my config or run it manually every time.

    homex.g

    G91                ; relative mode
    G1 X-200 S1        ; move up to 200mm in the -X direction, stopping if the homing switch is triggered
    G1 X100            ; move back to center
    G90                ; back to absolute mode
    

    homey.g

    G91                ; relative mode
    G1 Y-200 S1        ; move up to 200mm in the Y direction, stopping if the homing switch is triggered
    G1 Y100
    G90                ; back to absolute mode
    

    homez.g

    G91                ; relative mode
    G1 Z1 F200         ; raise head 1mm to ensure it is above the Z probe trigger height
    G90                ; back to absolute mode
    G30                ; lower head, stop when probe triggered and set Z to trigger height
    G1 Z1 F200         ; raise head 2mm after probe trigger 
    

    homeall.g

    G91                 ; set relative positioning
    
    G1 X-200 S1         ; move up to 200mm in the -X direction, stopping if the homing switch is triggered
    G1 Y-200 S1         ; move up to 200mm in the -Y direction, stopping if the homing switch is triggered
    G1 X100 Y100 F3500
    
    ; Inductive Bed Sensor
    G30                  ; lower head, stop when probe triggered and set Z to trigger height
    G1 Z20 F1000         ; raise head 1
    


  • Those files look correct, except for home z. There are no g1 moves that aren't homing moves that occur before the axis is homed in the other files. But homez raises the z axis before doing the g30. That move would require S2.

    It sounds like you have home all working properly now?

    I just occured to me now that it looks like you have a duet wifi but are running 1.24? I think you're eligible to upgrade further to 2.03 if you wished.



  • M558 will need F for feed rate during probe moves. H for dive height to probe from, T for travel speed between probe points. P for the probe type. X Y and Z are deprecated and can be removed. The g31 seems ok. Except the trigger height for z would indicate that the nozzle is touching the bed when it triggers.

    Is the probe attached to the print head or fixed to the frame?



  • @phaedrux

    M558 is definiltey responding to the extra settings, but I still have to run M564 H0 to home the z-axis.

    Still can't home z-axis

    Additionally when it does run G30 it does one probe and then rises and dives again moving in x+y+z. In doing so it pushes up past the end-stops making bad noises even though it's already homed the x and y axes.

    It seems like it's doing something after the probing, but none of the actions defined in any of the home_.g match what it's doing. What exactly happens when G30 runs and is it dictated by any of these files? Running G29 also causes the machine to push beyond its axes after x and y homing as well.

    config files

    Here's the latest version of my config:

    ; Communication and general
    M111 S1                            	; Debug off
    M550 OldYeller				; Machine name and Netbios name (can be anything you like)
    M551 Preprap                        	; Machine password (used for FTP)
    ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED 	; MAC Address
    ;*** Wifi Networking
    M552 S1					; Enable WiFi. Disabled for setup and testing. Enable once set up on your network.
    
    M555 P2                           	; Set output to look like Marlin
    M575 P1 B57600 S1			; Comms parameters for PanelDue
    
    G21                                 	; Work in millimetres
    G90                                	; Send absolute coordinates...
    M83                                 	; ...but relative extruder moves
    
    ; Axis and motor configuration
    M569 P0 S0                          ; Drive 0 (x motor) goes reverse
    M569 P1 S0                          ; Drive 1 (y motor) goes reverse
    M569 P2 S0                          ; Drive 2 (z motor) goes reverse
    M569 P3 S0                          ; Drive 3 (ext motor) goes reverse
    ;M569 P4 S1                         ; Drive 4 goes forwards
    
    M350 X16 Y16 Z16 E16 I1             ; set 16x microstepping with interpolation
    M574 X1 Y1 Z0 S1		    ; set homing switch configuration (x and y switches, at low end, active high)
    M906 X800 Y800 Z800 E800            ; Set motor currents (mA)
    M201 X1000 Y1000 Z1000 E100         ; Accelerations (mm/s^2)
    M203 X3000 Y3000 Z3000 E600         ; Maximum speeds (mm/min)
    M566 X1000 Y1000 Z1000 E50          ; Maximum jerk speeds mm/minute
    M208 X200 Y200 Z240                 ; set axis max and high homing switch positions (adjust to suit your machine)
    M208 X-0 Y0 Z0 S1                   ; set axis min and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
    M92 X80 Y80 Z400 E95                ; set axis steps/mm
    G21                                 ; Work in millimetres
    G90                                 ; Send absolute coordinates...
    M83                                 ; ...but relative extruder moves
    
    ; Thermistors
    M305 P0 T100000 B3950 R4700 H30 L0	; Put your own H and/or L values here to set the bed thermistor ADC correction
    M305 P1 T100000 B3974 R4700 H30 L0	; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P2 T100000 B3974 R4700 H30 L0	; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
    M570 S180				; Hot end may be a little slow to heat up so allow it 180 seconds
    
    ; Fans
    ;M106 P1 H-1 				; disable thermostatic mode for fan 1
    
    ; Tool definitions
    M563 P0 D0 H1 F0:1                      ; Define tool 0 - Heater 1, Fan 0 (extruder) and Fan 1 (bed fan)
    G10 P0 S0 R0                        	; Set tool 0 operating and standby temperatures
    M92 E663:663                       	; Set extruder steps per mm
    
    ; Z probe and compensation definition
    ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
    M558 P5 X0 Y0 Z1 F100 T5000 H2	        ; Z probe is an inductive probe and is used for homing
    G31 P1000 Z2			        ; Set the zprobe height and threshold (put your own values here)
    
    ;*** If you are using axis compensation, put the figures in the following command
    ;M556 S78 X0 Y0 Z0                   	; Axis compensation here
    M208 S1 Z-0			        ; set minimum Z
    ;
    T0					; select first hot end
    
    
    ;Enable pronterface?
    M555 P2
    
    ;Enable Z-Axis because of dumb firmware
    ;M564 H0
    


  • @phaedrux said in DuetWifi 1.01 Updated to 1.24 - No Z Axis after update:

    I just occured to me now that it looks like you have a duet wifi but are running 1.24? I think you're eligible to upgrade further to 2.03 if you wished.

    This was one part of the update that was super confusing, I wasn't sure if the Duet2 and the DuetWifi I have are directly compatible with the firmware offered.

    The file I sent during firmware writing using BOSSA was Duet2CombinedFirmware.bin from what appears to be the latest release.

    https://github.com/dc42/RepRapFirmware/releases/tag/2.03



  • @dirtybirdnj said in DuetWifi 1.01 Updated to 1.24 - No Z Axis after update:

    G31 P1000 Z2

    Your G31 needs to define the X and Y offset between the probe and the nozzle.



  • What does the settings page say you have installed for firmwares?



  • @phaedrux

    First off thank you so much for your help with this!

    Settings / software info

    Your G31 needs to define the X and Y offset between the probe and the nozzle.

    !!!! wow lol seems like a critical thing to be missing... measuring this now and figuring out the distance 😌



  • Looks like you're all up to date.

    This may help with getting the probe setup: https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe#Section_Static_test_of_the_Z_probe



  • Seems like a bug if missing or incorrect probe offsets can cause the X and Y axes to crash. Once they are homed shouldn't they be limited to their defined range regardless of what G-code is executed?



  • Did adding the X and Y parameters to G31 fix it?


  • administrators

    @nophead said in DuetWifi 1.01 Updated to 1.24 - No Z Axis after update:

    Seems like a bug if missing or incorrect probe offsets can cause the X and Y axes to crash. Once they are homed shouldn't they be limited to their defined range regardless of what G-code is executed?

    The probe offsets default to zero; so leaving them out won't cause a crash.


  • administrators

    @dirtybirdnj said in DuetWifi 1.01 Updated to 1.24 - No Z Axis after update:

    M558 is definiltey responding to the extra settings, but I still have to run M564 H0 to home the z-axis.

    Do you mean you always need to run M564 H0 to home the Z axis; or only if you try to home the Z axis before X and Y have been homed?

    When homing Z with a Z probe, the firmware won't let you do it if X and Y have not been homed first; otherwise it would probe at unknown XY coordinates.

    Did you add the S2 parameter to the following command in homez.g as @Phaedrux said?

    G1 Z1 F200 ; raise head 1mm to ensure it is above the Z probe trigger height



  • @dc42

    Do you mean you always need to run M564 H0 to home the Z axis; or only if you try to home the Z axis before X and Y have been homed?

    Yes, this is exactly the case. Please see the screenshot above, I posted a log from the g-code console to document this.

    Did you add the S2 parameter to the following command in homez.g as @Phaedrux said?

    I did and the S2 allows for upward movement before the probe, but it still refuses to execute the G30 that does Z-probing unless I run M564 H0 first.



  • Can you try deleting the deployprobe.g and retractprobe.g files?



  • @phaedrux

    Can you try deleting the deployprobe.g and retractprobe.g files?

    THIS WORKED 🙌 The "random movements" issue has been solved! I didn't delete the files I just commented out their contents, but I'll prob remove them soon for good measure.

    Still need to run M564 H0 before z-axis is unlocked, but I feel way more confidant about doing some test prints now that the machine is homing correctly and behaving as expected again.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.