Marlin: [BUG] Linear Advance K Calibration Print stops extruding

Created on 2 Dec 2019  Â·  118Comments  Â·  Source: MarlinFirmware/Marlin

Bug Description

Using Marlin 1.1.9-bugfix on an Ender 3 Pro with Creality 1.1.5 board.
Created GCODE for calibrating Linear Advance 1.5 using http://marlinfw.org/tools/lin_advance/k-factor.html
The first test line prints, then the extruder stops.

My Configurations

Required: Please include a ZIP file containing your Configuration.h and Configuration_adv.h files.

Linear Advance 0 to 2 kfactor.txt _.gcode_

Configuration.txt _.h_

Configuration_adv.txt _.h_

Steps to Reproduce

  1. Generate GCODE using the online tool
  2. Print it
  3. Watch the extruder

Expected behavior: [What you expect to happen]

The extruder extrudes and the full print prints.

Actual behavior: [What actually happens]

The first test line (K=0) prints.
The plastic thins out over the next two lines to nothing, and the extruder stops turning entirely.

  • Provide pictures or links to videos that clearly demonstrate the issue.

IMG_20191202_153924

ATmega1284 Confirmed ! Linear Advance

Most helpful comment

100 people have now commented on this issue. I don't think it should be closed unless it is made more obvious that linear advance does not work with stealthchop.
Maybe a PR to put it as a comment in the header itself?

All 118 comments

Please try Marlin 2.0

Marlin 1.1.9 is no longer actively worked on. Please try 2.0.

I don't see anything that stands out in your config and gcode files. Has the bed been leveled? How exactly does it stop? Like does it continue to try and complete the job except with zero extrusion or does it end the job after the 3rd line? Have you tried doing 0.1 K factor stepping and see if it will produce more lines? Try enabling LA_DEBUG and check the outputs.

The bed is pretty level as it is, but there's also a G29 in the print GCODE.

It continues and completes the print job, but it stops extruding and doesn't continue. The photo shows a "finished" print.

I can try 0.1 stepping tomorrow, although I suspect it stops as soon as K >0.

How do I use LA_DEBUG? I usually use with Octoprint.

I haven't used Octoprint so I don't know with that. You need to connect to the machine via USB. You could use repetier, adruino ide or whathaveyou. LA_DEBUG must be enabled in your configuration first and your machine reflashed - you might as well upgrade to 2.0 :D

@stantond did you try 2.0.x ?

Could it be, that the 1.1.5 creality board is the silent board with the tmc 2208 on all axis in standalone and stealthchop mode?
As far as a I know, LA does not work with tmc 2208 standalone at Extruder Motor in stealthchop Mode.

How do I use LA_DEBUG? I usually use with Octoprint.

There's a terminal tab in OctoPrint which is where you'll watch/send commands:
image

closing this one until we hear back from @stantond

as said above 1.1.9 is no longer active worked on, please use 2.0.x

As far as a I know, LA does not work with tmc 2208 standalone at Extruder Motor in stealthchop Mode.

@Strahler85 I'm using the Creality 1.1.5 board, and I believe it does use 2208 drivers in stealthchop mode for all motors. Do you know of there's a way to change the mode for the E driver?

@boelle of the above is true, this issue will affect any version of Marlin using this board

In 2.0, you can disable stealthchop for each stepper in configuration_adv.h ie #define STEALTHCHOP_E

i cant reproduce and i think the difference is that i dont use stealthchop on the extruder

https://github.com/boelle/Marlin/tree/Mendel90

i use drv8825 for the extruder and that is why i know, for everything else i use tmc2100

will close this one as it most likely a config issue and not a bug as such

Hopefully I'll have time to do some more testing on this next week. Looks like M569 was introduced in Marlin 2.0, so I'll start there.

I'd suggest that if it is a configuration issue, it's a "bug" in the documentation - if it's a known and understood issue that can be resolved with a config change, adding it to the docs so that the next poor sod to get stuck can find a fix rather than spend hours messing about and trawling closed issues would be a useful "fix", right?

that's an arguement i can use, so yes, documentation should be improved if it turns out that you cant use stealthchop on the extruder

i have tmc2208 in stand alone running marlin 2.0 and linear advance function perfectly i ran the calibration 10x yesterday and i use linear advance daily.

I've just installed Marlin 2.0, with almost identical settings.

M569 isn't working (Unknown command: "M569"), so I've obviously missed something. I've subsequently installed the TMCStepper library as specified here, but I've been staring at the page for a good few minutes and can't figure out what setting I need to enable to include the library when compiling to get M569 working. Which settings do I need?

I've just installed Marlin 2.0, with almost identical settings.

Can you post updated configs? Just zip them up into a single .zip and attach it and we can verify your settings. I'm guessing you didn't enable TMC2130 for the driver type, so M569 isn't enabled.

Also, PlatformIO should download TMC libraries for you without having to install anything if you're using VSCode.

I tried defining some Stepper Drivers as TMC2208 and got compiler errors (using Arduino IDE, no idea what PlatformIO is).

Files attached.
Marlin.zip

no idea what PlatformIO is

try it

no idea what PlatformIO is

try it

I'm sure it's great, but I'd rather fix what I can without adding more variables to the mix. Maybe when this issue is resolved.

I tried defining some Stepper Drivers as TMC2208 and got compiler errors

Changed to TMC2208_STANDALONE and it compiles OK. I get the feeling that the Creality board is fixed in standalone mode for all drivers, as they would have just dropped in the new drivers to replace the old rather than design and manufacture a new PCB. Will test this over the weekend.

I get the feeling that the Creality board is fixed in standalone mode

You are correct.

Having set the drivers to "TMC2208_STANDALONE", M569 still doesn't work. Is that expected?

Tested K calibration print again, now on Marlin 2.0 with drivers set to TMC2208_STANDALONE, which is the only option for TMC drivers on the Creality/Melzi "Silent" boards v1.1.4 and v1.1.5.

Same result. Prints the first line where K=0, then extruder stepper stops, but print tries to continue as normal, unaware of the failure.

M569 depends on a UART or SPI connection to the driver to change stepping mode, so there's no way for it to work with a ''TMCXXXX_STANDALONE`` driver. I think if your 2208s are soldered to the board you're out of luck and will be unable to change them to SpreadCycle.

The problem isn't M569 - it's just a means to an end. I'm trying to establish whether or not Linear Advance is compatible with StealthChop. At this point, I suspect not, and recommend the docs be updated, unless anyone else is able to further test this.

@stantond I would try this:

/**

  • Beta feature!
  • Create a 50/50 square wave step pulse optimal for stepper drivers.
    */
    #define SQUARE_WAVE_STEPPING

/**

  • Enable M122 debugging command for TMC stepper drivers.
  • M122 S0/1 will enable continous reporting.
    */
    #define TMC_DEBUG

@stantond I would try this:

/**

  • Beta feature!
  • Create a 50/50 square wave step pulse optimal for stepper drivers.
    */
    #define SQUARE_WAVE_STEPPING

/**

  • Enable M122 debugging command for TMC stepper drivers.
  • M122 S0/1 will enable continous reporting.
    */
    #define TMC_DEBUG

Have just tried this. Thanks for the suggestion. Still didn't work - extruder stops extruding the moment it gets to the first bit where the K factor is changed to a non-zero value.

@stantond I wonder if this is related to some pulse timing I observed yesterday related to Linear Advance. I posted a capture of step output on #16155.

I have seen waveforms similar to this cause 2208 drivers to shut down, although in that case it was a different issue not related to linear advance. 2209 drivers seemed more resilient when I encountered that earlier issue, but I assume they have a breaking point as well.

It is also worth mentioning that SQUARE_WAVE_STEPPING won't do anything when you are using drivers in standalone mode. The image I posted to the other issue is with square wave, but a similar issue would exist without it.

@stantond is the issue still the same with all the updates in the last 6 days?

@stantond is the issue still the same with all the updates in the last 6 days?

Updates? Have there been some bugfix releases since that could have affected this?

that is what i'm asking you, i never had the problem so i cant see if there is any difference

that is what i'm asking you, i never had the problem so i cant see if there is any difference

Haven't tried it - don't usually update for each bugfix release, I thought the general advice was stick to the main releases. Are there actually any changes that look like they might have an impact, or is this more of a "just in case why not give it a go"?

its "just in case why not give it a go" and if its not fixed go back again

Ok, will try it in about a week when I'm back with the printer

video inbound of me running the calibration test on my machine with tmc2208 just fine its uploading.
Ive run the calibration a few 100 times over the last year with the machine never once had the described issue. suspect hardware defect or miss configured marlin to be the root cause.

video inbound of me running the calibration test on my machine with tmc2208 just fine its uploading.
Ive run the calibration a few 100 times over the last year with the machine never once had the described issue.

What mode is your extruder driver in?

standalone same as yours.

That sounds promising then, can you share your config files, please? Mine are attached further up. I'll do a side-by-side to see if any differences could be causing this. Which mainboard are you using?

there on my github unfortunately my fork isn't gonna be easy to compare its one unified config supporting like 100 printers including there variants but it is kept updated daily with the latest marlin source. upload will be completed in a few minutes and the link will be added.

btw, who can confirm there is an issue? use the same configs as OP and the same hardware if possible

the 1284p is like the little brother to the 2560 it should be close enough to compare.
https://youtu.be/jkscvoqdh4s

i will then put a confirmed label on it

i totally disprove a problem exists if comparing them like this is acceptable.

me misunderstod then.... label is gone and yes now that my brain is in gear i remember the issue

i never had it either so it must be a not confirmed

I will try to reproduce it on my machine. I have been investigating LA causing 2208 drivers to turn off and am hoping to fix it. I’ve been reproducing with the default K value so haven’t actually tried the calibration print. It probably doesn’t happen to everyone due to other configuration settings, Vref settings, etc...

I will try to reproduce it on my machine. I have been investigating LA causing 2208 drivers to turn off and am hoping to fix it. I’ve been reproducing with the default K value so haven’t actually tried the calibration print. It probably doesn’t happen to everyone due to other configuration settings, Vref settings, etc...

I set my default K to 0 in config, so I don't accidentally print with a value that doesn't work well for the filament type (and so that I can continue to print without it while troubleshooting this issue)

After spending time looking into this and attempting various small patches to improve LA behavior on 2208 drivers, my recommendation is just to turn it off. In my opinion Linear Advance would have to be completely reworked to avoid the issues that cause the 2208 to shut down, and probably cause quality/noise issues with other drivers.

Hi, I can confirm this problem with my Sovol SV01 and SilentBoard (TMC2208_STANDALONE).
I'm using the latest Marlin 2.0.1.

its rather strange this only happens with some TMC2208 drivers as mine are entirely unaffected.

can we do anything about this one when the error only happen on some TMC2208 ?

It isn't very useful for the issue but I have exactly the same problem with Marlin bugfix-2.0.x. When Linear Advance is activated and k > 0 the extruder stops extruding. I have tried everything posted here and other things seen in other places, nothing seems to work. My motherboard is a Creality 3D 2.5.2 (picture attached just in case is useful).

photo_2020-01-12_10-45-04

The drivers are TMC2208 and as far as I know they are in standalone mode.

Watching closely as it prints the calibration pattern I can see that the stepper driver extrudes at the start of the first line with K>0, but its speed is reduced rapidly and it never regains movement (even when the k factor is set to zero at the end of the calibration pattern gcode).

If there is anything I can try/test/provide to help fix this just let me know.

Confirming issue with my Ender 3 Pro and Creality silent board v1.1.15.
Today installed Marlin 2.0.1 with LA. Same result only k=0 line printed

@pro100luk what with bugfix 2.0.x ?
2.0.1 is just a frozen copy of 2.0.x and is now "old"

@boelle the same behavior with bugfix.
Also tried disabling STEALTHCHOP_E and it also didn't work.

After spending time looking into this and attempting various small patches to improve LA behavior on 2208 drivers, my recommendation is just to turn it off. In my opinion Linear Advance would have to be completely reworked to avoid the issues that cause the 2208 to shut down, and probably cause quality/noise issues with other drivers.

To expand on my earlier comment.

Linear advance inserts its own steps, out of sequence with the steps for normal movement. There is no synchronization between these two source of steps, which can cause you to perform two steps 1 microsecond apart, in the middle of a chain of steps 20 milliseconds apart. This rapid velocity shift appears to cause the 2208s to shut down, but may also cause rough operation with other drivers.

There is no combination of settings that will solve this problem, without reworking something to allow these two sources of steps to synchronize and accelerate smoothly.

If you are encountering this issue and aren't willing to perform that rewrite, you should probably just turn off Linear Advance.

After spending time looking into this and attempting various small patches to improve LA behavior on 2208 drivers, my recommendation is just to turn it off. In my opinion Linear Advance would have to be completely reworked to avoid the issues that cause the 2208 to shut down, and probably cause quality/noise issues with other drivers.

To expand on my earlier comment.

Linear advance inserts its own steps, out of sequence with the steps for normal movement. There is no synchronization between these two source of steps, which can cause you to perform two steps 1 microsecond apart, in the middle of a chain of steps 20 milliseconds apart. This rapid velocity shift appears to cause the 2208s to shut down, but may also cause rough operation with other drivers.

There is no combination of settings that will solve this problem, without reworking something to allow these two sources of steps to synchronize and accelerate smoothly.

If you are encountering this issue and aren't willing to perform that rewrite, you should probably just turn off Linear Advance.

So the LA implementation is somewhat flawed and could be causing low key wear or damage to systems where it appears to work?

could be causing low key wear or damage to systems where it appears to work?

I can't speak to whether it could damage components. I suspect the most common issue (aside from 2208s shutting down) would be missed steps, but maybe it leads to problems involving increased temperatures, etc.

It sounds like there are enough verifications now to keep this open. In the little time I have currently for 3D printing, I'm installing a SKR 1.4 with 2209s to go 32 bit and selling the Creality board, so it's unlikely I'll be able to further contribute to troubleshooting this issue (unless it occurs on this combination of board and drivers too, which also seems unlikely).

It the meantime, it might be worth adding a note in the Linear Advance documentation to highlight the current incompatibility with LA and Creality boards with 2208 drivers, linking to this issue.

I just want to leave here my own experience too...I also changed from Creality 1.1.3 to 1.1.5 and I encountered the same problems (I'm not an expert like you but the symptoms are exactly the same). I just reverted to 1.1.3 and seems everything back to works (Marlin 1.1.x). I'm using the E3D Hemera as a extruder.

I just want to leave here my own experience too...I also changed from Creality 1.1.3 to 1.1.5 and I encountered the same problems (I'm not an expert like you but the symptoms are exactly the same). I just reverted to 1.1.3 and seems everything back to works (Marlin 1.1.x). I'm using the E3D Hemera as a extruder.

That makes sense. Your 1.1.5 (and the "silent" 1.1.4) boards are using 2208 drivers, but I don't think (haven't checked) Creality have changed anything else since board 1.1.3, so the drivers are in standalone mode and stuck in stealthchop

and seems everything back to works (Marlin 1.1.x)

what if you use bugfix 2.0.x ?

It sounds like there are enough verifications

is it the same hardware and same settings?
and is it ruled out its not a hardware issue or wrong config?

I've also had hard times with TMC2208 and linear advance.

Very similar symptoms with results similar to what was pictured in the original post (https://user-images.githubusercontent.com/3207366/69991915-80ba3a80-1540-11ea-9669-f7188050c4da.jpg)

Seems to found working settings as a workaround. Find my post with settings here:
https://github.com/MarlinFirmware/Marlin/issues/16402

Lack of Activity
This issue is being closed due to lack of activity. If you have solved the
issue, please let us know how you solved it. If you haven't, please tell us
what else you've tried in the meantime, and possibly this issue will be
reopened.

let hear from @stantond , it could be that he solved the issue and forgot to report back

Lack of Activity
This issue is being closed due to lack of activity. If you have solved the
issue, please let us know how you solved it. If you haven't, please tell us
what else you've tried in the meantime, and possibly this issue will be
reopened.

let hear from @stantond , it could be that he solved the issue and forgot to report back

As above, I've moved to an SKR 1.4 with TMC2209s, so will not be able to further troubleshoot this issue.

However, there have been several other people who have confirmed they experience this issue.

Given this is a reproducible and existing bug, I question the policy of closing issues due to lack of activity. A lack of interest doesn't mean the issue is resolved. If anything, you could tag it "low activity" and move on. If one of my PMs or Tech Leads started closing live, unresolved bugs for the sake of cleaning up their board, I'd be having words with them...

Given this is a reproducible

But not easy, @Vertabreak and me have tried and failed, i do not know what hardware @Vertabreak have tried it on but i tried with a e3d titan extruder using both DRV8825 and TMC2209 on a re-arm/ramps setup and never had an issue

i think the best way forward is we try to narrow down what hardware it can be reproduced and along with the config

Confirming issue with my Ender 3 Pro and Creality silent board v1.1.15.

@pro100luk please attach config as zip

I have exactly the same problem with Marlin bugfix-2.0.x.
My motherboard is a Creality 3D 2.5.2

@Fenixin please attach config as zip

ovol SV01 and SilentBoard (TMC2208_STANDALONE).

@0n3-70uch please attach config as zip

changed from Creality 1.1.3 to 1.1.5 and I encountered the same problems
I'm using the E3D Hemera as a extruder.

@macminoz please attach config as zip

I've also had hard times with TMC2208 and linear advance.

@vadsh please attach config as zip

Same problem with 2.0.1 release and stock Tronxy Melzi controller board. I get about 3 lines before it stops printing. This is using a Tronxy X3A (Ender3 designed by an intern after a liquid lunch).
Marlin.zip

so it seems to hit both 8 bit and 32 bit. hmm...

@boelle Indeed. I tried printing with Linear Advance on (Kf = 0.03). My test print showed missing layers. The missing layers may be overall under extrusion rather than some periodic issues. I wonder what @stantond pattern would look like if he set his extrusion factor to 1.15 or so. It would need to be something dramatic.

@boelle Indeed. I tried printing with Linear Advance on (Kf = 0.03). My test print showed missing layers. The missing layers may be overall under extrusion rather than some periodic issues. I wonder what @stantond pattern would look like if he set his extrusion factor to 1.15 or so. It would need to be something dramatic.

While I can't tell you what 1.15 looked like, I can tell you that 1.0 and 1.2 printed nothing (in the calibration print).

I have certainly reproduced it on an AVR controller. I am surprised to hear about issues with a Tronxy Melzi board, as I thought this was limited to TMC2208 drivers. In the end, there are issues with inconsistent step timing when using Linear Advance. We know that TMC2208 drivers have issues with it, but it is entirely possible that other drivers behave poorly as well.

When the printer is free, I can take a short video of the movement of the extruder gear while the calibration test pattern is printing. I have a sharpie line on the gear so that its moton can be easily checked.

I have the exact same problem as others here. Setup is an Ender3, Creality Silent Board v.1.1.15 with the TMC2208 drivers configured in standalone mode. I can post my exact configuration tonight, but I have tried with STEALTHCHOP_E disabled and enabled, and MINIMUM_STEPPER_PULSE set to default for the TMC2208's as well as set to 1, with no change. The only solution I had was to disable Linear Advance.

The odd thing for me is I can actually get through printing the calibration files, but as soon as I print a larger part using Cura the extruder stops very early on in the part.

hi all thank for your help
printer créality ender 5 pro 1.16 board melzi driver A4988. marlin 2.0.3 with configuration ender 5 pro in configuration master repertory.
Marlin.zip

with the printer screen menu. when I request an extrusion of 0.1, 1 or 10 mm it turns once and stops it must be turned off to be able to trigger an extrusion;
sometime when i select stop motor and i wait lot of minute the extrudeur make juste a litls mouve and stop again

I had the same issue with a generic printer.. what I did to resolve it was to lower the acceleration.. my default was set to 3000.. lowered that to 2000 and it started extruding.. tho I'm still at a loss as to what K value is good because I'm not seeing any difference between K0 to K200. But this is a separate issue.. just wanted to post how I fixed the no extrusion issue for reference.

I had the same issue with a generic printer.. what I did to resolve it was to lower the acceleration.. my default was set to 3000.. lowered that to 2000 and it started extruding.. tho I'm still at a loss as to what K value is good because I'm not seeing any difference between K0 to K200. But this is a separate issue.. just wanted to post how I fixed the no extrusion issue for reference.

did you use the test pattern to evaluate the linear advance?

I had the same issue with a generic printer.. what I did to resolve it was to lower the acceleration.. my default was set to 3000.. lowered that to 2000 and it started extruding.. tho I'm still at a loss as to what K value is good because I'm not seeing any difference between K0 to K200. But this is a separate issue.. just wanted to post how I fixed the no extrusion issue for reference.

did you use the test pattern to evaluate the linear advance?

Well, yes.. that's where I'm seeing no difference in any of the values.. and I do have LA enabled.
What does seem odd the right side slow print is a lot thicker than the left slide slow print.. anyways, I don't want to hijack this thread. I'm gonna go without it for now as it's printing just fine with no LA.

I have exactly same problem.
tried printing Linear Advance calibration, extruder sopped on second line. I reproduced it 3 times, each time stops extruding on 2 line.
My config:
Marlin 2.0.5
Skr 1.4 turbo
TMC5160 v1.2
Hemera extruder

This issue also happend in other prints.

Here is my Configuration Files and g-code for Linear advance
LINADVkfactor.gcode.zip

Archive.zip

I can confirm this issue. I have a Creality 1.1.5 silent board using the TMC2208_Standalone drivers. When I use linear Advance in Marlin 1.1.9.1, the extruder works on the very first move, but not subsequent ones. When I compile Marlin 1.1.9.1 without linear advance, the extruder works normally.

I also tried Marlin 2.0.5.3 (from the git tag), but it would not compile.

EDIT: Forgot to mention, all hardware except the board is stock, and since the only discernible difference seems to be linear advance, I would rule out any hardware issues.

I am having the same issue: currently trying Marlin 1.1.9 with Creality Silent board 1.1.5. I get the first line of the test print (K=0), but nothing after that no matter how small I go. I am willing to try Marlin 2.0 but it seems nobody is having luck with this setup with that version either.

As an update, still no joy after trying Marlin 2.0.5.3. I can upload my configuration files if that would help but basically seems like this board just doesn’t work for me or for others as mentioned above.

I've also checked Marlin 2.0.5.3 from the git tag - you can not use LA but you can use (add to gcode) M569 S0 E to disable stealthChop and use spreadCycle. Extruder works with K=0.
Board: Creality 1.1.5 (TMC2208_STANDALONE).

Please test the bugfix-2.0.x branch to see where it stands. If the problem has been resolved then we can close this issue. If the issue isn't resolved yet, then we should investigate further.

(https://github.com/MarlinFirmware/Marlin/archive/bugfix-2.0.x.zip)

Now, I try fresh download this file lastest version but issue isn't resolved.
tested on : Chitu_f103 V6

Having this same issue on fresh bugfix downloaded just a few hours ago. CR-10 V2 with stock board, TMC2208 Standalone drivers, S-curve acceleration is disabled. Stock extruder motor mounted in direct drive configuration above the hotend.
bugfix_20x_CR10-v2.zip

I've also checked Marlin 2.0.5.3 from the git tag - you can not use LA but you can use (add to gcode) M569 S0 E to disable stealthChop and use spreadCycle. Extruder works with K=0.
Board: Creality 1.1.5 (TMC2208_STANDALONE).

Just to confirm that this solved the issue for me.

I solved this issue with Chitu_f103 v6, it required some hardware hacking.

https://github.com/MarlinFirmware/Marlin/issues/17306#issuecomment-667702866

I know I'm coming in late, but yes I also have this issue (and had it since last summer).

Her's a quick infodump:
Printer: Hypercube Evolution (custom printer)
Extruder/Hotend: e3d Titan + e3d V6 (direct drive), pancake motor
Board: BTT SKR V1.3; 24V main supply voltage
Stepper Drivers: TMC 2208 (original Watterott), UART Mode
Stepper Config: StealthChop active for X/Y/E, CHOPPER_DEFAULT_24V
Marlin Version: bugfix-2.0.x (usually updated frequently, last update was yesterday)
Print Source: Prusa Slic3r for slicing, Octoprint on a RasPi for communication

Initially (like about a year ago), prints would just randomly stop extruding at some point, even the exact same GCode would stop at different levels. When printing that "moon ornament" (thingiverse: 2771919), essentially a 2-inch sphere with high surface detail, it would sometimes stop in the first 20 layers, sometimes it would make it past half the print.

Critically, this occurs even when setting K-factor to 0.0. I still had a bowden setup back then (same hardware), making the motor go nuts essentially with any value of practical use. Supposedly setting it to 0 should be disabling linear advance in practice, so I didn't reflash. That is why it took me so long to figure out that it was even the problem. Disabled LIN_ADVANCE, reflashed, and it printed fine. Back then, S-Curve was enabled, now it isn't anymore though.

I have reenabled linear advance yesterday, and the problem came back instantly. Currently I'm using K-factor of 0.06.
Marlin-Config-Creat.zip
I feel like it's more likely with prints that have lots of fine detail. I'm about to try disabling stealthchop with M569 to see what happens.

My current config is attached.

I know I'm coming in late, but yes I also have this issue (and had it since last summer).

Her's a quick infodump:
Printer: Hypercube Evolution (custom printer)
Extruder/Hotend: e3d Titan + e3d V6 (direct drive), pancake motor
Board: BTT SKR V1.3; 24V main supply voltage
Stepper Drivers: TMC 2208 (original Watterott), UART Mode
Stepper Config: StealthChop active for X/Y/E, CHOPPER_DEFAULT_24V
Marlin Version: bugfix-2.0.x (usually updated frequently, last update was yesterday)
Print Source: Prusa Slic3r for slicing, Octoprint on a RasPi for communication

Initially (like about a year ago), prints would just randomly stop extruding at some point, even the exact same GCode would stop at different levels. When printing that "moon ornament" (thingiverse: 2771919), essentially a 2-inch sphere with high surface detail, it would sometimes stop in the first 20 layers, sometimes it would make it past half the print.

Critically, this occurs even when setting K-factor to 0.0. I still had a bowden setup back then (same hardware), making the motor go nuts essentially with any value of practical use. Supposedly setting it to 0 should be disabling linear advance in practice, so I didn't reflash. That is why it took me so long to figure out that it was even the problem. Disabled LIN_ADVANCE, reflashed, and it printed fine. Back then, S-Curve was enabled, now it isn't anymore though.

I have reenabled linear advance yesterday, and the problem came back instantly. Currently I'm using K-factor of 0.06.
Marlin-Config-Creat.zip
I feel like it's more likely with prints that have lots of fine detail. I'm about to try disabling stealthchop with M569 to see what happens.

My current config is attached.

@Creat disable STEALTHCHOP_E in Configuration_adv.h. Linear advance feature doesn't work with stealthchop enabled on extruder.

@Creat disable STEALTHCHOP_E in Configuration_adv.h. Linear advance feature doesn't work with stealthchop enabled on extruder.

Yes, as I said I'm trying that now. So far so good, but only about 2% through the print (~10 hours).
If StealthChop really is the cause, I'd really like to know what causes the steppers to "hang".

I know disabling and reenabling steppers works fine, since aborting a print lets me move E instantly, so it seems related to that. Recently I've removed the G-Code for disabling stepper motors from my abort script for various reasons, and now when I abort a print where it stopped extruding, I need to wait for the steppers to time out to be able to move E again.

This issue is stale because it has been open 30 days with no activity. Remove stale label / comment or this will be closed in 5 days.

100 people have now commented on this issue. I don't think it should be closed unless it is made more obvious that linear advance does not work with stealthchop.
Maybe a PR to put it as a comment in the header itself?

I found that the M205 E jerk value significantly affects this issue for me. If I set "M205 E5", the extruder will get disabled within the first couple lines of the calibration print. If I set "M205 E30" the calibration runs fine, and I'm getting at least partway through a real print.

When the extruder stops, it's getting disabled completely. I can hear the thunk of the E stepper turning off, and it drifts backwards a little. When it happens during a print, I can I execute "M18" to disable the steppers. I get the usual thunk followed by all the steppers turning back on, including the E stepper picking up where it left off.

Ender 3 V2
STM32F103RET6_creality
BOARD_CREALITY_V4
bugfix-2.0.x at 6759aff22

If you have 2208 in standalone, you can use this guide (bottom section, "Enabling Linear Advance") to disable StealthChop on E-stepper. Requires soldering, serial adapter and 1k resistor.

100 people have now commented on this issue. I don't think it should be closed unless it is made more obvious that linear advance does not work with stealthchop.
Maybe a PR to put it as a comment in the header itself?

I would suggest that if linear advance is enabled, stealthchop is disabled automatically, except if you override it.

@Creat How did disabling stealthchop work for you?

I've again compiled and checked Marlin 2.0 bugfix (pulled 23.09.2020) from github. When linear advance K factor is >0 then extruder stops (no matter if you have disabled stealthChop or not). If you set K=0 and disable stealthChop (M569 S0 E) you can print and extruder works - of course you don't have linear advance and stealthChop :(

Board: Creality 1.1.5 (TMC2208_STANDALONE).

That is weird, since I've been running my TMC2208 with stealthchop disabled and k=0.6 without any problems save for the noise that the extruder makes now.

Checked again with simple 2x2 cube - file attached: https://easyupload.io/xiow6p.

  1. You can see I've disabled stealthChop for extruder
  2. If I have K=0 it prints like a charm
  3. If I change to K>0 (on menu) extruder stops

Very strange. I have this in my startup code and it runs fine with K=0.75 (I know the code says 0.60, but I change it to 0.75 via the display.)

; Script based on an original created by tjjfvi (https://github.com/tjjfvi)
; An up-to-date version of the tjjfvi's original script can be found
; here:  https://csi.t6.fyi/
; Note - This script will only work in Cura V4.2 and above!
; --- Global Settings
; layer_height = {layer_height}
; smooth_spiralized_contours = {smooth_spiralized_contours}
; magic_mesh_surface_mode = {magic_mesh_surface_mode}
; machine_extruder_count = {machine_extruder_count}
; --- Single Extruder Settings
; speed_z_hop = {speed_z_hop}
; retraction_amount = {retraction_amount}
; retraction_hop = {retraction_hop}
; retraction_hop_enabled = {retraction_hop_enabled}
; retraction_enable = {retraction_enable}
; retraction_speed = {retraction_speed}
; retraction_retract_speed = {retraction_retract_speed}
; retraction_prime_speed = {retraction_prime_speed}
; speed_travel = {speed_travel}

; Ender 3 Custom Start G-code
G92 E0 ; Reset Extruder
G28 ; Home all axes
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
M900 K0.6 ; Set K-Factor PLA (0.6), wood (1)
M569 S0 E ; Disable stealthchop on extruder
M117 Haha printer go brrr

made more obvious that linear advance does not work with stealthchop.

That's not universally true. Some 2208s _still_ shutdown when used in either SpreadCycle or StealthChop mode with LA enabled.

Enabling features like SQUARE_WAVE_STEPPING can help if you're not running them in *_STANDALONE mode (LA is not compatible with 2208s in said mode). Increasing MINIMUM_STEPPER_PULSE has also been reported to help in some cases.

There just isn't a universal fix or set of options that can be applied to all 2208s to get them to work with LA.

The best advice is to switch out your extruder driver for something like a TMC2209 which doesn't suffer from the shutdown issue. If you're running a board like those included in Crealty machines and absolutely want to enable LA, then I'd suggest upgrading to one of the many 32-bit replacements with 2209s.

@thisiskeithb
So you're saying that TMC2209 runs stealthchop with LA enabled?

Maybe I should have mentioned that I have an SKR 1.4 turbo, so 32 bit, if that makes a difference.

So you're saying that TMC2209 runs stealthchop with LA enabled?

Yes.

I don’t think 2209s are necessarily immune from the issue. There are a ton of variables involved in whether the shutdown occurs or not. Some people have success even with 2208s, some can’t get anything to work.

@thisiskeithb
On monday I'll try to recompile with SQUARE_WAVE_STEPPING enabled. If not help I'll try modify MINIMUM_STEPPER_PULSE to 1,2 or more

Enabling SQUARE_WAVE_STEPPING didn't help. Still if K>0 extruder stops in either SpreadCycle or StealthChop mode. After that you have to turn printer off and on - reverting K to 0 does not bring extruder to life. In next I'll try to change MINIMUM_STEPPER_PULSE length.

Are you sure your driver is not in standalone mode?

On September 29, 2020 1:28:00 PM GMT+03:00, SirYasko notifications@github.com wrote:

Enabling SQUARE_WAVE_STEPPING didn't help. Still if K>0 extruder stops in either SpreadCycle or StealthChop mode. After that you have to turn printer off and on - reverting K to 0 does not bring extruder to life. In next I'll try to change MINIMUM_STEPPER_PULSE length.

--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/MarlinFirmware/Marlin/issues/16076#issuecomment-700613894

What do you mean I'm sure? Of course I'm not sure - how can I check it?
I've defined:

define X_DRIVER_TYPE TMC2208_STANDALONE

define Y_DRIVER_TYPE TMC2208_STANDALONE

define Z_DRIVER_TYPE TMC2208_STANDALONE

and unspecified extruder
//#define E0_DRIVER_TYPE A4988
(tried also with #define E0_DRIVER_TYPE TMC2208_STANDALONE)

Furthermore checked MINIMUM_STEPPER_PULSE 1/2/3 - still no success -> extruder stops!

Anyone here who has a Creality 1.1.5 board and working LA?

Anyone here who has a Creality 1.1.5 board and working LA?

Linear Advance is not compatible with those 1.x boards.

What do you mean I'm sure? Of course I'm not sure - how can I check it?
I've defined:

define X_DRIVER_TYPE TMC2208_STANDALONE

define Y_DRIVER_TYPE TMC2208_STANDALONE

define Z_DRIVER_TYPE TMC2208_STANDALONE

and unspecified extruder
//#define E0_DRIVER_TYPE A4988
(tried also with #define E0_DRIVER_TYPE TMC2208_STANDALONE)

Furthermore checked MINIMUM_STEPPER_PULSE 1/2/3 - still no success -> extruder stops!

Anyone here who has a Creality 1.1.5 board and working LA?

It's standalone — configuration options for disabling StealthChop won't work in Marlin. You have to flash your driver manually.

I'm just poking this to prevent it from going stale.

Good morning all,

[sorry, this is a machine translation, I don't speak English]

I allow myself to share my experience on the subject.
I have the problem on a TRONXY-X5SA-400 (CHUTI V6 TMC2225 STANDALONE).
I decided to spend it on MARLIN to have LINEAR ADVANCE mainly. What was my joy when I successfully printed calibration objects (acceleration, xyz cube ...) so perfect compared to the Tronxy firmware. But it was short-lived, because when I wanted to print more complex objects with lots of curves, so lots of small segments, arrived at the 2nd or 3rd layer, no more extruder.
OK, I've read your comments, and my goal is not to repeat what was said, but to notice a few weird little things:
By disabling the StealthChop from the extruder TMC (yes, it's a standalone, so normally it shouldn't do anything ...), I manage to print the gcode that made it crash at the 2nd layer, until the height of 12 mm. It's strange. I tried to tweak various parameters (pulse and others, but I did not notice which one modified the behavior ...), and I arrived at a height of ~ 2.5 mm. By putting K = 0, but with Marlin compiled with the LINEAR ADVANCE, this object is printed correctly.

But other objects do not arrive at the end of printing with the functional extruder, even with K = 0. I will try again by recompiling MARLIN without the LINEAR ADVANCE ... I will keep you posted, but I'm afraid that even if the next print works, I'm not sure if I have the problem based on other prints more complex, or rather more stressful for the TMC. I have the impression that there is a piloting problem in the Stepper library or in its use with Marlin, and the problems with TMC2208 (and similar), StealthChop and / or Linear Advance are only aggravating factors. I am not a developer and I do not understand everything in the code.
=> Sorry for that, I was not present when the extrusion stopped, so I did not see whether the motor was rotting or not. Finally when I wanted to do the test without the compiled LINEAR ADVANCE, I noticed that the filament was blocked at the entrance of the extruder. I would do a test again just in case, with the LINEAR ADVANCE and K = 0, but a priori it does not come from there.

I also tried to add an additional heatsink on the TMC2225, but that didn't change anything. The TMC crashes in the exact same spot with or without it.

For the moment, I am not going to deactivate the StealthChop directly on the TMC2225 with the OTP, because if I understood correctly, this is definitive.

bug_with_K0.80.gcode.txt

@phcay this matches what I tell people. Even if you think you have linear advance working, you could still encounter failures at a random time, possibly hours into a print.

I just wanted to add that I am experiencing this issue as well. I have an Eryone Thinker SE (which uses TMC2208 drivers in standalone mode on a rebranded RAMBo board). Tried with latest code from 2.0.x branch and bugfix-2.0.x branch and problem occurs. If I don't enable LIN_ADVANCE, it works fine. Having LIN_ADVANCE enabled, I cannot even extrude 100mm of filament from the menu. It'll extrude a bit and then the motor will be disabled (easy to turn by finger). I have LIN_ADVANCE enabled on other boards without issues, but the other boards are 32-bit boards. The Eryone Thinker is the only printer I have that is still running on an 8-bit ATMEGA 2560 board.

Also, this happens when I set the driver to TMC2208_STANDALONE, and even when I don't specify a driver type.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

weed2all picture weed2all  Â·  312Comments

viperchannel picture viperchannel  Â·  415Comments

Squid116 picture Squid116  Â·  172Comments

revilor picture revilor  Â·  370Comments

GhostlyCrowd picture GhostlyCrowd  Â·  157Comments