Duet 3 end stops and z probe not working.



  • 87E59128-A45D-473B-A08E-55DED6D367C8.jpeg So, I’ve been trying to get the end-stops to work but when I home the x y or z axis the printer just keeps going into the switch and doesn’t stop. I’m pretty sure it’s my wiring but I could be wrong. Also when I try to manually move the axis, I can only move them about 200mm and I don’t understand why it’s only moving that much.


  • Moderator

    Please post your config.g and homing files.
    What firmware version are you using? Should be 3.1.1. Send M115 to find out.
    What kind of switches are they?
    What kind of printer is it?



  • @Phaedrux here it is. Also, i'm using mechanical switch (3 prong) for the x, y, z axis connected two wires both outer prongs and using an inductive probe to level the bed(not sure if i can use a mechanical switch for the top and probe for the bed). The printer is a Cartesian i built it myself. I'm using 3.1.1 firmware.

    code_text; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Jul 23 2020 03:24:36 GMT+0100 (British Summer Time)
    
    ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"Duet 3"                                     ; set printer name
    
    ; Drives
    M569 P0.2 S1                                       ; physical drive 0.2 goes backwards
    M569 P0.0 S1                                       ; physical drive 0.0 goes forwards
    M569 P0.1 S1                                       ; physical drive 0.1 goes forwards
    M569 P0.4 S1                                       ; physical drive 0.4 goes forwards
    M584 X0.2 Y0.0 Z0.1 E0.4                           ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z400.00 E420.00                  ; set steps per mm
    M566 X1200.00 Y1200.00 Z1200.00 E500.00                ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z18000.00 E9000.00            ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z1000.00 E250.00                ; set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1800 E1200 I70                       ; set motor currents (mA) and motor idle factor in per cent
    M84 S60                                            ; Set idle timeout
    
    ; Axis Limits
    M208 X1 Y1 Z1 S1                                   ; set axis minima
    M208 X920 Y920 Z920 S0                             ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"!io3.in"                              ; configure active-low endstop for low end on X via pin !io2.in
    M574 Y1 S1 P"!io4.in"                              ; configure active-low endstop for low end on Y via pin !io4.in
    M574 Z2 S1 P"!io1.in"                              ; configure active-low endstop for high end on Z via pin !io1.in
    
    ; Z-Probe
    M558 P5 C"^io5.in" H5 F120 T6000                   ; set Z probe type to switch and the dive height + speeds
    G31 P500 X41 Y41 Z2.5                              ; set Z probe trigger value, offset and trigger height
    M557 X15:215 Y15:195 S20                           ; define mesh grid
    
    ; Heaters
    M308 S0 P"spi.cs0" Y"rtd-max31865"                 ; configure sensor 0 as thermocouple via CS pin spi.cs0
    M950 H0 C"out0" T0                                 ; create bed heater output on out0 and map it to sensor 0
    M307 H0 B1 S1.00                                   ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                            ; map heated bed to heater 0
    M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
    M308 S1 P"spi.cs1" Y"rtd-max31865"                 ; configure sensor 1 as thermocouple via CS pin spi.cs1
    M950 H1 C"out1" T1                                 ; create nozzle heater output on out1 and map it to sensor 1
    M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"out9" Q500                               ; create fan 0 on pin out9 and set its frequency
    M106 P0 S0 H1 T45                                  ; set fan 0 value. Thermostatic control is turned on
    M950 F1 C"out6" Q500                               ; create fan 1 on pin out6 and set its frequency
    M106 P1 S1 H1 T45                                  ; set fan 1 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 S"Extruder 1" D0 H1 F0                     ; 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 are not defined
    
    ; Miscellaneous
    M501                                               ; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    
    
    

  • Moderator

    Post your homing files as well. homeall.g specifically.



  • Heres the code

    Heres the Homeall.g code.j

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Jul 23 2020 03:24:36 GMT+0100 (British Summer Time)
    G91                     ; relative positioning
    G1 H2 Z5 F6000          ; lift Z relative to current position
    G1 H1 X-925 Y-925 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 H2 X5 Y5 F6000       ; go back a few mm
    G1 H1 X-925 Y-925 F360  ; move slowly to X and Y axis endstops once more (second pass)
    G1 H1 Z925 F360         ; move Z up stopping at the endstop
    G90                     ; absolute positioning
    G92 Z920                ; set Z position to axis maximum (you may want to adjust this)
    
    ; Uncomment the following lines to lift Z after probing
    ;G91                    ; relative positioning
    ;G1 Z5 F100             ; lift Z relative to current position
    ;G90                    ; absolute positioning
    
    
    
    

  • Moderator

    Hi, please post the results of M122.
    Also send M98 P"config.g" and post the results of that as well.

    When you click the endstop switches does the endstop status in the DWC machine status page change?

    @1997alex said in Duet 3 end stops and z probe not working.:

    I can only move them about 200mm and I don’t understand why it’s only moving that much.

    Are you sure the steps per mm for the X and Y axis is 200?



  • m122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode)
    Board ID: 08DJM-956L2-G43S8-6J9F0-3SJ6Q-9A0GG
    Used output buffers: 1 of 40 (10 max)
    === RTOS ===
    Static ram: 154604
    Dynamic ram: 162664 of which 32 recycled
    Exception stack ram used: 376
    Never used ram: 75540
    Tasks: NETWORK(ready,1980) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1452) TMC(blocked,204) MAIN(running,5056) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 00:00:50 ago, cause: software
    Last software reset at 2020-07-28 03:16, reason: User, spinning module LinuxInterface, available RAM 75196 bytes (slot 1)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 33.2, current 33.6, max 33.7
    Supply voltage: min 24.1, current 24.2, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 10.5, current 12.1, max 12.6, under voltage events: 0
    Driver 0: standstill, reads 49428, writes 17 timeouts 0, SG min/max 0/170
    Driver 1: standstill, reads 49428, writes 17 timeouts 0, SG min/max 0/300
    Driver 2: standstill, reads 49428, writes 17 timeouts 0, SG min/max 0/132
    Driver 3: standstill, reads 49435, writes 11 timeouts 0, SG min/max 0/0
    Driver 4: standstill, reads 49432, writes 14 timeouts 0, SG min/max 0/0
    Driver 5: standstill, reads 49436, writes 11 timeouts 0, SG min/max 0/0
    Date/time: 2020-07-28 03:17:23
    Slowest loop: 4.79ms; fastest: 0.14ms
    === Storage ===
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest read time 0.0ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 374, MaxWait: 17937ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 10, completed moves: 10, 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
    === 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 idle 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
    Aux2 is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 1.02ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
    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 160, longest wait 0ms for type 0
    === Linux interface ===
    State: 0, failed transfers: 0
    Last transfer: 17ms ago
    RX/TX seq numbers: 1318/1320
    SPI underruns 0, overruns 0
    Number of disconnects: 0
    Buffer RX/TX: 0/0-0
    === Duet Control Server ===
    Duet Control Server v3.1.1
    Daemon:
    Finishing macro daemon.g, started by system
    > Next stack level
    Code buffer space: 4096
    Configured SPI speed: 8000000 Hz
    Full transfers per second: 30.9
    


  • @Phaedrux said in Duet 3 end stops and z probe not working.:

    M98 P"config.g"

    By the way, the heater for the bed and hot-end is disconnected.

    28/07/2020, 03:19:19	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
    28/07/2020, 03:19:18	Warning: Macro file config-override.g not foun
    

  • Moderator

    Ok, that all looks alright.

    If the status of the endstops is actually changing in DWC, the only thing to change for the endstop config is to remove the ! from the pin name.

    ; Endstops
    M574 X1 S1 P"!io3.in"                              ; configure active-low endstop for low end on X via pin !io2.in
    M574 Y1 S1 P"!io4.in"                              ; configure active-low endstop for low end on Y via pin !io4.in
    M574 Z2 S1 P"!io1.in"                              ; configure active-low endstop for high end on Z via pin !io1.in
    

    As for the probe, your homeall is set to use the z max endstop. This is fine, but before printing or creating a heightmap, you should establish the Z0 position with the probe using G30 at the center of the bed.



  • @Phaedrux Oh, I see so they are working but not the right ones. The issue I'm seeing now is that when I move the connector to a different io pin it keeps the switch i don't want powered on and doesn't power the switch I want to work on that same io pin. I have two pins on the x axis and I'm trying to make one of the end-stops switches to work and not the other. From what I understand, I can only use one end stop for each axis. I added the other end-stops before finding out I could only use one.



  • @1997alex lol, fixed the last issue, it was a wire that was loose. thanks for the help.


  • Moderator

    I don't really understand what you mean, but if you've got it figured out, that's awesome.