Layer Shifting Help
My machine is Tevo Little Monster Delta, which has been running loud but reliable for the past year. Stock, it uses a MKS Sbase smoothieware board putting out 1.5 amps to the 1.8 deg motors. A few months ago I added rubber motor mounts and converted them to 0.9 deg steppers. It lowered the noise a bit but still ran fine.
Two weeks ago I replaced the stock controller for a Duet Maestro and got it running printing benchy's calibration cubes and a few other small items with good success. I am now running into some layer shifting issues now that I am attempting longer / larger prints. I have read through the forum and it seems most threads conclude that it is a mechanical issue or over heating of the stepper motors. I have checked the belts, pulleys, and rails for any play and have not found anything obvious. The fact that the machine was running fine with the smoothieboard makes me think this is not mechanical in nature
I typically print at 100 mm/s for interior perimeters. The layer shifting is random as to when it occurs and in which direction. On some occasions the print head shifts down and slams the head into the part. I have broken a couple touch probes in this effort.
Things I have tried.
I completely disabled stealthchop
I have lowered the acceleration from 5000 mm/s to 1000 mm/s
I have lower the max travel speed from 650mm/s to 400mm/s
I have tried running the motors from 1A to 1.5A and everything in between.
Running M122 I do not get any obvious errors reported on the drives.
=== Diagnostics ===
RepRapFirmware for Duet 2 Maestro version 2.02RC5(RTOS) running on Duet Maestro 1.0
Board ID: 08D8M-9T8A2-MQNS0-7JKD4-3SS6Q-9QTQW
Used output buffers: 3 of 20 (16 max)
=== RTOS ===
Static ram: 21236
Dynamic ram: 97552 of which 0 recycled
Exception stack ram used: 312
Never used ram: 11972
Tasks: NETWORK(ready,536) HEAT(blocked,1300) MAIN(running,424) IDLE(ready,200)
=== Platform ===
Last reset 00:42:41 ago, cause: software
Last software reset at 2019-01-27 20:02, reason: User, spinning module GCodes, available RAM 12036 bytes (slot 3)
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
Error status: 0
Free file entries: 8
SD card 0 detected, interface speed: 15.0MBytes/sec
SD card longest block write time: 0.0ms, max retries 0
MCU temperature: min 28.6, current 29.3, max 29.8
Supply voltage: min 23.4, current 23.9, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
Driver 0: ok, read errors 0, write errors 0, ifcount 19, reads 5082, timeouts 0
Driver 1: ok, read errors 0, write errors 0, ifcount 19, reads 5082, timeouts 0
Driver 2: ok, read errors 0, write errors 0, ifcount 19, reads 5082, timeouts 0
Driver 3: ok, read errors 0, write errors 0, ifcount 16, reads 5075, timeouts 7
Driver 4: standstill, read errors 0, write errors 0, ifcount 13, reads 5082, timeouts 0
Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 5082
Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 5082
Date/time: 1970-01-01 00:00:00
Slowest loop: 4581229.00ms; fastest: 0.12ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0
=== Move ===
Hiccups: 0, StepErrors: 0, LaErrors: 0, FreeDm: 133, MinFreeDm: 120, MaxWait: 0ms, Underruns: 0, 0
Scheduled moves: 39634, completed moves: 39605
Bed compensation in use: mesh
Bed probe heights: -3.398 -3.906 -4.251 -4.396 -4.582
Relative Config below
M569 P0 S1 D2 ; Drive 0 goes forwards
M569 P1 S1 D2 ; Drive 1 goes forwards
M569 P2 S1 D2 ; Drive 2 goes forwards
M569 P3 S1 D2 ; Drive 3 goes forwards
M350 X32 Y32 Z32 E32 I1 ; Configure microstepping with interpolation
M92 X160 Y160 Z160 E800 ; Set steps per mm
M566 X1200 Y1200 Z1200 E1200 ; Set maximum instantaneous speed changes (mm/min)
M203 X24000 Y24000 Z24000 E3000 ; Set maximum speeds (mm/min)
M201 X1000 Y1000 Z1000 E1000 ; Set accelerations (mm/s^2)
M906 X1100 Y1100 Z1100 E1100 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
How can I determine what is the maximum amps the Maestro is comfortable with? Is there an internal temperature sensor?
Is higher amperage always better so long as it is adequately cooled?
I have already lowered my speeds substantially from the smoothie settings, do they still look high?
I am out of ideas at this point and would appreciate some any help.
Note on the photo. These are two different attempt at the same part. The left shifted once and I let the print complete. The right shifted twice before I cancelled the job.
For motor current you should target 85% of the motors rated max without requiring any additional cooling. With proper cooling you could run 100% of the max rated or more if you desired, up to the limit of the drivers, which on the Maestro looks to be 1.6A.
It looks like your supply voltage is already 24v, so that's good.
Without knowing the specifics of your motors it's hard to say what your max attainable acceleration and travel speeds would be, but you can figure that out with these tools:
https://reprapfirmware.org/ (go to the EMF calculator)
One thing I notice is that you are using x32 microstepping for all axis. It may certainly be the case that in some situations with such high acceleration and travel speeds you may be running into a step pulse generation limit causing the layer shifts.
I would suggest using x16 microstepping with interpolation to get a good baseline from before experimenting with higher. Generally the only time higher microstepping will make a difference would be for the extruder. You can use this tool to see if you'd be missing any steps from a lack of extruder resolution. https://wilriker.github.io/microstep-calculator/
Your M566 jerk values are reasonable, but experiment with going down to 600. Remember that these values are in mm/min not mm/s.
Your M201 acceleration values very reasonable at 1000mm/min. 5000 may be doable for travels, but likely messy prints. Without knowing your mechanics, it's hard to say.
StealthChop may also be an issue for you, and you may need to spend some time tuning it. https://duet3d.dozuki.com/Wiki/Gcode#Section_M569_Set_motor_driver_direction_enable_polarity_and_step_pulse_timing
Veti last edited by
the maestro has a max amp output of 1.4A.
Alex kenis found that the mode 4x with 256 interpolation has the highest torque.
Also there was a problem in the in the firmware below 2.02 with layer shift on the maestro with longer prints. so update to the latest version.
@infamous_panda, I think upgrading to the 2.02 or 2.02a release (they are the same for the Maestro) will probably fix the layer shifts, because there was a bug fix to the step pulse timing for the Maestro between the last 2.02RC and the 2.02 release. Also the over temperature warnings from the drivers didn't work in some of the earlier 2.02RC releases and I can't remember whether this was fixed before or after RC5.
Disabling stealthChop is the right thing to do if you get layer shifting problems. In stealthchop mode the drivers use the minimum current necessary, so they can't handle a sudden increase in load well e.g. if the nozzle hits a blob or curl-up in the print. It sounds to me that you are using low inductance motors, so they may be very quiet in spread cycle mode anyway. But if not, when you have confirmed that upgrading to 2.02 fixes the problem, you may wish to try stealthChop again.
The TMC2224 drivers on the Maestro are not capable of the same current as the TMC2660 on the Duet WiFi/Ethernet, so 1.5A is right at the top of their range. You will need to cool the Duet very well with a fan to run at 1.5A. If the cooling is insufficient then over temperature warnings will be reported. At this stage no steps will be lost, but if the driver temperature rises another 20C or so then the driver will shut down.
I will try that. Is do you use interpolation in your steps per mm setting or just the step mode?
Veti last edited by
4x with interpolation.
@veti Looks like it's not terribly different from 1/4 to 1/16. I am experimenting with this now but 1/4 seems to have introduced a lot of jerk noise from what I was getting at 1/32. The straight movements seem quiet enough still.
In spread cycle mode, the microstepping setting shouldn't affect the torque unless you go right down to x1.
Thank you all. I think it was the firmware. Wish I had asked sooner rather than later my weekend trying to sort this out. 10 hours so far so good, happily printing 150mm/s - 200mm/s quietly.
Thanks, I'll mark this as solved then.
RafB last edited by
Do you think you have perfectly adjusted your Tevo LM? If so, can you share me your config.g and bed.g file to compare with mine.
If you have tips to make the LM perform, I'm interested.
thank you in advance
It's still a work in progress, I had it stable and printing accurately but I just recently increased my nozzle size to 0.6mm and I am currently testing out increasing the speed back to stock. Dealing with stringing issues and layer adhesion at the moment. Once that is sorted I would like to make a basic menu for the 12864 lcd.
Are you using a Maestro? Any specific issues you having?