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
-
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.
-
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
-
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?
-
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.