3.5.0rc1: Input shaping causes layer shifts!?
-
FYI had something similar happen this night on a machine running just closed loop motors.
Just installed the RC2+ and will see if it happens again.
Already sent this to @dc42 directly as well. -
@dc42 just to make sure since I have no experience yet with the test firmware versions you provide: On my 6HC with no further addon electronics than the PanelDue (a clone, as already noted somewhere here in the forum, since the original PanelDue has too large footprint for this printer - I would have used the one I already own otherwise) and the Wifi module I just need to upload and install Duet3Firmware_MB6HC.bin - correct?
-
@NeoDue said in 3.5.0rc1: Input shaping causes layer shifts!?:
I just need to upload and install Duet3Firmware_MB6HC.bin - correct?
Correct!
Ian
-
@oliof That was really good hint. My test print came out without layer shift. Will continue testing but seems promising. Thank you.
Now X and Y motors are configured 8 microsteping with 80 steps per mm. -
@droftarts thanks! But I fear I need to report that did not work as intended at all - the last information I got from the DWC was that it was updating the board firmware... and now I am having a dead printer. I fear I need to work my way to the Duet in the printer and do a restore via USB this weekend instead of doing the test. Now where was the website explaining that process, it has been ages since I needed that...
-
@NeoDue Oh dear, sorry! Maybe your iap file was out of date?
USB firmware flashing: https://docs.duet3d.com/User_manual/RepRapFirmware/Updating_firmware
Ian
-
@droftarts The one that was in the Duet was suitable to update from 3.5.0 beta4 to rc1 and then to rc2. Do I need another one for the test version? There is none in the dropbox folder...
-
@NeoDue No, that was probably the latest. Looks like it hasn't been updated for a couple of years: https://github.com/Duet3D/DuetIAP
Sorry, not sure why your update failed. Is the DIAG light glowing? See https://docs.duet3d.com/en/User_manual/Troubleshooting/Duet_wont_respond for troubleshooting, just in case it is recoverable.
Ian
-
@droftarts Thanks for the links! I will check that. But for now there is a little mechanical work needed - the Snapmaker J1 has its electronics compartment in the base, and I need to remove the housing windows and screw up the z axis before I can unscrew and lift the metal plate covering it... quite some screws before I can see the Duet again
-
@droftarts Edit: I just managed to catch a glimpse through an unused former USB port opening. If I saw correctly from the reflection, the four voltage LEDs are active, but that's about it. But as noted above, I need to take open the compartment to get a clear look.
-
@vaike_peeter thanks for the data. How confident are you that if you disable input shaping, you can do the same print at the same speed without getting any layer shifting?
-
@dc42 I will do teat print with IS disabled and then post results. I modified my config for x and y steppers and changed print external perimeter accel to 2000 because of ringing. Defaul accel is 5k. I’m off my printer right now.
-
@dc42 Okay, after a flash with Bossa the printer is up and running again ( @droftarts it turned out to be an outdated IAP file after all, the last version is from November '22 and mine was from June '22), and here is the requested data:
The print file is in the first post of this thread.
The current config.g is this one, it includes the M593 command:
; Konfigurationsdatei für Duet WiFi Firmware 3.5.0rc2 ; Stand: 26.12.2023 G4 P2000 ; 2s warten, daß die Duet in Ruhe starten kann - hilft bei einem Reset?? ; Allgemeine Einstellungen ; M451 ; FDM-Drucker M669 K0 S50 ; Kartesischer Drucker, 20ms Mindest-Segmentzeit von Marlin-Sourcen des J1 übernommen M111 S0 ; Debugging aus G21 ; Basiseinheit Millimeter G90 ; Absolute Koordinaten... M83 ; ... außer beim Extruder M555 P1 ; Firmware-Kompatibilität wie RepRapFirmware M200 D1.75 ; Filamentdurchmesser 1,75mm für alle Extruder (nicht notwendig, aber es schadet nicht) ; globale Variablen ; if !exists(global.Druckplattendicke) global Druckplattendicke = 5.00 ; Dicke der Druckplatte if !exists(global.Z_Limit_min) global Z_Limit_min = 200 ; kleinster zulässiger Max-Wert für Z if !exists(global.Z_Limit_max) global Z_Limit_max = 216 ; größter zulässiger Max-Wert für Z ; PanelDue ; ;M575 P1 S1 B115200 ; IO-Port für PanelDue aktivieren M575 P1 S1 B57600 ; testweise auf 57600 Baud reduziert ; Definition der Sensoren - 2x PT100 mit Vorverstärker am Hotend, 1x 100K-NTC (laut Marlin ein Epcos 100k-Thermistor?) am Bett ; M308 S0 P"temp0" Y"thermistor" A"T_Heizbett" T100000 B4092 ; Sensor 0 = Heizbett-Temperatursensor ; Hotend-Temperatursensoren - Anmerkungen: ; 1. die Vorverstärker im Hotend arbeiten nur im Bereich von 120...310°C linear. Daher weichen die Anzeigewerte insbesondere bei Raumtemperatur ca. 10...15° nach unten ab. ; 2. Originalwerte laut der Sensorkurve von Snapmaker in Marlin: B-121.551 C549.644. Damit ist der Ausgabewert aber bei 190°C mindestens 2°C zu niedrig (außen am Heizblock gemessen) ; Daher Anzeigewert um 5°C nach oben korrigiert auf: M308 S1 P"temp1" Y"linear-analog" A"T_Hotend1" F1 B-116.551 C554.644 ; Sensor 1 = PT100 mit Vorverstärker am Hotend 1 (links). GND und 3,3V kommen vom Filamentsensor, Signal an Pin Temp1 legen! M308 S2 P"temp2" Y"linear-analog" A"T_Hotend2" F1 B-116.551 C554.644 ; Sensor 2 = PT100 mit Vorverstärker am Hotend 1 (links). GND und 3,3V kommen vom Filamentsensor, Signal an Pin Temp2 legen! ; M308 S3 P"temp3" Y"thermistor" A"Bauraum" T100000 B4092 ; reserviert für Sensor 3 = Sensor für Bauraumheizung M308 S10 Y"mcu-temp" A"Elektronik" ; Sensor 10 = Prozessortemperatur der Duet für Elektronikraumkühlung - die Stepper haben nur einen dreistufigen Temperatursensor M308 S11 Y"drivers" A"Steppertreiber" ; Sensor 11 = Steppertreibertemperatur der Duet. 0°C=normal, 100°C=Überhitzungswarnung, 130°C=überhitzt. ; Definition der Anschlüsse ; Führendes "!": Pin wird zum Prozessor hin invertiert, die Firmware macht das automatisch) ; 2-Pin-Lüfter am 4-Pin-Anschluß: einfach nur die beiden Pins V_OUTLCx und OUTx benutzen, den Rest frei lassen ; Lüfter mit VIN (24V) betreiben - Jumper entsprechend setzen ; M950 H0 C"out0" T0 ; Heizelement 0 (Heizbett mit Temperatursensor 0) M950 H1 C"out1" T1 ; Heizelement 1 (Extruder-Heizung mit Temperatursensor 1) M950 H2 C"out2" T2 ; Heizelement 2 (Extruder-Heizung mit Temperatursensor 2) ; H3 (out3) freihalten für Bauraumheizung M950 F0 C"out4" Q50 ; Lüfter 1 (Bauteilkühlung Hotend 1) PWM-Frequenz 50 Hz (sonst schwankt die Drehzhl) M950 F1 C"out5" Q50 ; Lüfter 2 (Bauteilkühlung Hotend 2) PWM-Frequenz 50 Hz (sonst schwankt die Drehzahl) M950 F2 C"out7" Q500 ; Lüfter 3 (Hotendkühlung Hotend 1) M950 F3 C"out8" Q500 ; Lüfter 4 (Hotendkühlung Hotend 2) M950 F4 C"out6" Q50 ; Lüfter 5 (Elektronikraumlüfter) PWM-Frequenz 50 Hz (sonst schwankt die Drehzahl) M950 P9 C"out9" Q100 ; LED-Streifen an Ausgang 9 ; Definition der Antriebe ; falls die Timings manuell justiert werden müssen: Parameter T1:1:0.5:6 F6 = 1us min.step pulse, 1us min.step interval, 0,5us DIR setup time, hold time 6us, Toff=6 ; Originale Daten: ; Normal: TMC StealthChop für alle Achsen an, max. Tempo X200 Y200 mm/s, max. Beschleunigung X8000 Y8000 mm/s² ; Silent: TMC StealthChop für alle Achsen an, max. Tempo X105 Y105 mm/s, max. Beschleunigung X3000 Y3000 mm/s² ; Performance (Laut): TMC StealthChop für X und Y aus, max. Tempo X350 Y350 mm/s, max. Beschleunigung M201 X10000 Y10000 mm/s² ; Steppereinstellungen von Snapmaker am TMC2210 - Achtung: Snapmaker ändert im Idle-Zustand einige der Parameter! ; Stealthchop: für alle Stepper eingeschaltet <-- macht bei den Extrudern null Sinn. ; TPWMTHRS: X und Y: 8, Z: 16, E: Defaultwert (welcher auch immer das sein mag...egal, s.o.) ; Timing: off-time 4 --> F4, hysteresis_end 2, hysteresis_start 1 --> Y1:2 ; ; Defaultwerte der Duet: ccr 0x08053, toff 3, tblank 1, thigh 200 (46.9 mm/sec), tpwmthrs 200 (46.9 mm/sec), pwmScaleSum 26, pwmScaleAuto 0, pwmOfsAuto 39, pwmGradAuto 0, pos 760 ; ; Werte aus der Duet-Hilfe: ; Cnnnn (firmware 2.0 and later, only applies to TMC2660, TMC22xx, TMC2160 and TMC516x stepper drivers) Lowest 17 bits of the chopper control register value. ; Bnn (firmware 2.02RC1 and later) Blanking time (tbl) in the chopper control register, 0 to 3. See the TMC driver datasheet. ; Hnn (firmware 2.02RC2 and later) thigh parameter for those stepper driver chips that support it, e.g. TMC5160 and TMC2160. ; Send M569 P# (where # is the driver number) with no additional parameters to see how this translates into mm/sec. See also the V parameter. ; Yaa:bb or Yaa:bb:cc (firmware 2.02RC2 and later) Hysteresis start, end and decrement values in the chopper control register. See the TMC driver datasheet for the meaning. ; Vnnn (firmware 2.02RC1 and later) tpwmthrs parameter for those stepper driver chips that support it. This is the interval in clock cycles between 1/256 microsteps below ; which the drivers will switch from stealthChop to to spreadCycle mode. Only applies when the driver is configured in stealthChop mode. ; Typical value are from 100 (high speed) to 4000 (low speed). Send M569 P# (where # is the driver number) with no additional parameters to see how this translates into mm/sec. ; Fnn (firmware 2.02 and later) Off-time in the chopper control register, 1 to 15 ; ; Verhältnisse laut TMC-Datenblatt: TCOOLTHRS ≥ TSTEP ≥ TPWMTHRS ≥ THIGH ; Werte für tpwmthrs: V94 = 100mm/s (XYU) bzw. V310 (Z) (sollte der Einstellung von Snapmaker entsprechen?), V25 = 375mm/s und damit für alle Bewegungen gültig ; ; M569 P0.0 S0 D3 H94 V94 ; Test - Defaultwerte. Ergebnis: Motor etwas lauter und mit weniger Drehmoment M569 P0.0 S0 F4 Y1:2 D3 H5 V25 ; Antrieb an DRIVER_0 (X) läuft rückwärts mit StealthChop2, thigh klein (sonst wird CoolStep abgedreht), tpwmhrs auf 375mm/s eingestellt, M915 P0.0 T1 ; ... und tcoolthrs extrem niedrig, so daß CoolStep immer aus ist M569 P0.1 S1 F4 Y1:2 D3 H5 V25 ; Antrieb an DRIVER_1 (U) läuft vorwärts mit StealthChop2, thigh klein (sonst wird CoolStep abgedreht), tpwmhrs auf 375mm/s eingestellt M915 P0.1 T1 ; ... und tcoolthrs extrem niedrig, so daß CoolStep immer aus ist M569 P0.2 S1 D2 ; Antrieb an DRIVER_2 (Z) läuft vorwärts mit Spreadcycle ; M569 P0.3 S0 D2 ; testweise auf Spreadcycle umgestellt. Nutzt nix. M569 P0.3 S0 F4 Y1:2 D3 H5 V25 ; Antrieb an DRIVER_3 (Y) läuft rückwärts mit StealthChop2, thigh klein (sonst wird CoolStep abgedreht), tpwmhrs auf 375mm/s eingestellt M915 P0.3 T1 ; ... und tcoolthrs extrem niedrig, so daß CoolStep immer aus ist M569 P0.4 S0 D2 ; Antrieb an DRIVER_2 (E1) läuft rückwärts mit Spreadcycle M569 P0.5 S1 D2 ; Antrieb an DRIVER_3 (E2) läuft vorwärts mit Spreadcycle ; Definition der Achsen und Extruder ; ACHTUNG beim Einstellen der Steprate und der Interpolation: mehr als 480kHz (max. 650kHz bei nur einem Motor in Betrieb) packt die Duet 3 6HC nicht. Das sollte aber dicke reichen... ; M584 X0.0 U0.1 Y0.3 Z0.2 E0.5:0.4 ; Antriebe zu Achsen zuweisen M350 E64:64 Z16 I0 ; Mikrostepping ohne Interpolation für Z (mit der 2mm-Steigung der Schraube entspricht ein Vollschritt exakt 0,01mm) und E M350 X16 U16 Y16 I1 ; Mikrostepping mit Interpolation für X, U, Y entspricht 0,0125mm pro Mikroschritt M92 X80 U80 Y80 Z1600 E138.58:138.58 S16 ; (Mikro-)Schritte pro mm ; M566 X600 U600 Y600 Z100 E300:300 ; testweise erhöht wg. Layer Shifts. Nutzt nix. M566 X342 U342 Y342 Z100 E300:300 ; Maximale sofortige Geschwindigkeitsänderungen (mm/min). E-Wert aus Marlin, XYUZ-Werte aus Junction Deviation 0,013 errechnet (vgl. https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html). Für XYU möglichst klein halten (Input Shaping) M203 X21000 U21000 Y21000 Z600 E4800:4800 ; Maximalgeschwindigkeiten (mm/min) M201 X1000 U1000 Y1000 Z500 E5000:5000 ; Maximalbeschleunigungen je Achse (mm/s²) (Z aus J1-Cura-Profil) - Snapmaker-Daten X,U,Y=10000 sind wegen des Werts in M204 völliger Humbug! (Gesamtbeschleunigung max 1000, daher können die XY-Komponenten nicht höher sein) M204 P900 T900 ; höchste erlaubte Gesamtbeschleunigung für Druck und Bewegung (Originalwert Snapmaker: 1000, da fängt aber der Tisch an zu wackeln...) M906 X1000 U1000 Y1400 Z1000 E800:800 I95 ; Motorströme (mA) und Faktor des Ruhestroms in Prozent TODO höhere Ruhestromabsenkung möglich? M84 S30 ; Timeout für Ruhestrom (s) ; M915 X U Y S20 F1 R2 ; Stallguard für X, U und Y TODO Wert festlegen: Snapmaker definiert den Wert als 8 bei einer Bandbreite von 0...255 beim TMC2209; der TMC2160 der Duet hat aber -64...63 ; Beispielwerte für F von X und Y in mm/s: ; F200 --> 100mm in 30s ; F1000 --> 100mm in 6,5s ; F2000 --> 100mm in 3,1s ; F3000 --> 100mm in 2,1s ; Koordinatendefinition ; Nullpunkt = Mittelpunkt des Druckbetts = Zentrum der XY-Korrekturöffnung ; M208 X-175.5 Y-101 Z0 U-151 S1 ; Achsen-Minima M208 X151 Y101 Z209 U175.5 S0 ; Achsen-Maxima - nur grobe Vorgabe für Z, korrekter Wert wird beim Bedleveling ermittelt und in der Datei z_max.g gespeichert ; Definition der I/O-Ports ; Achtung: IO_0 wird vom Flachbandkabel der PanelDue belegt, nicht nutzen! ; ; Endstops M574 X1 S1 P"io1.in" ; X-Endstop: aktiv für Signal auf "High-Level" (NC-Schalter, paßt für die Gabellichtschranke) M574 U2 S1 P"io2.in" ; U-Endstop: aktiv am oberen Ende für Signal auf "High-Level" (NC-Schalter, paßt für die Gabellichtschranke) M574 Y1 S1 P"io3.in" ; Y-Endstop: aktiv für Signal auf "High-Level" (NC-Schalter, paßt für die Gabellichtschranke) M574 Z2 S1 P"io4.in" ; Z-Endstop: aktiv am oberen Ende für Signal auf "High-Level" (NC-Schalter) ; ; Filamentsensoren ; Die Duet unterstützt keine analogen Filamensensoren! Daher müssen die Sensoren des J1 auf digitale Hallsensoren umgebaut oder z.B. ein Arduino als "Übersetzer" verwendet werden ; Werte für Umbau auf Hallsensor mit 2x12 Magneten je Sensor: M591 D0 P7 C"io5.in" L4.2 R50:150 E12.5 S0 ; Filamentsensor für Extruder 0, Impulssignal, an "io5.in", 4mm/Impuls, Toleranz 50...150%, erste 3 Pulse = 12,5mm verwerfen M591 D1 P7 C"io6.in" L4.2 R50:150 E12.5 S0 ; Filamentsensor für Extruder 1, Impulssignal, an "io6.in", 4mm/Impuls, Toleranz 50...150%, erste 3 Pulse = 12,5mm verwerfen ; gemessene Werte: TODO - nach einigen Drucken mit M591 D0 bzw. M591 D1 auslesen und anpassen! ; D0: 3.989mm/pulse, min 95%, max 131% over 143.6mm mit PETG ; 3.985mm/pulse, min 96%, max 130% over 143.6mm mit PETG ; 4.224mm/pulse, min 95%, max 128% over 143.6mm mit PETG ; ; Druckdüsen als Z-Sensoren ; Achtung, diese Werte werden von den drei Kalibriermakros temporär überschrieben! M558 P8 C"^!io7.in" H2 F150 R0.2 T720 K0 B0 ; Z-Sensor Hotend 1=binär ohne Entprellfilter, 2mm Antasthöhe, invertiert (active low)&Pulldownwiderstand aktiv, 300mm/min Meßgeschwindigkeit, 0,5s Recoveryzeit, XY-Bewegung zwischen Messungen 1800mm/min, Heizelemente an G31 K0 P500 X0 Y0 Z{-global.Druckplattendicke-2} ; Z-Sensor Hotend 1: Triggerwert, Offset und Auslösehöhe M558 P8 C"^!io8.in" H2 F150 R0.2 T720 K1 B0 ; Z-Sensor Hotend 2=binär ohne Entprellfilter, 2mm Antasthöhe, invertiert (active low)&Pulldownwiderstand aktiv, 300mm/min Meßgeschwindigkeit, 0,5s Recoveryzeit, XY-Bewegung zwischen Messungen 1800mm/min, Heizelemente an G31 K1 P500 U0 Y0 Z{-global.Druckplattendicke-2} ; Z-Sensor Hotend 2: Triggerwert, Offset und Auslösehöhe ; Hinweis: es darf nur an den Schrauben gemessen werden. Muß in bed.g definiert werden - M557 nicht verwenden! ; Bettleveling ; M671 X0:-114.5:114.5 Y86:-93:-93 S3.0 P0.5 ; Position der Einstellschrauben ; Einstellungen Heizbett (H0) ; auf PID umgestellt, Bang-Bang macht man auch beim Bett nicht mehr, produziert Z-Banding... M140 H0 ; Heizelement 0 initialisieren M307 H0 R0.155 K0.140:0.000 D5.68 E1.35 S1.00 B0 ; Heizelement 0 (Heizbett) Kalibrierungsdaten M143 H0 S110 ; Temperaturlimit für Heizelement 0 (Heizbett) = 110°C ; Einstellungen Heizelemente Hotends (H1 und H2) ; ; M307 H1 R2.186 K0.17:0.11 D5.67 S1.00 V24.0 ; Heizelement 1 (Hotend 1) alte Kalibrierungsdaten aus Marlin umgerechnet M307 H1 R2.461 K0.335:0.144 D6.09 E1.35 S1.00 B0 V23.9 ; Heizelement 1 (Hotend 1) Kalibrierungsdaten, kalibriert mit 250°C und F0.55 M143 H1 S320 ; Temperaturlimit für Heizelement 1 = 320°C M570 H1 P5 T16 ; erlaubte Temperaturabweichung erhöhen, um die bei Raumtemperatur krumme Verstärkerkennlinie abzufangen (sonst Heater Fault) ; M307 H2 R2.186 K0.17:0.11 D5.67 S1.00 V24.0 ; Heizelement 2 (Hotend 2) alte Kalibrierungsdaten aus Marlin umgerechnet M307 H2 R2.476 K0.347:0.131 D5.52 E1.35 S1.00 B0 V23.9 ; ; Heizelement 2 (Hotend 2) Kalibrierungsdaten, kalibriert mit 250°C und F0.55 M143 H2 S320 ; Temperaturlimit für Heizelement 2 = 320°C M570 H2 P5 T16 ; erlaubte Temperaturabweichung erhöhen, um die bei Raumtemperatur krumme Verstärkerkennlinie abzufangen (sonst Heater Fault) M302 P0 S160 R120 ; Limit für Extruderbewegungen: extrudieren nur ab 160°, zurückziehen nur ab 120° ; Einstellungen Lüfter ; M106 P0 S0 H-1 B0.2 L0.17 X1.0 C"Werkzeuglüfter 1" ; Lüfter 0: Startwert 0%, Steuerung via Thermosensor nicht aktiv, Blip-Dauer 0,2s, Geschwindigkeit von 17%-100% M106 P1 S0 H-1 B0.2 L0.17 X1.0 C"Werkzeuglüfter 2" ; Lüfter 1: Startwert 0%, Steuerung via Thermosensor nicht aktiv, Blip-Dauer 0,2s, Geschwindigkeit von 17%-100% M106 P2 S1.0 H1 T45 C"Hotendlüfter 1" ; Lüfter 2: Startwert 100%, Aktiviert, wenn Heizelement 1 > 45°C M106 P3 S1.0 H2 T45 C"Hotendlüfter 2" ; Lüfter 3: Startwert 100%, Aktiviert, wenn Heizelement 2 > 45°C M106 P4 H10:11 T40:60 B0.2 L0.17 X1.0 C"Elektroniklüfter" ; Lüfter 4: Aktiviert, wenn Prozessortemperatur > 40°C, läuft bei 70°C oder wenn Steppertreiber eine Überhitzungswarung ausgibt mit 100%. ; Werkzeuge (Tools) ; M563 S"Hotend 1" P0 D0 H1 F0 ; Werkzeug 0 = Extruder 0 + Heizelement 1 G10 P0 X0 Y0 Z0 ; Achsenoffsets für Werkzeug 0 M568 P0 R0 S0 ; Defaulttemperaturen Werkzeug 0 0°C (=aus) M563 S"Hotend 2" P1 D1 H2 F1 X3 ; Werkzeug 1 = Extruder 1 + Heizelement 2, X auf U gemappt G10 P1 X0 Y0 Z0 ; Achsenoffsets für Werkzeug 1 M568 P1 R0 S0 ; Defaulttemperaturen Werkzeug 1 0°C (=aus) ; M563 S"Duplizieren" P2 D0:1 H1:2 X0:3 ; Werkzeug 2 = beide Extruder, 150mm versetzt ; G10 P2 X75 U-75 Y0 Z0 ; Achsenoffsets für Werkzeug 2 ; M567 P2 E1:1 ; Extrusionsverhältnis für beide Hotends gleich ; M563 S"Spiegeln" P3 D0:1 H1:2 X0:3 ; Werkzeug 3 = Extruder 1 + Heizelement 2, X auf U gemappt und 300mm versetzt. U mit M579 U-1 invertieren, wenn das Tool aktiv ist! Homing anpassen! ; G10 P3 X75 U-75 Y0 Z0 ; Achsenoffsets für Werkzeug 3 ; M567 P3 E1:1 ; Extrusionsverhältnis für beide Hotends gleich ; LEDs ; M42 P9 S0.5 ; LED-Streifen auf 50% ; Geschwindigkeitsverbesserndes Voodoo (Input Shaping, Pressure Advance etc.) ; Empfehlung: erst Input shaping justieren, dann Pressure Advance, dann Retraction! ; ; testweise Input Shaping deaktiviert M593 P"zvddd" F58 D0.1 L0.25 ; Input Shaping bei 58Hz, Dämpfungsfaktor 0,1 - TODO testen, ob ei2 oder zvddd besser ist. Dem Sensor nach sind beide ziemlich gleichauf ; M593 P"ei2" F58 D0.1 L0.03 ; Input Shaping bei 58Hz, Dämpfungsfaktor 0,1 M572 D0:1 S0.05 ; Pressure Advance. Originalwert 0,02 war klar zu niedrig... M309 P0 S0.035 ; Hotend 1 Feedforward-Wert M309 P1 S0.035 ; Hotend 2 Feedforward-Wert ; Retractwerte (M207) siehe Filamente! ; Netzwerk - WLAN-Modul ans Ende setzen wegen Timing-Bug... ; M550 P"Duplimatix" ; Maschinenname M552 I0 S0 ; Ethernetanschluß deaktiviert M586 P0 S1 ; HTTP-Server aktiv M586 P1 S0 ; FTP deaktiviert M586 P2 S0 ; Telnet deaktiviert M552 I1 S1 ; WLAN-Modul aktiv ; Sonstiges ; T0 ; Erstes Werkzeug bei Start ausgewählt M42 P9 S0.25 ; LED-Streifen dimmen M98 P"Korrekturwert_z_max.g" ; korrigiertes Z_Max einlesen M98 P"Korrekturwert_xy_offset_tool1.g" ; XY-Offset Hotend 2 einlesen M207 P0 S1.5 R0 F2400 T2400 ; Default-Retractwerte Hotend 1: 1,5mm und 40mm/s M207 P1 S1.5 R0 F2400 T2400 ; Default-Retractwerte Hotend 2; 1,5mm und 40mm/s M911 S21.5 R23.5 P"M913 X0 U0 Y0 Z1 E0:0 G91 M83 G1 Z1 F1000" ; Bei Spannungsausfall Zustand sichern, dann X, U und Y aus und Z 1mm absenken
[message split due to the 2000 character limit here]
-
@dc42 [2nd part of message]
And here is the M122 readout, taken about a mm (6..7 layers) after the layer shift occurred:
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.2+ (2024-01-15 11:56:21) running on Duet 3 MB6HC v1.02 or later (standalone mode) Board ID: 08DJM-956BA-NA3TN-6JTDL-3SN6L-998UU Used output buffers: 7 of 40 (34 max) === RTOS === Static ram: 155184 Dynamic ram: 123028 of which 0 recycled Never used RAM 64156, free system stack 122 words Tasks: NETWORK(2,nWait 7,15.4%,228) HEAT(3,nWait 1,0.0%,321) Move(4,nWait 6,2.7%,214) CanReceiv(6,nWait 1,0.0%,940) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,334) TMC(4,nWait 6,9.9%,56) MAIN(1,running,71.5%,103) IDLE(0,ready,0.4%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 01:16:09 ago, cause: software Last software reset at 2024-01-19 23:05, reason: User, Gcodes spinning, available RAM 64316, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 45.6, current 47.3, max 47.6 Supply voltage: min 23.6, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.3, max 12.7, under voltage events: 0 Heap OK, handles allocated/used 99/3, heap memory allocated/used/recyclable 2048/1420/1368, gc cycles 13 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, mspos 216, reads 27266, writes 28 timeouts 0 Driver 1: ok, SG min 0, mspos 453, reads 27266, writes 28 timeouts 0 Driver 2: standstill, SG min 0, mspos 984, reads 27271, writes 23 timeouts 0 Driver 3: ok, SG min 0, mspos 794, reads 27268, writes 26 timeouts 0 Driver 4: ok, SG min 0, mspos 306, reads 27275, writes 19 timeouts 0 Driver 5: standstill, SG min 0, mspos 714, reads 27276, writes 19 timeouts 0 Date/time: 2024-01-20 00:21:28 Slowest loop: 212.54ms; fastest: 0.05ms === Storage === Free file entries: 17 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 4.6ms, write time 2.8ms, max retries 0 === Move === DMs created 125, segments created 32, maxWait 119504ms, bed compensation in use: none, height map offset 0.000, max steps late 1, ebfmin -1.00, ebfmax 1.00 next step interrupt due in 326 ticks, disabled Moves shaped first try 21, on retry 2279, too short 16527, wrong shape 66349, maybepossible 10398 === DDARing 0 === Scheduled moves 139469, completed 139424, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.3 Heater 2 is on, I-accum = 0.4 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 3 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 doing "G4 S10" in state(s) 0 0, running macro Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0, sync state 1 Queue2 is idle in state(s) 0 Q0 segments left 10, axes/extruders owned 0x4000000e Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 50750242 clear 353671 Extruder 0 sensor: ok Extruder 1 sensor: ok === CAN === Messages queued 41120, received 0, lost 0, errs 21703023, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 22850/0/0 Tx timeouts 0,0,22849,0,0,18269 last cancelled message type 30 dest 127 === Network === Slowest loop: 103.88ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(0) HTTP(2) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = Interface state: disabled Error counts: 0 0 0 0 0 0 Socket states: 0 0 0 0 0 0 0 0 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1beta6 MAC address 70:04:1d:be:ad:b8 Module reset reason: Power up, Vcc 0.00, flash size 4194304, free heap 221836 WiFi IP address 192.168.178.31 Signal strength -62dBm, channel 2, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0
The layer shift (in y axis direction) occurred at 5.5 or 5.65mm height. It might be worth to point out though that while I got a layer shift of several millimeters with rc1, now it is only some tenths of a millimeter.
Luckily, I sat directly at the printer and watched it while that happened. One thing is worth noting:
I got an audible low-frequency-"bang" from the printer twice around this height and the whole table (which is a solid 40kg wood plate mounted on electric frame) was shaking - something it only does if the y axis does some really hefty acceleration or deceleration. One of these "bangs" created the small layer shift. The printer was printing one of the inner perimeters of the outside surface of the print and did not cross any perimeters or holes in the structure at the time.
Please note no protruding material or such was there that might have blocked the nozzle, and the noise was also quite different from when that happens - such a print error usually creates more of a"rumbling" noise on my printer, with a higher-pitched "klack" or rattling noise if the motor looses one or more steps that it wants to make.
If I would have to conclude what might have created that noise, I would say the Y axis got... well... delayed and had to hurry to catch up, if that does make any sense... -
@NeoDue you need to switch to spreadcycle to avoid the bangs which happens when stealth chop switches modes, change M569 to use D2 rather than D3.
-
@oliof Thanks, but a bang that happens only with Input shaping active has nothing to do with StealthChop unless I overlook something serious. Apart from that, I already had this problem and had solved it - take a look at the additional V parameter in my config.g, that switch you mention never happens
I rather fathom if dc42 can find why I have such an amount of CAN errors (without actually using CAN for anything, probably apart from internal Duet communication...?) the problem might vanish.
-
@NeoDue if the switch never happens you reduce the attainable torque of your motors. You really want spreadcycle for faster motion.
-
@NeoDue said in 3.5.0rc1: Input shaping causes layer shifts!?:
@oliof Thanks, but a bang that happens only with Input shaping active has nothing to do with StealthChop unless I overlook something serious. Apart from that, I already had this problem and had solved it - take a look at the additional V parameter in my config.g, that switch you mention never happens
I think it would be worth running a test to be sure. Do you still get the layer shift if you run the same print with the motors in Spreadcycle? If not that might help us determine what is causing the layer shift. It may be that something in the way the IS pulses are generated is triggering a mode switch.
-
@oliof Well, I simply copied the behaviour of the original Snapmaker Marlin board there which probably means they chose the motors accordingly, and I do not have any issues obviously resulting from lacking motor torque. On the contrary - the printer is very well capable of getting the nozzle over significant buildups in the currnet configuration which makes me more fear for the linear bearings
Therefore I do not see any need for Spreadcycle. The only thing that does is making the printer noisy, at least for the speeds I am running at.
But you are right: the basic noise did sound like the "StealthChop -->SpreadCycle-Bang".@gloomyandy I will test that. One more thing: I did a second print over night, and is seems the layer shift does not occur as reliable as it did with rc1. Therefore I will rather focus on whether the "bang" will occur or not since that seems to be an indication of the primary fault which then may cause the shift, okay?
-
@gloomyandy I just ran the test with every "M69...D3..." in the above config replaced with an "M569... D2...", and I got a layer shift of about 1,5mm in x direction at 2.8mm height. Here is the M122 message:
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.2+ (2024-01-15 11:56:21) running on Duet 3 MB6HC v1.02 or later (standalone mode) Board ID: 08DJM-956BA-NA3TN-6JTDL-3SN6L-998UU Used output buffers: 13 of 40 (33 max) === RTOS === Static ram: 155184 Dynamic ram: 122892 of which 0 recycled Never used RAM 64436, free system stack 134 words Tasks: NETWORK(2,nWait 7,15.8%,172) HEAT(3,nWait 1,0.0%,321) Move(4,nWait 6,2.7%,218) CanReceiv(6,nWait 1,0.0%,940) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,334) TMC(4,nWait 6,9.8%,56) MAIN(1,running,71.0%,103) IDLE(0,ready,0.6%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:35:43 ago, cause: software Last software reset at 2024-01-20 17:07, reason: User, Gcodes spinning, available RAM 65188, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 41.9, current 46.2, max 46.4 Supply voltage: min 23.6, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.3, max 12.6, under voltage events: 0 Heap OK, handles allocated/used 99/3, heap memory allocated/used/recyclable 2048/848/796, gc cycles 6 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, mspos 968, reads 34287, writes 32 timeouts 0 Driver 1: standstill, SG min 0, mspos 232, reads 34287, writes 32 timeouts 0 Driver 2: ok, SG min 0, mspos 344, reads 34296, writes 23 timeouts 0 Driver 3: standstill, SG min 0, mspos 904, reads 34294, writes 26 timeouts 0 Driver 4: standstill, SG min 0, mspos 750, reads 34301, writes 19 timeouts 0 Driver 5: ok, SG min 0, mspos 630, reads 34301, writes 19 timeouts 0 Date/time: 2024-01-20 17:43:20 Slowest loop: 210.67ms; fastest: 0.05ms === Storage === Free file entries: 18 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 4.4ms, write time 2.8ms, max retries 0 === Move === DMs created 125, segments created 26, maxWait 147856ms, bed compensation in use: none, height map offset 0.000, max steps late 1, ebfmin -1.00, ebfmax 1.00 next step interrupt due in 19 ticks, disabled Moves shaped first try 8, on retry 806, too short 4137, wrong shape 32361, maybepossible 2891 === DDARing 0 === Scheduled moves 65368, completed 65308, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.3 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 3 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 File2 is idle in state(s) 0, sync state 1 Queue2 is idle in state(s) 0 Q0 segments left 1, axes/extruders owned 0x80000007 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 23485446 clear 403402 Extruder 0 sensor: ok Extruder 1 sensor: ok === CAN === Messages queued 19281, received 0, lost 0, errs 10170873, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 10717/0/0 Tx timeouts 0,0,10716,0,0,8563 last cancelled message type 30 dest 127 === Network === Slowest loop: 203.98ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = Interface state: disabled Error counts: 0 0 0 0 0 0 Socket states: 0 0 0 0 0 0 0 0 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1beta6 MAC address 70:04:1d:be:ad:b8 Module reset reason: Power up, Vcc 0.00, flash size 4194304, free heap 225180 WiFi IP address 192.168.178.31 Signal strength -63dBm, channel 2, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0
I will let the print run on until it reaches the height where got issues before and add the result to this post.
Edit:
a second layer shift occurred as expected - same height and same direction (y) as in the test above, again with a "bang" (which did however sound more silent as when I use StealthChop.
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.2+ (2024-01-15 11:56:21) running on Duet 3 MB6HC v1.02 or later (standalone mode) Board ID: 08DJM-956BA-NA3TN-6JTDL-3SN6L-998UU Used output buffers: 13 of 40 (40 max) === RTOS === Static ram: 155184 Dynamic ram: 122892 of which 0 recycled Never used RAM 64292, free system stack 134 words Tasks: NETWORK(2,nWait 7,15.4%,172) HEAT(3,nWait 1,0.0%,321) Move(4,nWait 6,2.6%,214) CanReceiv(6,nWait 1,0.0%,940) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,334) TMC(4,nWait 6,10.0%,56) MAIN(1,running,71.7%,103) IDLE(0,ready,0.2%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 01:17:48 ago, cause: software Last software reset at 2024-01-20 17:07, reason: User, Gcodes spinning, available RAM 65188, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x04 Aux0 errors 0,0,0 MCU temperature: min 46.1, current 47.2, max 47.5 Supply voltage: min 23.6, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.3, max 12.7, under voltage events: 0 Heap OK, handles allocated/used 99/3, heap memory allocated/used/recyclable 2048/1900/1848, gc cycles 13 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, mspos 200, reads 7160, writes 0 timeouts 0 Driver 1: ok, SG min 0, mspos 248, reads 7160, writes 0 timeouts 0 Driver 2: standstill, SG min 0, mspos 856, reads 7159, writes 0 timeouts 0 Driver 3: ok, SG min 0, mspos 155, reads 7160, writes 0 timeouts 0 Driver 4: ok, SG min 0, mspos 558, reads 7160, writes 0 timeouts 0 Driver 5: standstill, SG min 0, mspos 150, reads 7160, writes 0 timeouts 0 Date/time: 2024-01-20 18:25:25 Slowest loop: 5.71ms; fastest: 0.07ms === Storage === Free file entries: 18 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 4.2ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 32, maxWait 8579ms, bed compensation in use: none, height map offset 0.000, max steps late 1, ebfmin -1.00, ebfmax 1.00 next step interrupt due in 65 ticks, disabled Moves shaped first try 11, on retry 1436, too short 12206, wrong shape 33206, maybepossible 7359 === DDARing 0 === Scheduled moves 137991, completed 137931, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.3 Heater 2 is on, I-accum = 0.4 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is doing "G1 X-14.075 Y-6.155 E.00556" 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 File2 is idle in state(s) 0, sync state 1 Queue2 is idle in state(s) 0 Q0 segments left 1, axes/extruders owned 0x4000000e Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 51690012 clear 403402 Extruder 0 sensor: ok Extruder 1 sensor: ok === CAN === Messages queued 22723, received 0, lost 0, errs 11996865, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 12624/0/0 Tx timeouts 0,0,12624,0,0,10099 last cancelled message type 30 dest 127 === Network === Slowest loop: 20.30ms; fastest: 0.07ms Responder states: MQTT(0) HTTP(2) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = Interface state: disabled Error counts: 0 0 0 0 0 0 Socket states: 0 0 0 0 0 0 0 0 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1beta6 MAC address 70:04:1d:be:ad:b8 Module reset reason: Power up, Vcc 0.00, flash size 4194304, free heap 220964 WiFi IP address 192.168.178.31 Signal strength -60dBm, channel 2, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 5 0 0 0 0 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0
(edit: corrected height of 1st layer shift)
(2nd edit: I just saw that I did two additional smaller layer shifts in Y between the two that are mentioned in this post, so there are four in total)