Jerky motion in Z on Maestro



  • I am trying the maestro board on one of our delta and somehow I am getting the Z motion stopping suddenly for a fraction of second at random points at any speed above F4000.
    At F6000 is worse than at F10000

    Youtube links:
    https://youtu.be/liztQQP3TjE
    sec. 31: https://youtu.be/n-A3t8D6ils

    Stepper are 2A Wantai 57BYGH420, on the Duet Wifi never had a problem like this.

    Firmware Version:	2.02RC4(RTOS) (2018-11-18b5)
    

    My config:

    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Nov 08 2018 15:54:38 GMT+0100 (Ora standard dell’Europa centrale)
    
    M912 P0 S-4					   ; CPU Temp calibration S= hotend at room temp - Cpu cold boot temp
    M581 E1 S0 T0 C0				   ; Emergency Stop Endstop 2 input
    
    ; General preferences
    G90                                                ; Send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    
    M665 R243.467 L449 B200 H873 X0.041 Y0.131 Z0.000         ; Set delta radius, diagonal rod length, printable radius and homed height XYZ= tower corrections
    
    M666 X-0.16 Y-0.13 Z0.29                            ; Put your endstop adjustments here, or let auto calibration find them
    
    ; Network
    M550 PATLAS 4070                                   ; Set machine name
    M552 S1                                            ; Enable network Module
    
    M586 P0 S1                                         ; Enable HTTP
    M586 P1 S0                                         ; Disable FTP
    M586 P2 S0                                         ; Disable Telnet
    
    ; Drives
    M569 P0 S0                                         ; Drive 0 goes forwards
    M569 P1 S0                                         ; Drive 1 goes forwards
    M569 P2 S0                                         ; Drive 2 goes forwards
    M569 P3 S0                                         ; Drive 3 goes forwards
    M569 P4 S0                                         ; Drive 4 goes forwards
    
    M350 X128 Y128 Z128 E16 I0                         ; Configure microstepping
    M92 X640 Y640 Z640 E1166:1166                      ; Set steps per mm
    
    M566 X1200 Y1200 Z1200 E1200:1200                  ; Set maximum instantaneous speed changes (mm/min)
    M203 X10000 Y10000 Z10000 E1200:1200               ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z1000 E1000:1000                  ; Set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200 E450:450 I40                ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                                            ; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                         ; Set minimum Z
    
    ; Endstops
    M574 X2 Y2 Z2 S1                                   ; Set active high endstops
    
    ; Z-Probe
    M558 P5 H10 F600 T6000 I1                                               ; Set Z probe type to switch and the dive height + speeds
    G31 P600 X0 Y0 Z12.16                                                   ; Set Z probe trigger value, offset and trigger height
    M557 R150 S20                                                          ; Define mesh grid R= probe Radius S= Mesh Spacing (was 20)
    
    ; Heaters
    M307 H0 A77.3 C150.3 D5 S1 B0                       ; H0= Bed A= Gain C= Constant D= Dead Time S= Max PWM
    M305 P0 T100000 B3950 C0 R2200                     ; Set thermistor + ADC parameters for heater 0 (R4700 for duet wifi)
    M143 H0 S120                                       ; Set temperature limit for heater 0 to 120C
    M570 H0 P120 T15				   ; Heater Fault configuration H= heater num. P=anomaly in seconds before fault T= Permitted excursion from the setpoint (default 15C) 
    
    M305 P1 T100000 B4685 C6.5338987554e-8F R2200           ; Set thermistor + ADC parameters for heater 1 (R4700 for duet wifi)
    M307 H1 A269.8 C91.1 D3 S1			 	; H1= hotend1 A= Gain C= Constant D= Dead Time S= Max PWM
    M143 H1 S280                                       	; Set temperature limit for heater 1 to 280C
    
    ; Fans
    M106 P0 S1 I0 F500 H-1                             ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45                          ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45                          ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1                                      ; Define tool 0
    G10 P0 X0 Y0 Z0                                    ; Set tool 0 axis offsets
    G10 P0 R0 S0                                       ; Set initial tool 0 active and standby temperatures to 0C
    
    ; Automatic power saving
    M911 S21 R30 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; S=Auto save threshold in volts R=Auto resume threshold in volts P= Commands after resume 
    
    ; Custom settings
    M106 S0								                                    ;turn OFF Layer fan on boot
    T0 													; Select first tool
    M302 P1												; Allow cold extrusion
    
    
    
    ; Filament Monitor HC-020K
    M591 D0 P7 C3 S1 R60:8000 L1.85 E10   					; D= sensor for extruder drive 0, C= E0 endstop input, P= Sensor type, S1= Enable, R=70% to 130% tolerance, L= mm/pulse, E= detection length
    ;
    M591 D0 								; display filament sensor parameters for extruder drive 0
    

    Below the diagnostics:

    === Diagnostics ===
    RepRapFirmware for Duet 2 Maestro version 2.02RC4(RTOS) running on Duet Maestro 1.0
    Board ID: 08DAM-9F9DA-MWNS8-6J1DG-3SN6K-K406X
    Used output buffers: 1 of 20 (11 max)
    === RTOS ===
    Static ram: 21428
    Dynamic ram: 96848 of which 0 recycled
    Exception stack ram used: 320
    Never used ram: 12476
    Tasks: NETWORK(ready,448) HEAT(blocked,1300) MAIN(running,3672) IDLE(ready,200)
    Owned mutexes:
    === Platform ===
    Last reset 00:15:25 ago, cause: software
    Last software reset time unknown, reason: User, spinning module GCodes, available RAM 12612 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 9
    SD card 0 detected, interface speed: 15.0MBytes/sec
    SD card longest block write time: 8.3ms, max retries 0
    MCU temperature: min 34.4, current 35.2, max 35.8
    Supply voltage: min 23.9, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, read errors 0, write errors 1, ifcount 147, reads 36953, timeouts 0
    Driver 1: standstill, read errors 0, write errors 1, ifcount 147, reads 36951, timeouts 2
    Driver 2: standstill, read errors 0, write errors 1, ifcount 147, reads 36952, timeouts 1
    Driver 3: standstill, read errors 0, write errors 1, ifcount 87, reads 36952, timeouts 7
    Driver 4: standstill, read errors 0, write errors 1, ifcount 87, reads 36957, timeouts 2
    Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 36966
    Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 36965
    Date/time: 1970-01-01 00:00:00
    Slowest loop: 4581229.50ms; fastest: 0.06ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0
    === Move ===
    Hiccups: 67306, StepErrors: 0, LaErrors: 0, FreeDm: 240, MinFreeDm: 228, MaxWait: 85643ms, Underruns: 0, 0
    Scheduled moves: 240, completed moves: 240
    Bed compensation in use: none
    Bed probe heights: 0.000 0.000 0.000 0.000 0.000
    === Heat ===
    Bed heaters = 0, chamberHeaters = -1 -1
    Heater 1 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 1 in use
    Movement lock held by null
    http is ready with "M122" in state(s) 0 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    lcd is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 4581229.00ms; fastest: 0.03ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    Interface state 5, link 100Mbps full duplex
    === Filament sensors ===
    Extruder 0 sensor: position 0.00, no data received, no calibration data
    

    thank you



  • @paboman said in Jerky motion in Z on Maestro:

    M350 X128 Y128 Z128 E16 I0

    Have you tried with 16x Microstepping and interpolation turned on?



  • with 64x Microstepping and interpolation turned on the problem is gone.

    M350 X64 Y64 Z64 E16 I1                         ; Configure microstepping
    M92 X320 Y320 Z320 E1166:1166                      ; Set steps per mm
    

    But why is that ? is the CPU on the maestro not fast enough?
    I am worried about print quality with 64x microstepping intsead of 128x...



  • that was my suspicion about the cpu not beeing able to handle it.

    however the tmc2208 does 256 microstepping with interpolation.
    As far as i know there should be no difference in print quality to using x256 microstepping and using x256 interpolated microstepping.

    and the duet has a FPU for doing the complicated delta move calculations. The maestro does not.


  • administrators

    @paboman said in Jerky motion in Z on Maestro:

    === Move ===
    Hiccups: 67306,

    Hiccups occur when the MCU is overloaded and can't generate the steps fast enough. Reducing microstepping was the right thing to do.



  • with 64x Microstepping and interpolation turned on the problem is still here, after some hours I get "Hiccups"
    now trying 32x microstepping...lets see





  • @veti
    thank you!

    I understand there is no difference between higher microstepping and interpolated 16x as RRF is quite unique in how it handle the step clalculation. is this right ?



  • Using higher resolution microstepping does not increase the physical accuracy of your prints meaningfully, but it can reduce surface artifacts such as moire.
    The interpolation is a feature of the TMC driver and not the RRF firmware.
    So for the movement the duet is just fine with the accuracy of x16. And the driver internally translates this to x256 stepping for smoother and quieter motion.
    If you want more movement accuracy that is where 0.9 degree stepper motors come into play. especially for delta printers.



  • Update:
    also with 32x Microstepping and interpolation turned on after some hours I get "Hiccups"
    now trying 16x microstepping



  • @paboman

    by "hicups" how many do you mean?



  • @Veti
    1 hiccup
    Enough to ruin the print



  • at x32 i would not have expected that.
    at what speed are you printing?
    do you have an 12864 lcd connected?



  • Me too but after few hours 1 hiccup translate into layer shift (in the best scenario)
    Printing at 50mm/s non printing moves at 170mm/s
    Connected to the Maestro is Panel Due 4,3" and a filament monitor with encoder.

    Maybe the reduction ration of the extruder (13:1) also is forcing the cpu to produce a lot of steps as the E0 driver is set to 1166steps/mm (microstepping 16x)


  • administrators

    @paboman said in Jerky motion in Z on Maestro:

    @Veti
    1 hiccup
    Enough to ruin the print

    A small number of hiccups should not affect print quality, because each hiccup lasts only 68 microseconds. The step pulse generator pauses for that amount of time to allow the processor to catch up with other tasks. It only does it when the step pulse generator has spent 60 microseconds doing nothing except generating steps.



  • the machine was printing, (i was doing M122 every 5 minuts) then I heard a strange noise so looked at the print and it was the beginning of a leyer shift.
    After that a M122 get me 1 hiccup



  • Alex Kenis found that the drivers work strongest at 24v 1/4 x256 interpolation in stealthchop
    https://www.youtube.com/watch?v=GVs2d-TOims&t=1012s

    you will need to find the correct value of v for your setup so that it stays in stealthchop even at 170mm/s
    M569 Px Vxxx (for each motor)

    that is what i would try next



  • also from your values. you are using a 40 tooth pulley?
    this will actually decrease your positional accuracy compared to the more standard 20 tooth pulley.

    edit:forget that. i miscalculated



  • Unfortunatelly at 16X interpolated I still get 1 hiccup.
    I know @dc42 said it should not affect the print but in my case the 1 hiccup cause a shift in Z resulting into nozzle digging into the print.



  • @paboman Did it sound somewhat like this?
    https://www.youtube.com/watch?v=8yGIwlT5qc8

    I wasn't aware of the diagnostics output, so I can't say if there were any hiccups, but I'll give it a look if it happens again. The nozzle didn't hit anything, there were no signs of that on the print. I suspected it did on the second snap, but no melted blobs anywhere suggest it did.

    Versions:

    Firmware Name:          RepRapFirmware for Duet 2 Maestro
    Firmware Electronics:	Duet Maestro 1.0
    Firmware Version:	2.02RC4(RTOS) (2018-11-18b5)
    Web Interface Version:	1.22.5
    

    Specs:

    • bigDelta custom printer
    • flying extruder
    • ~750mm print height
    • 400mm print diameter
    • 24v
    • rattm 17hs8401 1.8deg
      • run at 1.3A
      • 16x interpolated

    Config:

    ; Configuration file for Duet Maestro (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Sun Oct 07 2018 15:48:41 GMT+0200 (CEST)
    
    ; General preferences
    G90                             ; Send absolute coordinates...
    M83                             ; ...but relative extruder moves
    M665 R258.483 L495 B200 H877.95 ; Set delta radius, diagonal rod length, printable radius and homed height 
    M666 X-1.66 Y2.69 Z-1.02        ; Put your endstop adjustments here, or let auto calibration find them
    
    ; Network
    M550 PBigDelta                  ; Set machine name
    M551 Pxxx                 ; Set password
    M552 P0.0.0.0 S1                ; Enable network and acquire dynamic address via DHCP
    M586 P0 S1                      ; Enable HTTP
    M586 P1 S1                      ; Enable FTP
    M586 P2 S0                      ; Disable Telnet
    
    ; Drives
    M569 P0 S0                      ; Drive 0 goes forwards
    M569 P1 S0                      ; Drive 1 goes forwards
    M569 P2 S0 	                ; Drive 2 goes forwards
    M569 P3 S1	                ; Drive 3 goes backwards
    M92 X100 Y100 Z100 E2567        ; Set steps per mm
    M566 X1800 Y1800 Z1800 E1000   	; Set maximum instantaneous speed changes (mm/min)
    M203 X18000 Y18000 Z18000 E2500 ; Set maximum speeds (mm/min)
    M201 X8000 Y8000 Z8000 E1000     ; Set accelerations (mm/s^2)
    M906 X1300 Y1300 Z1300 E500 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                         ; Set idle timeout
    M350 X16 Y16 Z16 E4 I1		; Set microstepping with interpolation
    M572 D0 S0.07			; Set 0.07 seconds of pressure advance
    
    ; Axis Limits
    M208 Z0 S1                      ; Set minimum Z
    
    ; Endstops
    M574 X2 Y2 Z2 S1                ; Set active high endstops
    
    ; Z-Probe
    M558 P5 H3 F120 T21000  	; Set Z probe type to switch and the dive height + speeds
    G31 P500 X0 Y0 Z30.323	        ; Set Z probe trigger value, offset and trigger height
    M557 R200 S20                   ; Define mesh grid
    
    ; Heaters
    M140 H-1                        ; Disable heated bed
    M305 P1 T100000 B4138 C0 R2200  ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                    ; Set temperature limit for heater 1 to 280C
    
    ; Fans
    M106 P0 S0 I0 F30000 H-1 C"Partfan"	; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F30000 H-1 C"PCBfan"    ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S1 I0 F100 H1 T45 C"Coldfan"  	; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1                   ; Define tool 0
    G10 P0 X0 Y0 Z0                 ; Set tool 0 axis offsets
    G10 P0 R0 S0                    ; Set initial tool 0 active and standby temperatures to 0C
    
    ; Automatic saving after power loss is not enabled
    
    M207 S1.3 F1500 Z0.2 T500  	; Set up firmware retracts
    
    ; Miscellaneous
    G29 S1				; Load height-map
    M501                            ; Load saved parameters from non-volatile memory
    T0                              ; Select first tool
    

 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.