Bug on 3.6.0? Layershifts & stuttering on arc travel moves
-
Hello,
I had the problem that with activated option of "avoid perimeter" in orca and prusa slicer to see layershifts and suttering movements on arc travel moves. e.g. avoidung holes. My guess is a firmware bug. Anyone else have this problem?
Best Regards
Cai -
@CaiJonas please share the GCode that the slicer generated for those travel moves.
-
-
@CaiJonas thanks for your example. Do you know whether firmware 3.5.4 exhibits the same behaviour?
-
@CaiJonas Can you also post your config.g, and the response to M122, please. If you're using toolboards, please send M122 B#, where # is the CAN address of the toolboard.
Ian
-
@dc42 as I can remember it was not the case before 3.6 but not 100% shure. If needed I can downgrade but I'm also not shure if the SZP will work with 3.5.4?
-
@droftarts hope it's fine like the following
m122
=== Diagnostics ===
RepRapFirmware for Duet 3 Mini 5+ version 3.6.0-rc.2 (2025-03-31 12:16:33) running on Duet 3 Mini5plus WiFi (standalone mode)
Board ID: 8S6FD-V096U-D65J0-40KM0-4V03Z-RNJHW
Used output buffers: 3 of 40 (30 max)
=== RTOS ===
Static ram: 94764
Dynamic ram: 95664 of which 0 recycled
Never used RAM 51040, free system stack 198 words
Tasks: NETWORK(2,nWait 7,14.0%,207) LASER(5,nWait 7,0.0%,235) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.0%,353) TMC(4,delaying,0.8%,99) CanReceiv(6,nWait 1,0.0%,794) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,348) MAIN(1,running,84.1%,661) IDLE(0,ready,0.2%,29) USBD(3,blocked,0.0%,147) AIN(4,delaying,0.8%,255), total 100.0%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 00:04:33 ago, cause: software
Last software reset at 2025-04-08 14:43, reason: User, Gcodes spinning, available RAM 40716, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00489000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
=== Storage ===
Free file entries: 20
SD card 0 detected, interface speed: 22.5MBytes/sec
SD card longest read time 3.7ms, write time 0.0ms, max retries 0
=== Move ===
Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00
Pos req/act/dcf: 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00
No step interrupt scheduled
Driver 0: standstill, SG min 8, r/w errs 0/1, ifcnt 46, reads/writes 14381/13, timeouts 0, DMA errs 0, CC errs 0
Driver 1: standstill, SG min 160, r/w errs 0/1, ifcnt 173, reads/writes 14379/15, timeouts 0, DMA errs 0, CC errs 0
Driver 2: standstill, SG min 14, r/w errs 0/1, ifcnt 171, reads/writes 14379/15, timeouts 0, DMA errs 0, CC errs 0
Driver 3: standstill, SG min 2, r/w errs 0/1, ifcnt 46, reads/writes 14380/13, timeouts 1, DMA errs 0, CC errs 0, failedOp 0x71
Driver 4: standstill, SG min 0, r/w errs 0/1, ifcnt 46, reads/writes 14381/13, timeouts 0, DMA errs 0, CC errs 0
Driver 5: not present
Driver 6: not present
=== DDARing 0 ===
Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x00000803, drives owned 0x00000803
Code queue is empty
=== DDARing 1 ===
Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000
Code queue is empty
=== Heat ===
Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
Heater 0 is on, I-accum = 0.6
Heater 1 is on, I-accum = 0.2
=== 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) 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
Queue2 is idle in state(s) 0
=== CAN ===
Messages queued 2398, received 2196, lost 0, ignored 0, errs 1, boc 0
Longest wait 2ms for reply type 6031, peak Tx sync delay 387, free buffers 26 (min 25), ts 1298/1297/0
Tx timeouts 0,0,0,0,0,0
=== Network ===
Slowest loop: 30.42ms; fastest: 0.00ms
Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 2 of 8
=== WiFi ===
Interface state: active
Module is connected to access point
Failed messages: pending 0, notrdy 0, noresp 0
Firmware version 2.2.1
Module reset reason: Power up, Vcc 3.39, flash size 2097152, free heap 39380
MAC address *************
IP address ************
Signal strength -65dBm, channel 6, mode 802.11n, reconnections 0
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0M122 B0
=== Diagnostics ===
RepRapFirmware for Duet 3 Mini 5+ version 3.6.0-rc.2 (2025-03-31 12:16:33) running on Duet 3 Mini5plus WiFi (standalone mode)
Board ID: 8S6FD-V096U-D65J0-40KM0-4V03Z-RNJHW
Used output buffers: 1 of 40 (32 max)
=== RTOS ===
Static ram: 94764
Dynamic ram: 95664 of which 0 recycled
Never used RAM 51040, free system stack 198 words
Tasks: NETWORK(2,ready,20.2%,207) LASER(5,nWait 7,0.0%,235) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.0%,353) TMC(4,nWait 6,0.8%,99) CanReceiv(6,nWait 1,0.0%,794) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,348) MAIN(2,running,76.0%,661) IDLE(0,ready,2.1%,29) USBD(3,blocked,0.0%,147) AIN(4,delaying,0.8%,255), total 100.0%
Owned mutexes: WiFi(NETWORK) HTTP(MAIN)
=== Platform ===
Last reset 00:05:47 ago, cause: software
Last software reset at 2025-04-08 14:43, reason: User, Gcodes spinning, available RAM 40716, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00489000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
=== Storage ===
Free file entries: 20
SD card 0 detected, interface speed: 22.5MBytes/sec
SD card longest read time 3.4ms, write time 0.0ms, max retries 0
=== Move ===
Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00
Pos req/act/dcf: 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00
No step interrupt scheduled
Driver 0: standstill, SG min 8, r/w errs 0/0, ifcnt 46, reads/writes 927/0, timeouts 0, DMA errs 0, CC errs 0
Driver 1: standstill, SG min 160, r/w errs 0/0, ifcnt 173, reads/writes 927/0, timeouts 0, DMA errs 0, CC errs 0
Driver 2: standstill, SG min 14, r/w errs 0/0, ifcnt 171, reads/writes 927/0, timeouts 0, DMA errs 0, CC errs 0
Driver 3: standstill, SG min 2, r/w errs 0/0, ifcnt 46, reads/writes 927/0, timeouts 0, DMA errs 0, CC errs 0
Driver 4: standstill, SG min 0, r/w errs 0/0, ifcnt 46, reads/writes 927/0, timeouts 0, DMA errs 0, CC errs 0
Driver 5: not present
Driver 6: not present
=== DDARing 0 ===
Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x00000803, drives owned 0x00000803
Code queue is empty
=== DDARing 1 ===
Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000
Code queue is empty
=== Heat ===
Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
Heater 0 is on, I-accum = 0.5
Heater 1 is on, I-accum = 0.2
=== GCodes ===
Movement locks held by null, null
HTTP is ready with "M122 B0" in state(s) 0
Telnet is idle in state(s) 0
File is idle 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
Queue2 is idle in state(s) 0
=== CAN ===
Messages queued 155, received 142, lost 0, ignored 0, errs 0, boc 0
Longest wait 0ms for reply type 0, peak Tx sync delay 6, free buffers 26 (min 25), ts 83/83/0
Tx timeouts 0,0,0,0,0,0
=== Network ===
Slowest loop: 21.25ms; fastest: 0.08ms
Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 2 of 8
=== WiFi ===
Interface state: active
Module is connected to access point
Failed messages: pending 0, notrdy 0, noresp 0
Firmware version 2.2.1
Module reset reason: Power up, Vcc 3.39, flash size 2097152, free heap 39168
MAC address *************
IP address ************
Signal strength -65dBm, channel 6, mode 802.11n, reconnections 0
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0 -
@CaiJonas the SZP doesn't work with 3.5.4.
-
@dc42 ok, then I can't roll back, sorry
-
@CaiJonas the stuttering movements appear to be a feature of the moves generated. They are not arc moves, they are a sequence of line segments. Here's an example from line 2270 of your example file:
G1 X60.133 Y46.575 E.6074 ; perimeter G1 E-.5 F3000 ; retract G1 X60.509 Y46.911 F18000 G1 X75.371 Y60.871 ; move to first infill point G1 X75.561 Y61.029 ; move to first infill point G1 X75.728 Y61.145 ; move to first infill point G1 X79.425 Y63.53 ; move to first infill point G1 X79.396 Y63.585 ; move to first infill point G1 X78.911 Y63.328 ; move to first infill point G1 E.5 F3000 ; ; unretract ;TYPE:Internal solid infill ;WIDTH:0.420424 G1 F12000 M106 S81 ; enable fan G1 X77.989 Y64.25 E.0389 ; infill
The commanded speed is F18000 but RRF can't maintain that speed at the boundaries between moves because the direction changes between the moves would cause the jerk limit to be exceeded. So RRF reduces the speed at the boundary to a value that doesn't cause the jerk limit to be exceeded.
It's possible that you are getting movement queue underruns, which would contribute to the jerky movement. The M122 report you published doesn't show any, but perhaps you didn't run M122 after a print.
If you are getting layer shifts then it's likely that you have the maximum speed or acceleration or jerk set higher than the motor can handle at the current you are using. You can try increasing XY motor currents, if the motor rated current allows. This won't help if the speed is high enough for the torque to start reducing. You can use the calculator at https://www.reprapfirmware.org/emf.html to estimate that speed.