Why doesn't this M574 configuration work



  • I have my Duet 3 powered printer working well with the exception of one detail. Currently all of my endstop opto switches are physically located at the low end which puts the Y endstop at the front of the printer. I would like for the Y endstop opto to be located at the other end of Y (back of printer) which is more convenient from a wiring standpoint. So I change M574 from Y1 to Y2 and invert all of my G1 Y numbers in home all and home Y. Y now moves to the back of the printer (Y max) and the endstop is triggered and all is well. The problem comes when I load a print, Duet homes and then nothing else happens, the print does not start. I put M574 and associated Y numbers back to the way they were and it prints as it should. I'm running DWC 2.15,DSF2.1.2 and 3.01-RC10. I realise there is a new f/w version out but shouldn't this work with this f/w?, What am I missing?



  • I’d ask you post your config.g file; the way you run it is how my blv cube is set up. Double check your axis limits max and min settings to see if they match the way the new endstop configuration is set up. Post yours and I’ll post mine :).



  • Throw in the home files; at a lance i suspect relatives moves vs absolute moves and failing the second time if the printer homes before print?



  • Here ya go,

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Apr 29 2020 12:52:20 GMT-0600 (Mountain Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Duet 3" ; set printer name

    M669 K1 ; select CoreXY mode

    ; Drives
    M569 P0.0 S1 ; physical drive 0.0 goes forwards
    M569 P0.1 S1 ; physical drive 0.1 goes forwards
    M569 P0.2 S0 ; physical drive 0.2 goes backwards
    M569 P0.3 S0 ; physical drive 0.3 goes backwards

    M584 X0.1 Y0.0 Z0.2 E0.3 ; set drive mapping Y = drive 0 X = drive 1 Z = drive 2 Extruder drive 3

    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z1600.00 E420.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z-0.6 S1 ; set axis minima
    M208 X310 Y310 Z320 S0 ; set axis maxima

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

    ; Z-Probe
    M950 S0 C"io4.out" ; create servo pin 0 for BLTouch
    M558 P9 C"io4.in" H2.5 F120 R.350 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X1.5 Y59 Z3.495 ; set Z probe trigger value, offset and trigger height
    M557 X15:295 Y15:252 P6:6 ; define mesh grid

    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
    M143 H0 S110 ; set temperature limit for heater 0 to 110C
    M307 H0 A236.8 C516.8 D3.0 V24.1 B0 ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
    M143 H1 S260 ; set temperature limit for heater 1 to 260C
    M307 H1 A445.5 C173.0 D5.5 V24.1 B0 ; disable bang-bang mode for hotend 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 H1 T45 ; set fan 1 value. Thermostatic control is turned on

    ; Tools
    M563 P0 S"E3D-V6" 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
    T0 ; select first tool



  • The printer does home when the print file is loaded but then stops and does nothing.

    Here is home all,

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Apr 29 2020 12:52:20 GMT-0600 (Mountain Daylight Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-310 Y310 F1800 ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X-310 ; home X axis
    G1 H1 Y310 ; home Y axis
    G1 X5 Y5 F6000 ; go back a few mm
    G1 H1 X-310 F360 ; move slowly to X axis endstop once more (second pass)
    G1 H1 Y310 ; then move slowly to Y axis endstop
    G1 H1 Z-330 F360 ; move Z down stopping at the endstop
    G90 ; absolute positioning
    G92 Z0 ; set Z position to axis minimum (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



  • @luckyflyer said in Why doesn't this M574 configuration work:

    The printer does home when the print file is loaded but then stops and does nothing.

    if you run g28 or homeall twice does it finish normally, and is there anything in a start.g file or the slicer settings that would be relevant?



  • Double check your axis limits max and min settings to see if they match the way the new endstop configuration is set up.

    Is this the way axis limits should be set up with the new M574 config?

    ; Axis Limits
    M208 X0 Y310 Z-0.6 S1 ; set axis minima
    M208 X310 Y0 Z320 S0 ; set axis maxima



  • @luckyflyer said in Why doesn't this M574 configuration work:

    Double check your axis limits max and min settings to see if they match the way the new endstop configuration is set up.

    Is this the way axis limits should be set up with the new M574 config?

    ; Axis Limits
    M208 X0 Y310 Z-0.6 S1 ; set axis minima
    M208 X310 Y0 Z320 S0 ; set axis maxima

    No they shouldn't change. if you change Y1 to Y2 and reverse the axis limits you're sort of back to square 1. (also not sure the firmware accepts a minima larger than the maxima) revert to

    ; Axis Limits
    M208 X0 Y0 Z-0.6 S1 ; set axis minima
    M208 X310 Y310 Z320 S0 ; set axis maxima



  • I have no file named start.G S3d does have a flip Y axes and it is configured to flip, this is the default setting. I have tried it both ways and neither way works with the new config, have not tried flipping Y when printer is working correctly. I can try running G28 a second time from panel due.



  • @bearer said in Why doesn't this M574 configuration work:

    @luckyflyer said in Why doesn't this M574 configuration work:

    Double check your axis limits max and min settings to see if they match the way the new endstop configuration is set up.

    Is this the way axis limits should be set up with the new M574 config?

    ; Axis Limits
    M208 X0 Y310 Z-0.6 S1 ; set axis minima
    M208 X310 Y0 Z320 S0 ; set axis maxima

    No they shouldn't change. if you change Y1 to Y2 and reverse the axis limits you're sort of back to square 1. (also not sure the firmware accepts a minima larger than the maxima) revert to

    ; Axis Limits
    M208 X0 Y0 Z-0.6 S1 ; set axis minima
    M208 X310 Y310 Z320 S0 ; set axis maxima

    I have not tried it that way, so I'm not sure about checking axes limits min & max to see if they match the way the new endstop configuration is set up.



  • @luckyflyer said in Why doesn't this M574 configuration work:

    so I'm not sure about checking axes limits min & max to see if they match the way the new endstop configuration is set up.

    unless moving the endstop causes the available travel on the axis to increase or decrease you don't need to change M208. But if you hav 310mm travel and moving the endstop means you can only travel 305mm then update M208 accordingly. High or low end doesn't matter in that respect, just over all travel.



  • I upload a file to print ( a known good file that I've printed before) the heaters come up to temp, the printer homes and then nothing. I sent a G28 from panel due console still nothing. I come to the pc where dwc is and send G28 the blue send box just circles , I hit estop to get it to stop.



  • @bearer said in Why doesn't this M574 configuration work:

    @luckyflyer said in Why doesn't this M574 configuration work:

    so I'm not sure about checking axes limits min & max to see if they match the way the new endstop configuration is set up.

    unless moving the endstop causes the available travel on the axis to increase or decrease you don't need to change M208. But if you hav 310mm travel and moving the endstop means you can only travel 305mm then update M208 accordingly. High or low end doesn't matter in that respect, just over all travel.

    There would be a few mm change because the opto sensor trigger is at the one end a little closer to the rail physical stop, when put at the other end the circuit board is flipped moving the trigger point a little.



  • @luckyflyer said in Why doesn't this M574 configuration work:

    There would be a few mm change because the opto sensor trigger is at the one end a little closer to the rail physical stop, when put at the other end the circuit board is flipped moving the trigger a little.

    the simplest would be to place or jog the head at Y0 then run G1 F-sensible-feedrate Y400 H3 it should effectively measure your Y axis (up to 400mm but stop when endstop is triggered) and set M208 in config-override.g (maybe you have to save it with M500 or update config.g manually if you don't use config-override.g)



  • Ok, I'll do that but if not configured correctly would that cause the issue I'm having? I thought the axes limits were to prevent over extending an axes and hitting a hard stop.



  • @luckyflyer i think you're correct, but i'm happy to defer to higher powers on most thing config.

    however having Z-0.6 in you M208 and G92 Z0 in your homeall seems odd to me.



  • Hmm, I did not catch that. I have the -.6 because my bed has a dip in the middle. Front left corner is much closer to 0 but I'll change home all anyway.



  • Double check your axis limits max and min settings to see if they match the way the new endstop configuration is set up.

    Ok I get what your saying.


  • administrators

    @luckyflyer said in Why doesn't this M574 configuration work:

    Double check your axis limits max and min settings to see if they match the way the new endstop configuration is set up.

    Is this the way axis limits should be set up with the new M574 config?

    ; Axis Limits
    M208 X0 Y310 Z-0.6 S1 ; set axis minima
    M208 X310 Y0 Z320 S0 ; set axis maxima

    As @bearer said several posts ago, you need to swap the Y values over in those two commands. As they stand, no motion will be allowed.



  • Nuramori, can you post your config.g file, thanks


Log in to reply