All axis stop moving before hitting switches



  • Hello, I am converting an old CubePro duo to Duet 3 and I have my X, Y, and Z (and their limit switches) wired up and moving properly. My problem is that when I try to home all or any of the axes they all move a small distance and then stop before they've even come close to hitting their switches.
    I have already made sure that the switches read triggered or not triggered at the correct positions so I am really stumped.

    here is my config and homeall

    ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"CubePro"                                    ; set printer name
    
    ; Network
    M551 P"*****"                                     ; set password 
    M552 P0.0.0.0 S1                                   ; enable network and acquire dynamic address via DHCP
    M586 P0 S1                                         ; enable HTTP
    M586 P1 S1                                         ; enable FTP
    M586 P2 S1                                         ; enable Telnet
    
    ; Drives
    M569 P0.4 S1                                       ; physical drive 0.4 goes forwards
    M569 P0.3 S1                                       ; physical drive 0.3 goes forwards
    M569 P0.2 S1                                       ; physical drive 0.2 goes forwards
    M569 P0.0 S1                                       ; physical drive 0.0 goes forwards
    M569 P0.1 S1                                       ; physical drive 0.1 goes forwards
    M584 X0.4 Y0.3 Z0.2 E0.0:0.1                       ; set drive mapping
    M350 X16 Y16 Z16 I0                                ; configure microstepping without interpolation
    M350 E16:16 I1                                     ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z800.00 E420.00:420.00           ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00         ; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z600.00 E1200.00:1200.00  ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00         ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800:800 I30                   ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                            ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                                   ; set axis minima
    M208 X280 Y280 Z200 S0                             ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"!io3.in"                               ; configure active-high endstop for low end on X via pin io3.in
    M574 Y2 S1 P"!io4.in"                               ; configure active-high endstop for high end on Y via pin io4.in
    M574 Z2 S1 P"!io1.in"                               ; configure active-high endstop for high end on Z via pin io1.in
    
    ; Z-Probe
    M558 P0 H5 F120 T6000                              ; disable Z probe but set dive height, probe speed and travel speed
    M557 X15:215 Y15:195 S20                           ; define mesh grid
    
    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B4138       ; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out2" T0                                 ; create chamber heater output on out2 and map it to sensor 0
    M307 H0 B1 S1.00                                   ; enable bang-bang mode for the chamber heater and set PWM limit
    M141 H0                                            ; map chamber to heater 0
    M308 S1 P"temp1" Y"thermistor" T100000 B4138       ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out0" T1                                 ; create nozzle heater output on out0 and map it to sensor 1
    M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"temp2" Y"thermistor" T100000 B4138       ; configure sensor 2 as thermistor on pin temp2
    M950 H2 C"out1" T2                                 ; create nozzle heater output on out1 and map it to sensor 2
    M307 H2 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"out7" Q500                               ; create fan 0 on pin out7 and set its frequency
    M106 P0 S0 H-1                                     ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out8" Q500                               ; create fan 1 on pin out8 and set its frequency
    M106 P1 S1 H-1                                     ; set fan 1 value. Thermostatic control is turned off
    M950 F2 C"out9" Q500                               ; create fan 2 on pin out9 and set its frequency
    M106 P2 S1 H-1                                     ; set fan 2 value. Thermostatic control is turned off
    M950 F3 C"out4" Q500                               ; create fan 3 on pin out4 and set its frequency
    M106 P3 S1 H-1                                     ; set fan 3 value. Thermostatic control is turned off
    
    ; Tools
    M563 P0 D0 H1 F0:1:2:3                             ; 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 H2 F0:2:1:3                             ; 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
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M575 P1 S1 B57600                                  ; enable support for PanelDue
    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
    
    
    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Jul 30 2020 09:52:44 GMT-0700 (Pacific Daylight Time)
    G91                    ; relative positioning
    G1 H2 Z5 F6000         ; lift Z relative to current position
    G1 H1 X-285 Y285 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 H2 X5 Y-5 F6000     ; go back a few mm
    G1 H1 X-285 Y285 F360  ; move slowly to X and Y axis endstops once more (second pass)
    G1 H1 Z205 F360        ; move Z up stopping at the endstop
    G90                    ; absolute positioning
    G92 Z200               ; 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
    


  • @Gabell20 as a fist test please call
    M122
    to see whether there are reported errors.

    Please select a tool at the end of config: insert
    T0

    Please check the config syntax by calling
    M98 P"config.g"

    Has nothing to todo with the problem, but
    M350 X16 Y16 Z16 I0
    is microstepping without interpolation.
    M350 X16 Y16 Z16 I1
    will move your steppers more quiet.

    Endstop definitions M574 S1 with ! means it is an active low switch. Is this correct? (because the comments tell otherwise). Please see https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview#Section_M574 the sentence starting "Endstop type S0 (active low switch) is no longer supported... use S1 with ! ..."

    M501 can mean there is a config-override.g, please post it.



  • Hi,

    I'm guessing there is a problem with the way your end stops are configured and they are active when they should be inactive and vice versa.

    The symptom of this is homing yields just a small amount of movement in the direction away from the end stop sensor.

    Frederick



  • @JoergS5 I called M122 and there are no reported errors. I also did set my limit switches with S1 ! on purpose and they do show triggered: no when not pressed. I can't find a config-override.g anywhere but I have a config.g.bak, is that the same ?



  • @fcwilt That is what is happening, but when I look under machine specific in the web control all of my switches look good: only yes when pressed and when I home the machine while pressing the switch it doesn't move at all.



  • @Gabell20 said in All axis stop moving before hitting switches:

    @fcwilt That is what is happening, but when I look under machine specific in the web control all of my switches look good: only yes when pressed and when I home the machine while pressing the switch it doesn't move at all.

    Well sounds like they are working correctly as the DWC reports.

    Yet the behavior you are seeing is odd.

    Let me think on it a bit.

    Frederick



  • @Gabell20 said in All axis stop moving before hitting switches:

    config-override.g anywhere but I have a config.g.bak, is that the same ?

    no, they are different, config.g.bak is only a back of config.g, the override file is a file used with M500 and M501, if you don't have one you can remove M501 in config then.



  • @fcwilt Thank you



  • @JoergS5 Thank you, I will



  • @Gabell20 did you add T0 and run M98?

    If you only get small movements and the endstops are ok, a wrong M92 would be possible but it's strange, because it looks ok.
    When you make a G1 100, does it move the distance as expected or less?

    Can you check that the pulleys are correctly fixed on the stepper shafts?



  • @Gabell20 Have you entered in the DWC a M208 command to verify the min/max settings?

    Frederick



  • @Gabell20 the
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00
    Z value is very low, please trying to set 100 instead.

    Another possibility why the movement is so slow that the steppers are connected to different axes as you expect (extruder definition to X axis eg), please recheck the wiring and wiring diagram.

    Is the printer a CoreXY? Then the config and homeall would be wrong.



  • @JoergS5 The x and y axes move how they should with a g1, Ive been trying all sorts of motion and it all seems sound mechanically, belts and pulleys are tight and in place.



  • @JoergS5 Its Cartesian, and I've unplugged the extruders for debugging. X Y and Z are all independent and wired up correctly.



  • @Gabell20 you described they move, but not to the endstops. Do you see a reason why the stop? And if you make only X or only Y movement, do they move to the endstops?
    Isolated
    G91
    G1 H1 X-1000
    e.g.

    Can you verify firmware version please, should be 3.1.1



  • @JoergS5 They don't move regardless if I home all or home one axis independently or directly with gcode, for example G91 G1 H2 X-500 will move very far and crash as expected, but G91 G1 H1 X-500 will move roughly 6 mm.
    RepRapFirmware for Duet 3 MB6HC version 3.01-RC9 running on Duet 3 MB6HC v1.01 or later


  • Moderator

    @Gabell20 said in All axis stop moving before hitting switches:

    3.01-RC9

    Please update to 3.1.1 by uploading this zip file

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

    Just to confirm, the endstops are physically located X to the left and Y at the back?

    Can you manually run each line of your homeall from the console?



  • @Gabell20 I am not aware of so serious bugs for the movement, but the general advice is to upgrade to 3.1.1

    I checked, there were some error corrections between 3.01 beta 9 and 3.1.1, better upgrade first before proceeding.


  • Moderator

    Can you show photo of the endstops and the wiring?



  • @Phaedrux how do send images t the forum on mobile ?



  • @JoergS5 Cool, I have just upgraded



  • @Gabell20 and it's all working now ? 🙂



  • @JoergS5 no 😞 this is not as related but my z is going the opposite way



  • @Phaedrux The x switch is on the left and the y switch is mounted to the x carriage and triggers at the back.


  • Moderator

    Can you go through these steps to test endstop and motors before homing?

    https://duet3d.dozuki.com/Guide/Ender+3+Pro+and+Duet+Maestro+Guide+Part+3:+Commissioning/39#s145


Log in to reply