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 F10000Youtube links:
https://youtu.be/liztQQP3TjE
sec. 31: https://youtu.be/n-A3t8D6ilsStepper 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.
-
@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 -
have a look at an old post of dc42
https://forum.duet3d.com/topic/1171/testing-the-effects-of-changing-microstepping-and-segmentation -
@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 -
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)
-
@paboman said in Jerky motion in Z on Maestro:
@Veti
1 hiccup
Enough to ruin the printA 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=1012syou 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=8yGIwlT5qc8I 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