Layer Shifts with Duet3



  • Hi Community,

    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.

    IMG_20201125_074904.jpg

    IMG_20201124_115638.jpg

    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
    Kinematics: Cartesian

    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
    

    Slicer-Settings:

    98ab1de8-c535-4004-8468-3179dcd02b16-image.png

    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)



  • Dear Christian,

    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?

    Best



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



  • @CR3D said in Layer Shifts with Duet3:

    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
    

    @JoergS5

    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?

    @Veti

    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:

    NanoTec_NEMA17_SCA5618X2804-A.pdf

    I changed the motor current a few times... now it is a little bit higher...

    Regards Christian



  • @CR3D said in Layer Shifts with Duet3:

    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.



  • @CR3D said in Layer Shifts with Duet3:

    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

    e972587d-3470-457d-8f8a-a35bf4f2cbfa-image.png

    @dc42 do you know this issue?

    edcb6a98-f4af-4953-95a6-0b2faf34df86-image.png

    3a2ba205-0c84-4e25-b262-6e2835a022ad-image.png


  • administrators

    @CR3D said in Layer Shifts with Duet3:

    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.



  • @dc42

    Ok you are right! 🙂 Thank you!

    Now I installed 3.2 beta 4 ...

    Do you have any ideas about the layer shifts?


  • administrators

    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! 🙂

    IMG_20201128_084305.jpg

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

    Regards Christian ✌


Log in to reply