Z Home (Error: Failed to enable endstops.)



  • Im new to this software, so please bear with me. Also, I believe that I checked pretty thoroughly, but if this issue has already been addressed, please let me know.

    Im able to home X and Y axes just fine. When homing Z, I receive the "error: failed to enable endstops."

    config.g:

    ; Voron.
    ; 0:/sys/config.g
    ; Configuration file for Duet 3 (firmware version 3.1.1).
    ; Executed by the firmware on start-up.
    ; 2020/10/22/12:43
    
    ; General preferences.
    G90            ; Set all axes (not extruders) to absolute positioning.
    M83            ; Set all extruders (not axes) to relative positioning.
    M550 P"Voron"  ; Set machine name.
    M669 K1        ; Set kinematics type to CoreXY.
    
    ; Drive map.
    ; | 3 | 0 |
    ;  -------
    ; | 2 | 1 |
    ;   Front.
    
    ; Drives.
    M569 P0.0 S1                                     ; Physical drive 0.0 (XY, A) goes forwards.
    M569 P0.1 S1                                     ; Physical drive 0.1 (XY, B) goes forwards.
    M569 P0.2 S0                                     ; Physical drive 0.2 (Z0) goes backwards.
    M569 P0.3 S1                                     ; Physical drive 0.3 (Z1) goes forwards.
    M569 P0.4 S0                                     ; Physical drive 0.4 (Z2) goes backwards.
    M569 P0.5 S1                                     ; Physical drive 0.5 (Z3) goes forwards.
    M569 P1.0 S1                                     ; Physical drive 1.0 (E1) goes forwards.
    M584 X0.0 Y0.1 Z0.2:0.3:0.4:0.5 E1.0             ; Set drive mapping.
    M671 X360:360:-10:-10 Y360:-10:-10:360 S20 F1.0  ; Define position of z belts. Z belts at 0 (360,360), 1 (360, -10), 2(-10, -10), 3(-10, 360). Maximum correction distance is 20 mm. Fudge factor is 1.0.
    M350 X16 Y16 Z16 E16 I1                          ; Set microstepping and interpolation.
    M92 X80.00 Y80.00 Z400.00 E417.00                ; Set steps per mm.
    M566 X300.00 Y300.00 Z12.00 E120.00              ; Set maximum instantaneous speed changes (jerk) (mm/min).
    M203 X18000.00 Y18000.00 Z900.00 E1200.00        ; Set maximum speeds (mm/min).
    M201 X3000.00 Y3000.00 Z350.00 E250.00           ; Set accelerations (mm/s^2).
    M906 X1400 Y1400 Z1400 E500 I30                  ; Set motor currents (mA) and motor idle factor in percent.
    M84 S30                                          ; Set idle timeout.
    
    ; Axis Limits.
    M208 X0 Y0 Z0 S1        ; Set axis minimum.
    M208 X350 Y350 Z350 S0  ; Set axis maximum.
    
    ; Endstops.
    M574 X2 P"0.io0.in" S1   ; Set endstop config. X endstop: High end. Pin: Mainboard (0.) "io0.in". Input type: Switch.
    M574 Y2 P"0.io1.in" S1   ; Set endstop config. Y endstop: High end. Pin: Mainboard (0.) "io1.in". Input type: Switch.
    M574 Z0                  ; Set endstop config. Z endstop: None (using Z probe to home Z).
    
    ; Z Probe.
    M558 K0 P8 F120 H5 R0 T6000 A1 B1 C"0.io3.in"  ; Set Z probe type. Number: 0. Type: 8 unfiltered digital. Feed rate: 120 mm/min. Dive height: 5 mm. Recovery time: 0 s. Travel speed: 6000 mm/min. Times to probe each point: 1. Turn off all heaters while probing: Yes. Input pin: Main board (0.) io3.in.
    G31 P500 X0 Y23.5 Z2.5 K0                      ; Set Z probe parameters. Trigger value. Probe X offset. Probe Y offset. Trigger Z height. Probe number.
    M557 X0:350 Y25:325 P3                         ; Set Z probe grid. Min and max X. Min and max Y. Number of points per X and Y axis direction.
    
    ; Heater, Bed.
    M308 S0 P"0.temp0" Y"thermistor" A"Bed Temp" T100000 B3950  ; Set (bed) temperature sensor parameters. 
    M950 H0 C"0.out0" T0                                        ; Create (bed) heater. Heater 0. Wired to mainboard (0) "out0". Mapped to temperature sensor 0 (bed).
    M307 H0 B1 S1.00                                            ; Set heating process parameters. Heater 0 (bed). Enable bang bang control. Max PWM is 100%.
    M140 H0                                                     ; Set bed heater. Heater 0.
    M143 H0 S160                                                ; Set maximum heater temperature. Heater 0 (bed). Max temp is 160C.
    
    ; Heater, Extruder 1.
    M308 S1 P"0.temp1" Y"thermistor" A"Extr. 1 Temp" T100000 B4267  ; Set (extruder 1) temperature sensor parameters.
    M950 H1 C"0.out1" T1                                            ; Create (extruder 1) heater. Heater 1. Wired to mainboard (0) "out1". Mapped to temperature sensor 1 (extruder 1).
    M307 H1 B0 S1.00                                                ; Set heating process parameters. Heater 1 (extruder 1). Disable bang bang control. Max PWM is 100%.
    M143 H1 S300                                                    ; Set maximum heater temperature. Heater 1 (extruder 1). Max temp is 300C.
    
    ; Fan, Print Cooling.
    M950 F0 C"0.out4" Q500       ; Create fan. Fan 0 (print/part cooling). Wired to mainboard (0) "out4". PWM is 500Hz.
    M106 P0 H-1 R2 C"Print Fan"  ; Set fan. Fan 0 (print/part cooling). Thermostatic control is disabled. Restore fan speed to remembered value after pause. Fan name.
    
    ; Fan, Heat Break.
    M950 F1 C"0.out5" Q500                 ; Create fan. Fan 1 (heat break). Wired to mainboard (0) "out5". PWM is 500 Hz.
    M106 P1 S1.0 H1 T45 C"Heat Break Fan"  ; Set fan. Fan 1 (heat break). Fan speed is 100%. Thermostatic control is enabled for temperature sensor 1 (extruder 1). Trigger temperature is 45C. Fan name.
    
    ; Fans, Electronics.
    M308 S2 Y"drivers" A"Driver Temp"                    ; Set (stepper drivers) temperature sensor parameters. Sensor: 2. Sensor type: Main board stepper drivers. Sensor name: Driver Temp.
    M308 S3 Y"mcu_temp" A"CPU Temp"                      ; Set (CPU/MCU) temperature sensor parameters. Sensor: 3. Sensor type: CPU/MCU. Sensor name: CPU Temp.
    M950 F2 C"0.out6" Q500                               ; Create fan. Fan 2 (electronics). Wired to mainboard (0) "out6". PWM is 500 Hz.
    M106 P2 L0.1 X1.0 B0.3 H2:3 T40:65 C"Case Fans"      ; Set fan. Fan 2 (electronics). Min fan speed is 10%. Max fan speed is 100%. Blip time is 0.3 s. Thermostatic control is enabled for temperature sensors 2 (stepper drivers) and 3 (MCU). Temperature control proportional range is 40-65C. Fan name.
    
    ; Tools.
    M563 P0 S"Extr. 1 Tool" D0 H1 F1  ; Define tool. Tool 0. Tool name. First extruder (defined in M584 as E1.0). Heater 1 (defined in M950 H1). Fan 1 (print/part cooling) mapped to this tool.  
    G10 P0 X0 Y0 Z0 R0 S0             ; Set tool offset and temperature. Tool 0. X offset. Y offset. Z offset. Standby temperature. Active temperature.
    
    ; Display.
    M575 P1 S1 B57600 S1  ; Set serial communications parameters. Serial channel 1 (auxiliary serial port). Baud rate is set to PanelDue default. Mode is PanelDue, checksums required.
    
    ; Auto Power Save.
    M911 S21 R22 P"M913 X0 Y0 G91 M83 G1 Z3 E-2 F1000"  ; Configure auto save on loss of power. Auto save voltage threshold. Resume voltage threshold. Commands to run when print is stopped.
    
    ; CPU Temperature Compensation.
    M912 P0 S0  ; Set cpu/mcu temperature sensor correction. A lower number decreases displayed cpu temp, =[(temperature_actual)-(temperature_indicated)].
    
    ; Pressure Advance.
    M572 D0 S0.05  ; Set extruder pressure advance (linear advance). Extruder number 0 (extruder 1). Pressure advance amount (seconds).
    
    ; Select Tool.
    T0  ; Select first tool.
    

    homeall.g:

    ; Voron.
    ; 0:/sys/homeall.g
    ; Called to home all axes.
    ; 2020/10/21/17:27
    
    G91                   ; Set axes (not extruders) to relative positioning mode.
    G1 H2 Z5 F6000        ; Lift Z relative to current position.
    G1 H1 X355 Y355 F6000 ; Move quickly to X or Y axis endstop and stop there.
    G1 H1 X355 F6000      ; Move quickly to X endstop and stop there.
    G1 H1 Y355 F6000      ; Move quickly to Y endstop and stop there.
    G1 H2 X-5 Y-5 F6000   ; Move away from X and Y endstops.
    G1 H1 X355 F360       ; Move slowly to X endstop once more.
    G1 H1 Y355 F360       ; Move slowly to Y endstop once more.
    G90                   ; Set axes (not extruders) to absolute positioning mode.
    G1 X175 Y151.5 F6000  ; Move X and Y axes so the Z probe is at the center of the bed.
    G91                   ; Set axes (not extruders) to relative positioning mode.
    G1 H1 Z-350 F4800     ; Lower Z relative to current position, stopping at endstop (1 of 2 passes).
    G1 H2 Z2 F6000        ; Lift Z relative to current position.
    G90                   ; Set axes (not extruders) to absolute positioning mode.
    G30                   ; Home Z by probing the bed (2 of 2 passes).
    

    M98 errors:

    M98 P"config.g"
    Warning: M307: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C
    

    (This is an issue for another day, lol.)

    M122 diagnostic:

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.01-RC9 running on Duet 3 MB6HC v1.01 or later
    Board ID: 08DJM-956L2-G43S8-6J9DG-3S46T-KV2LFUsed output buffers: 1 of 40 (10 max)
    === RTOS ===
    Static ram: 154572
    Dynamic ram: 162240 of which 76 recycled
    Exception stack ram used: 512
    Never used ram: 75816
    Tasks: NETWORK(ready,2084) HEAT(blocked,1184) CanReceiv(suspended,3824) CanSender(suspended,1456) CanClock(blocked,1432) TMC(blocked,80) MAIN(running,4856) IDLE(ready,80)
    Owned mutexes:
    === Platform ===
    Last reset 00:12:21 ago, cause: power up
    Last software reset at 2020-10-22 17:58, reason: User, spinning module LinuxInterface, available RAM 75816 bytes (slot 3)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 28.5, current 41.3, max 41.5
    Supply voltage: min 23.9, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0
    Driver 0: standstill, reads 59719, writes 28 timeouts 0, SG min/max 0/302
    Driver 1: standstill, reads 59719, writes 28 timeouts 0, SG min/max 0/273
    Driver 2: standstill, reads 59720, writes 28 timeouts 0, SG min/max 0/277
    Driver 3: standstill, reads 59720, writes 28 timeouts 0, SG min/max 0/263
    Driver 4: standstill, reads 59721, writes 28 timeouts 0, SG min/max 0/259
    Driver 5: standstill, reads 59721, writes 28 timeouts 0, SG min/max 0/252
    Date/time: 2020-10-22 21:57:10
    Slowest loop: 4.81ms; fastest: 0.14ms
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 373, MaxWait: 105107ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 18, completed moves: 18, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    Heater 1 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP* is ready with "M122" in state(s) 0
    Telnet is idle in state(s) 0
    File is idle in state(s) 0
    USB is idle in state(s) 0
    Aux is assembling a command in state(s) 0
    Trigger* is idle in state(s) 0
    Queue is idle in state(s) 0
    LCD is idle in state(s) 0
    SBC is idle in state(s) 0
    Daemon* is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 1.47ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 0 of 8
    - Ethernet -
    State: disabled
    Error counts: 0 0 0 0 0
    Socket states: 0 0 0 0 0 0 0 0
    === CAN ===
    Messages sent 2889, longest wait 1ms for type 6018
    === Linux interface ===
    State: 0, failed transfers: 0
    Last transfer: 15ms ago
    RX/TX seq numbers: 23492/23493
    SPI underruns 0, overruns 0
    Number of disconnects: 0
    Buffer RX/TX: 0/0-0
    === Duet Control Server ===
    Duet Control Server v3.1.1
    Code buffer space: 4096
    Configured SPI speed: 8000000 Hz
    Full transfers per second: 1.78
    

    Current setup is a Voron v2.4 350 mm^3. Inductive probe Z switch.
    Z switch / probe

    The error appears to be either in:
    config.g. Line 44. Though GCode M574 states that " When using the Z probe to home Z, M574 Z0 should be used."

    or

    config.g Line 47.

    or

    homeall.g Lines 17-19.

    My intent was to do a quick "coarse" pass down to the bed until the endstop (z probe) was activated, go up a little, and then do the actual G30 probe. This worked on other printers (albeit running Duet 2 WiFi and RRRF 2). Is there a better way to implement this?

    Any help is greatly appreciated! Including any other issues that you see that I haven't addressed.



  • Also, I have the Z probe hooked up in a different way:

    My +V and 0V wires of the probe are connected to the V+ and GND (VFUSED) pins next to the reset button on the main board. The sensor is 6-36V, so the 5V of the IO wouldn't work. The OUT wire of the probe is connected to "io3.in" on the main board. With that said, it seems to work since triggering the probe shows up on the dashboard (which I would think is a good sign).

    Removing lines 17-19 results in the z probe working, but the G30 is way too slow for a coarse pass, especially when the gantry is at the top of its travel.


  • Moderator

    @Charlie said in Z Home (Error: Failed to enable endstops.):

    G1 H1 Z-350 F4800 ; Lower Z relative to current position, stopping at endstop (1 of 2 passes).

    M574 Z0 ; Set endstop config. Z endstop: None

    The problem is that you have no endstop for Z defined, but in homeall.g you are doing a homing move to an endstop that doesn't exist.

    If you remove that G1 H1 Z-350 line from homeall it should be fine because you have a G30 later that will home.

    The homeall is worded to imply that the endstop homing is a first pass. If that's the intention, then you would need an endstop for Z physically installed and you would need to define it in config.g

    Alternatively, if you want to do a fast Z homing and then a slower detailed probe you can use

    M558 F600 A1
    G30
    M558 F60 A10
    G30

    That would do a fast single probe and then a slower probe up to 10 times or until two consecutive probe results match.

    @Charlie said in Z Home (Error: Failed to enable endstops.):

    RepRapFirmware for Duet 3 MB6HC version 3.01-RC9 running on Duet 3 MB6HC v1.01 or later

    Your firmware is out of date release candidate and should be updated to 3.1.1. Easiest option is to upload the complete 3.1.1 zip file to the system tab in DWC. That will update the firmware and web interface.

    https://github.com/Duet3D/RepRapFirmware/releases/download/3.1.1/Duet2and3Firmware-3.1.1.zip

    Upload it as is, don't extract it first.



  • @Phaedrux
    Thank you so much! I implemented the commands that you gave (just changed the A parameter for the last G30 command) and it works very well.

    ; Voron.
    ; 0:/sys/homeall.g
    ; Called to home all axes.
    ; 2020/10/22/21:51
    
    G91                    ; Set axes (not extruders) to relative positioning mode.
    G1 H2 Z5 F6000         ; Lift Z relative to current position.
    G1 H1 X355 Y355 F6000  ; Move quickly to X or Y axis endstop and stop there.
    G1 H1 X355 F6000       ; Move quickly to X endstop and stop there.
    G1 H1 Y355 F6000       ; Move quickly to Y endstop and stop there.
    G1 H2 X-5 Y-5 F6000    ; Move away from X and Y endstops.
    G1 H1 X355 F360        ; Move slowly to X endstop once more.
    G1 H1 Y355 F360        ; Move slowly to Y endstop once more.
    G90                    ; Set axes (not extruders) to absolute positioning mode.
    G1 X175 Y151.5 F6000   ; Move X and Y axes so the Z probe is at the center of the bed.
    M558 F600 A1           ; Set Z probe. Feed rate: 600 mm/min. Times to probe: 1.
    G30                    ; Z probe quickly (1 of 2 passes).
    M558 F60 A1            ; Set Z probe. Feed rate: 60 mm/min. Times to probe: 1.
    G30                    ; Home Z by probing the bed slowly (2 of 2 passes).
    

    Im assuming that the rest of the M558 parameters will be followed based on the config file, right? Things such as "Dive height" would be how much Z will lift after probing I presume.

    Thank you for pointing out that the firmware was out of date! Updating fixed an issue that I was having with thermostatically controlled fans. I now "Watch" the reprap and PanelDue releases, which I hope means that Ill be notified when a new release comes, if Im doing it right, lol.

    Thanks again!


  • Moderator

    @Charlie said in Z Home (Error: Failed to enable endstops.):

    Im assuming that the rest of the M558 parameters will be followed based on the config file, right? Things such as "Dive height" would be how much Z will lift after probing I presume.

    Yes that's right. You can modify individual parameters without specifying all of the parameters.


Log in to reply