Hey folks, I've got an issue that looks eerily similar to this one. In a nutshell, a series of small contiguous line segments (like the hull of a Benchy) cause the printer head's XY motion to "stutter" as it travels through those moves. For slow speeds, this manifests as blobs. For faster speeds, this looks like smaller blobs but can also look like weird discolorations (testing on a somewhat translucent filament).
I've tried:
- running prints with XY Jerk cranked up to 3000 mm/sec
- running prints with the firmware on 3.3 on both the 6HC and 3HC expansion
but the problem persists, and I can visually observe the print head stuttering (and hear motion slow down too) during these sorts of moves.
My setup is:
- 1x Duet 6HC Mainboard + 1x Raspberry Pi 4 (SBC Mode) connecting to XYZZZU motor outputs on a Jubilee
- 1x 3HC Expansion board connected to an Orbiter Extruder and copper E3D V6 Hotend
Diagnostic outputs for firmware versions are:
M122 B0
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode)
Board ID: 08DJM-956L2-G43S4-6J1FG-3SJ6L-KB6UG
Used output buffers: 1 of 40 (15 max)
=== RTOS ===
Static ram: 150904
Dynamic ram: 61808 of which 456 recycled
Never used RAM 141024, free system stack 202 words
Tasks: SBC(ready,5.0%,328) HEAT(delaying,0.0%,331) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,799) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.2%,93) MAIN(running,87.8%,922) IDLE(ready,0.0%,29), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:01:40 ago, cause: power up
Last software reset at 2021-08-23 12:37, reason: User, none spinning, available RAM 138136, slot 0
Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0440f000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
Step timer max interval 155
MCU temperature: min 36.2, current 36.5, max 36.5
Supply voltage: min 24.0, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Driver 0: position 0, standstill, reads 17703, writes 0 timeouts 0, SG min/max not available
Driver 1: position 0, standstill, reads 17701, writes 0 timeouts 0, SG min/max not available
Driver 2: position 0, standstill, reads 17701, writes 0 timeouts 0, SG min/max not available
Driver 3: position 0, standstill, reads 17701, writes 0 timeouts 0, SG min/max not available
Driver 4: position 0, standstill, reads 17702, writes 0 timeouts 0, SG min/max not available
Driver 5: position 0, standstill, reads 17702, writes 0 timeouts 0, SG min/max not available
Date/time: 2021-08-30 19:18:23
Slowest loop: 0.29ms; fastest: 0.04ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed moves 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, chamberHeaters = -1 -1 -1 -1
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP* is doing "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
Code queue is empty.
=== CAN ===
Messages queued 27, received 39, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 4, free buffers 49 (min 49), ts 15/15/0
Tx timeouts 0,0,0,0,0,0
=== SBC interface ===
State: 4, failed transfers: 1, checksum errors: 0
Last transfer: 1ms ago
RX/TX seq numbers: 2755/2755
SPI underruns 0, overruns 0
Disconnects: 0, timeouts: 0, IAP RAM available 0x2c810
Buffer RX/TX: 0/0-0
=== Duet Control Server ===
Duet Control Server v3.3.0
Code buffer space: 4096
Configured SPI speed: 8000000Hz
Full transfers per second: 36.08, max wait times: 18.2ms/0.0ms
Codes per second: 0.31
Maximum length of RX/TX data transfers: 3592/868
on the mainboard and
M122 B1
Diagnostics for board 1:
Duet EXP3HC firmware version 3.3 (2021-06-15 16:12:41)
Bootloader ID: not available
Never used RAM 158696, free system stack 4400 words
Tasks: Move(notifyWait,0.0%,160) HEAT(delaying,0.0%,104) CanAsync(notifyWait,0.0%,69) CanRecv(notifyWait,0.0%,82) CanClock(notifyWait,0.0%,71) TMC(notifyWait,7.3%,63) MAIN(running,91.4%,338) IDLE(ready,0.0%,39) AIN(delaying,1.3%,263), total 100.0%
Last reset 00:01:41 ago, cause: software
Last software reset data not available
Driver 0: position 0, 420.0 steps/mm, standstill, reads 63628, writes 15 timeouts 0, SG min/max 0/0, steps req 0 done 0
Driver 1: position 0, 80.0 steps/mm, standstill, reads 63633, writes 11 timeouts 0, SG min/max 0/0, steps req 0 done 0
Driver 2: position 0, 80.0 steps/mm, standstill, reads 63633, writes 11 timeouts 0, SG min/max 0/0, steps req 0 done 0
Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
Peak sync jitter 0/13, peak Rx sync delay 178, resyncs 0/0, no step interrupt scheduled
VIN: 24.3V, V12: 12.2V
MCU temperature: min 30.2C, current 31.4C, max 31.7C
Ticks since heat task active 141, ADC conversions started 101669, completed 101668, timed out 0, errs 0
Last sensors broadcast 0x00000002 found 1 146 ticks ago, loop time 0
CAN messages queued 947, send timeouts 0, received 832, lost 0, free buffers 37, min 37, error reg 110000
dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0
on the 3HC expansion board.
Finally, I should mention that this setup prints some good-looking small parts with simple geometry like XYZ calibration cubes.
If anyone has any suggestions, I'm happy to give them a go. Cheers, and thanks!