Layer Shifts with Duet3
Unfortunately, I currently have the problem that I keep having layer shifts with my Duet3 setup for larger print jobs.
The mechanical structure is very stable and runs very smoothly!
So I also rule out a mechanical cause here.
In addition to this, we have already operated many printers with this mechanical structure with Duet2 Wifi and so far we haven't had the problem.
The layer shift mostly occurs on the X-axis.
I also had the suspicion that the nozzle stuck in one place during printing and that this caused the layer shift. But to be honest, the motor must have enough power to prevent this from happening!
I set the drives to spread cycle in the hope that they would have more power.
To the technical data of the printer:
Board: Duet 3 with HC3
Firmware: FIRMWARE_VERSION: 3.2-beta1
Motors: NanoTec Nema 17 at X-Axis Nema 23 at Y-Axis
The config is here:
; Configuration file for Duet 3 (firmware version 3) ; General preferences G90 ; send absolute coordinates... M82 ; and absolute extruder moves M550 P"I555" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 D2 ; physical drive 0.0 goes forwards Z0 M569 P0.1 S1 D2 ; physical drive 0.1 goes forwards Z1 M569 P0.2 S1 D2 ; physical drive 0.2 goes forwards Z2 M569 P0.4 S0 D2 ; physical drive 0.4 goes backwards E0 M569 P1.0 S0 D2 ; physical drive 0.3 goes forwards X0 M569 P1.1 S0 ; physical drive 1.0 goes forwards Y0 M569 P1.2 S1 ; physical drive 1.0 goes forwards Y1 ;New Mapping M584 X1.0 Y1.1:1.2 Z0.0:0.1:0.2 E0.4 ; set drive mapping ;Leadscrews Z-Axis ;M671 X711:315:-88 Y15:585:15 S10 ; leadscrews at each corner M350 X16 Y16 U16 Z16 E16 I1 ; configure microstepping M92 X80.40 Y35.56 Z1600 E413 ;set steps per mm ;CR-3D Settings M566 X500 Y500 Z10 E2000 ; Set maximum instantaneous speed changes (mm/min) M203 X50000 Y50000 Z1200 E5000 ; Set maximum speeds (mm/min) M201 X1200 Y1200 Z400 E2500 ; Set accelerations (mm/s^2) M906 X1500 Y2500 Z1500 E1000 I30 ;set motor currents (mA) M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X580 Y515 Z500 S0 ; set axis maxima ; Endstops M574 X2 S1 P"!io0.in" ; active-high endstop for low end on X via pin io0.in M574 Y2 S1 P"!1.io5.in" ; active-high endstop for high end on Y via pin 1.io2.in M574 Z1 S2 ; Z-Probe M558 K0 P8 C"^!io2.in" H5 F300 T8000 A3 S0.07; Z probe type -> Induktiv M557 X60:530 Y35:470 P06:06 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 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 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M308 S2 P"temp2" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin temp2 M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Fans M950 F0 C"out4" ; create fan 2 on pin out4 and set its frequency M106 P0 S0 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F1 C"out5" ; create fan 3 on pin out5 and set its frequency M106 P1 S1 H2:1 T50 ; set fan 3 value. Thermostatic control is turned off M950 F6 C"out6" M106 P6 S0 ; Tools M563 P0 S"Links" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 S210 R210 ; set tool 0 axis offsets M563 P1 S"Rechts" D1 H2 X3 F0 ; define tool 1 G10 P1 Y0 U0 Z0 S210 R210 ; set tool 1 axis offsets M501 ; load saved parameters from non-volatile memory M98 P"startup_temperature.g" M98 P"LEDtouequise.g" M570 H1 P8 T25 S200 ;Configurate Heater Fault Detection M570 H2 P8 T25 S200 ;Configurate Heater Fault Detection M572 D0 S0.09 ;M593 F25
Why do the drives have so little power that they immediately have a layer shift as soon as the resistance is too great?
What am I doing wrong in the settings?
I hope someone can help me...
Regards Chrisitan (CR-3D)
PCR last edited by PCR
first of all. Love your work Greetings from Berlin
2nd. Can you post your M122?
And the output M98 P"config.g"?
And the output of M569 P1.0
What current rating does the nema 17 has?
JoergS5 last edited by JoergS5
X is on the 3HC board, so the M122 B... is valuable also.
M350 uses U, but U is not defined. Same with Tool1 offset which uses U.
Veti last edited by
M569 P1.1 S0 ; physical drive 1.0 goes forwards Y0
M569 P1.2 S1 ; physical drive 1.0 goes forwards Y1
you have enabled spreadcycle for other drivers but not y?
@PCR thank you
Here is the M122:
I555 M115 B1 Status Idle Mode: FFF Tool Position X 0.0 Y 0.0 Z 0.00 Extruder Drives Drive 0 0.0 Speeds Requested Speed 0 mm/s Top Speed 0 mm/s Sensors Vin 23.7 V V12 12.2 V MCU Temperature 34.8 C Z-Probe 0 Tools Extra Control All Tool Heater Current Active Standby Links T0 - Load Filament Heater 1 standby 210.0 C 210 210 Bed Heater 0 off 25.1 C 0 0 Temperature Chart m122 25.11.2020, 12:07:25 m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.2-beta1 running on Duet 3 MB6HC v1.01 or later (standalone mode) Board ID: 08DJM-956L2-G43S4-6J9F0-3SD6S-9U56D Used output buffers: 2 of 40 (12 max) === RTOS === Static ram: 154820 Dynamic ram: 165960 of which 236 recycled Exception stack ram used: 320 Never used ram: 71880 Tasks: NETWORK(ready,142) ETHERNET(blocked,110) HEAT(blocked,278) CanReceiv(blocked,865) CanSender(blocked,372) CanClock(blocked,352) TMC(blocked,52) MAIN(running,1122) IDLE(ready,19) Owned mutexes: === Platform === Last reset 03:48:29 ago, cause: software Last software reset at 2020-11-25 08:18, reason: User, GCodes spinning, available RAM 71688, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN Error status: 0x020 MCU temperature: min 33.7, current 34.8, max 36.0 Supply voltage: min 23.5, current 23.6, max 23.7, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.2, current 12.3, max 12.3, under voltage events: 0 Driver 0: position 0, standstill, reads 3319, writes 15 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 3319, writes 15 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 3320, writes 15 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 3324, writes 11 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 3321, writes 15 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 3325, writes 11 timeouts 0, SG min/max 0/0 Date/time: 2020-11-25 12:07:23 Slowest loop: 10.79ms; fastest: 0.22ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.6ms, write time 2.8ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === AuxDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 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 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 Code queue is empty. === Network === Slowest loop: 37.81ms; fastest: 0.03ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 1 of 8 - Ethernet - State: active Error counts: 0 0 0 0 0 Socket states: 5 2 2 2 2 0 0 0 === CAN === Messages sent 54857, send timeouts 54857, longest wait 3ms for type 6024, free CAN buffers 48
Here is the M122 B1
m122 B1 Diagnostics for board 1: Board EXP3HC firmware 3.2beta (2020-09-14b1) Never used RAM 150.1Kb, max stack 320b HEAT 314 CanAsync 367 CanRecv 357 TMC 63 MAIN 294 AIN 258 Last reset 03:49:43 ago, cause: software Last software reset data not available Driver 0: position 0, standstill, reads 7430, writes 15 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 7433, writes 14 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 7434, writes 14 timeouts 0, SG min/max 0/0 Moves scheduled 0, completed 0, in progress 0, hiccups 0 No step interrupt scheduled VIN: 23.7V, V12: 12.2V MCU temperature: min 42.4C, current 42.7C, max 42.9C Ticks since heat task active 89, ADC conversions started 13783080, completed 13783080, timed out 0 Last sensors broadcast 00000000 found 0 93 ticks ago Free CAN buffers: 36, messages lost 0, duplicates 0, oos 0 NVM user row de9a9239 aeecffb1 ffffffff ffffffff
@JoergS5 you are right with the U-Axis, because this was the main firmware of my idex machine... but I think this would not cause an layershift at X, or?
Yes you are right, for the Y-Axis with the NEMA 23 I had no problems at the moment...but I can also change this...
I attached the datasheet of the NanoTec Motor here:
I changed the motor current a few times... now it is a little bit higher...
JoergS5 last edited by
I think this would not cause an layershift at X, or?
I am not sure, if you have tool changes somewhere and U is undefined. I just want to exclude possible reasons.
Veti last edited by
Board EXP3HC firmware 3.2beta (2020-09-14b1)
can you update to the latest beta? just to rule out a problem with the beta firmware.
Now I updatet the firmware of the main and expansion board to 3.2 beta 3.2
And get this error message:
Board 1 does not have input handle 1100
@dc42 do you know this issue?
Board 1 does not have input handle 1100
@dc42 do you know this issue?
That can happen after you update tool or expansion board firmware if you do not reset the main board afterwards, so that config.g is run and sets up whatever heaters etc. you have configured on the expansion boards.
I've just released firmware 3.2beta4 at https://github.com/Duet3D/RepRapFirmware/releases/tag/3.2beta4 so please use that instead of 3.2beta3.2.
Ok you are right! Thank you!
Now I installed 3.2 beta 4 ...
Do you have any ideas about the layer shifts?
Do you still get the layer shifts with 3.2beta4?
Is the axis showing the layer shift controlled by a motor attached to the main board, or to the expansion board?
The testprint with FW 3.2 Beta 4 is running now...till now it looks good...
But did you changes in this way?
The axis with problems was connected to the expansion board...
So the test print runs without problems!
@dc42 did you made any changes in this direction?
I did not read something about a topic like this in the changelog...
Please let me know, because there are machines outside from us with the old firmware...