Homing messed up after changing Acceleration & Jerk limits



  • Hey,

    I'm having a strange problem when changing Jerk & Acceleration limits on a Duet3 - RRF 3.1.1

    M566 X900.00 Y900.00 Z180.00 E2200.00                 ; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z2100.00 E12000.00           ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z100.00 E1000.00               ; set accelerations (mm/s^2)
    

    These are the standart values I'm using atm. Everything is working fine.

    M566 X1800.00 Y1800.00 Z180.00 E2200.00      ; set maximum instantaneous speed changes (mm/min) - testing dyn acc
    M203 X12000.00 Y12000.00 Z2100.00 E12000.00  ; set maximum speeds (mm/min) - testing dyn acc
    M201 X10000.00 Y10000.00 Z100.00 E200.00     ; set accelerations (mm/s^2) - testing dyn acc
    

    These are the values I'm trying to set.

    Now the strange part:
    After changing the values the board restarts as usual. When trying to home a single axis (doesnt matter which one) - the Z-axis dips a few mm down and returns to the same position.
    When homing all axis - the printer starts randomly homing in different directions. Restarting/resetting the board brings several other combinations of directions. Instead of going X0Y0 e.g. its going Y0 first and X310 afterwards.

    Nothing else but the values was changed in config.g

    I did the motor direction test and both configs are working fine. Exept when homing. (Or starting a print with G28)config - Test.txt

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Mar 12 2020 00:55:37 GMT+0100 (Mitteleuropäische Normalzeit)
    
    ; General preferences
    G90                                          ; send absolute coordinates...
    M83                                          ; ...but relative extruder moves
    M550 P"RatRig V-Core Pro"                    ; set printer name
    M669 K1                                      ; select CoreXY mode
    
    ; Network
    M552 P0.0.0.0 S1                             ; enable network and acquire dynamic address via DHCP
    M586 P0 S1                                   ; enable HTTP
    M586 P1 S0                                   ; disable FTP
    M586 P2 S0                                   ; disable Telnet
    
    ; Drives
    M569 P0.0 S1                                 ; physical drive 0.0 goes forwards Left
    M569 P0.1 S1                                 ; physical drive 0.1 goes forwards Rear
    M569 P0.2 S1                                 ; physical drive 0.2 goes forwards Right
    M569 P0.3 S0                                 ; physical drive 0.3 goes forwards X
    M569 P0.4 S0                                 ; physical drive 0.4 goes forwards Y
    M569 P0.5 S0                                 ; physical drive 0.5 goes forwards E            
    M584 X0.3 Y0.4 Z0.2:0.0:0.1 E0.5             ; set drive mapping   Z-Motors: Right, Left, Rear
    
    M350 X16 Y16 Z16 E32 I1                      ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E830.00            ; set steps per mm
    M566 X1800.00 Y1800.00 Z180.00 E2200.00      ; set maximum instantaneous speed changes (mm/min) - testing dyn acc
    M203 X12000.00 Y12000.00 Z2100.00 E12000.00  ; set maximum speeds (mm/min) - testing dyn acc
    M201 X10000.00 Y10000.00 Z100.00 E200.00     ; set accelerations (mm/s^2) - testing dyn acc
    ; M566 X900.00 Y900.00 Z180.00 E2200.00        ; set maximum instantaneous speed changes (mm/min) - default E120.00
    ; M203 X12000.00 Y12000.00 Z2100.00 E12000.00  ; set maximum speeds (mm/min)
    ; M201 X1000.00 Y1000.00 Z100.00 E1000.00      ; set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1000 E800 I30              ; set motor currents (mA) and motor idle factor in percent
    M84 S30                                      ; Set idle timeout
    
    ; Axis Limits
    M208 X5 Y0 Z0 S1                             ; set axis minima
    M208 X305 Y305 Z284 S0                       ; set axis maxima
    
    ; Endstops
    M574 X1 S3                                   ; configure sensorless endstop for low end on X
    M574 Y1 S3                                   ; configure sensorless endstop for low end on Y
    M574 Z1 S2                                   ; configure Z-probe endstop for low end on Z
    
    ; Filament Sensor
    M591 D0 P2 C"io8.out" S1 		     ; Filament Sensor an E0, Endstop IO8, Mode P1 Signal high wenn Filament da, S1: Pause on error
    
    ; Z leadscrew positions
    M671 X330:-35:150 Y115:115:370 S10           ; right, left, back - S Parameter for maximum Correction on G32
    
    ; Z-Probe
    M558 P9 C"io7.in" F200 H5 R0.2 T9000 A1 B1   ; set Z probe type to bltouch and the dive height + speeds
    M950 S0 C"io7.out"                           ; create servo pin 0 for BLTouch
    G31 X-24.3 Y-34.1 Z1.3635                    ; 63 set Z probe trigger value, offset and trigger height 1.67 
    M557 X15:270 Y5:270 S40                      ; define mesh grid
    
    ; Heaters
    M308 S0 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp1
    M950 H0 C"out1" T0                           ; create bed heater output on out1 and map it to sensor 0
    M143 H0 S120                                 ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00                             ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                      ; map heated bed to heater 0
    M308 S1 P"temp2" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp2
    M950 H1 C"out2" T1                           ; create nozzle heater output on out2 and map it to sensor 1
    M143 H1 S280                                 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00                             ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"out8" Q10                          ; create fan 1 on pin out8 and set its frequency
    M106 P0 C"Radial" S0 H-1                     ; set fan 1 name and value. Thermostatic control is turned off
    M950 F1 C"out7" Q10                          ; create fan 0 on pin out7 and set its frequency
    M106 P1 C"Hotend" S255 T45 H1                ; set fan 0 name and value. Thermostatic control is turned on (45°)
    ; Tools
    M563 P0 S"Mosquito" 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
    ;M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    
    ; PID Tunings
    M307 H1 A555.0, C181.8, D6.3 S1				 ; Hotend PID
    M307 H0 A378.1, C427.3, D3.9 S1				 ; Bed PID
    

  • Moderator

    Your accellerations are set too high and it's likely skipping steps or even causing the motors to go a different direction than expected.

    10000mm/s^2 is a bit excessive, try something a bit more tame like 3000 and work from there.



  • I already tried that, but same behavior. 😕


  • Moderator

    Post your entire config.g and homeall please.



  • Config is in the main post, but formatted really bad. Sadly I cant edit the post, cuz its detected as spam. 😄

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Mar 12 2020 00:55:37 GMT+0100 (Mitteleuropäische Normalzeit)
    M400                    ; make sure everything has stopped before we make changes
    
    M574 X1 Y1 S3           ; set endstops to use motor stall
    M913 X55 Y55            ; drop motor currents to 60%
    M915 X Y S1 H200 F0 R0       ; set sensitivity to +2 unfiltered
    
    G91                     ; use relative positioning
    
    G1 H2 Z10 F6000          ; lift Z relative to current position
    
    G1 H1 X-400 F2500       ; move X all the way left and stop at end
    
    ;G1 X0                   ; move to edge of glass
    G92 X0                  ; set X0 at edge of glass
    
    G1 H1 Y-400 F2500       ; move Y all the way forward and stop at end
    
    ;G1 Y5                   ; move to edge of glass
    G92 Y0                  ; set Y0 at edge of glass
    
    G90                     ; back to absolute positioning
    M400                    ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100          ; motor currents back to 100%
    M915 X Y S5 F0 H200 R2       ; set sensitivity to +5 and enable auto-pause
    
    G1 X150 Y150 F9000      ; go to first bed probe point and home Z
    G30                     ; home Z by probing the bed
    

    Thats my homeall


  • Moderator

    Ah I see you are using stall detection for homing. That's an important detail. The increased speeds are likely causing a premature stall so it thinks it's been homed when it's not.

    I would suggest that you specify separate speed settings in your homing files to optimize for stall detection and then at the end return the values to your preferred print values. To make it easier to modify you can put the different speed values in separate macro files and call those when needed with M98.



  • OMG 🤦 Thank you so much.

    My goal is using Dynacmic Acceleration. What values are needed to make it work properly? In the meantime I tested serveral lower values then 10k. Seams like 2500 is working. Would that be enough?


  • Moderator

    Was it working with your original values?

    For stall detection to work it needs to be fast enough of a move to trigger, but the movement needs to be smooth enough to not trigger prematurely.

    It will take some tuning and experimenting.

    https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing



  • I didnt test it yet, cuz the documentation said something like "set values high, so that it doesnt get limited".

    And thats where i failed, sadly. 🤣

    But if what youre trying to say is, that it could work with 1000mm/s, then ill give it a try.


Log in to reply