<p>I'm having issues with retraction. My printer prints very well normally, but has an intermittent problem with retraction: the retraction itself always happens, but sometimes the subsequent recovery just doesn't take place, which obviously results in gaps in the extrusion. I'm running out of diagnostics to try - can anyone suggest what might be causing this? I have:</p>
<ul>
<li>Removed the stepper from the extruder so it's free running</li>
<li>Changed the driver board (to a newer design, although both are based on the TMC2130)</li>
<li>Reseated all the connectors</li>
<li>Switched off the driver's &quot;StealthChop&quot; function in favour of the fallback &quot;SpreadCycle&quot;</li>
<li>Tried G-code produced in Prusa Slicer and known good code from Cura (taken from a retraction test <a href="https://www.thingiverse.com/thing:2563909" rel="nofollow noreferrer">put up on Thingiverse</a>)</li>
<li>Updated Marlin from 2.0.4.4 to 2.0.6.1</li>
</ul>
<p>The machine is a Creality Ender 3, although the previous owner (who has reported no problems when he was using it; he's a friend, not an anonymous eBay seller) replaced the board with an MKS Gen L and the drivers with Big Tree Tech TMC2130s in SPI mode. The extruder stepper is the stock Creality model.</p>
<p>Other relevant settings:</p>
<ul>
<li>VRef on extruder driver is 0.875 V. As far as I can make out, the maximum suggested for these motors is 1.0 V</li>
<li>Extruder current is firmware set to 900 mA</li>
<li>Maximum feed rate for <code>E</code> is set in firmware to 25 mm/s, which I think is fairly low</li>
<li><code>DEFAULT_MAX_ACCELERATION</code> is set to 5000 mm/s<sup>2</sup>, but <code>DEFAULT_RETRACT_ACCELERATION</code> is set to 500 mm/s<sup>2</sup> and (with no <code>M204</code> instructions in the G-code) I would presume this takes precedence</li>
</ul>
<p>I'm tearing my hair out here! Most of the changes I listed above had no effect, but I would say that the change to SpreadCycle for the driver reduced the occurrence and it seems to be more prevalent when the retraction distance is increased (4 mm is worse than 2 mm). The thing that's really confusing is the lack of symmetry - retractions <em>always</em> work, feeding forwards during printing <em>always</em> works, but feeding forwards during recovery <em>sometimes</em> doesn't - the stepper just doesn't turn.</p>
<p>I can increase the VRef or current, reduce the retraction speed and acceleration further and perhaps one of these will be the answer, but I'd like, ideally, to understand what's going wrong so I can target my fix. Does anyone have any ideas?</p>
<p><strong>Edit</strong></p>
<p>After comment discussion on overheating drivers, I measured a steady temperature of 77 °C with a thermistor pushed to the bottom of the stepper driver's heatsink fins. Is this expected or could it represent an overheating problem?</p>
<p><strong>Edit 2</strong></p>
<p>It turns out that the terminal is periodically printing a message indicating there may be a problem with the driver temperature (e.g. <code>2020-09-14 23:22:15,877 - Recv: 00:00: E driver overtemperature warning! (900mA)</code>).</p>
<p>If there is a continuing problem, the stepper current should be throttled automatically, which is not happening. Nor is the actual overtemperature error condition being reached, because if this happened, the driver should completely shut down until it cools 25 °C and I believe Marlin should abandon the print at this point. Neither of these things seems to be happening, but perhaps the raised temperature is causing my stepper issues, nonetheless.</p>

CC BY-SA 4.0
2020-09-14T14:53:52.903Z
As I understand, `DEFAULT_RETRACT_ACCELERATION` is only relevant if you're using firmware retraction (`G10`/`G11`). Normally I'd assume not (it's not in stock Ender 3 firmware), but since there's clearly custom firmware you could be - are you?
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2020-09-14T15:49:36.697Z
No - retraction is done the old-school, slicer way. I hadn't realised this was only relevant for firmware retraction, but of course how would it know a move is retraction otherwise? `DEFAULT_ACCELERATION` is also set to 500, though, and I think that is relevant for all other moves that include an extruder parameter. If acceleration _was_ set too high, could it cause long feed instructions to be completely, but intermittently ignored?
Bob Sammers
CC BY-SA 4.0
2020-09-14T17:34:26.237Z
I don't think so, at least not directly. Is it possible the E stepper driver is overheating from driving high-acceleration retracts/unretracts, which are high-load operations, and shutting down momentarily while it returns to operable temperature?
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2020-09-14T17:35:05.173Z
Also, are the skipped recoveries entirely deterministic for a fixed gcode file? Or do they vary every time you print it?
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2020-09-14T19:09:43.117Z
Overheating probably is a possibility. I haven't measured the driver temperature and although there is a case fan, ventilation is perhaps less than it could be. I'd thought the low current, speed limits and apparently more efficient chopping algorithms the TMC2130 uses might make this a lower possibility, but I also don't know how an overheating driver might behave: this might be a classic indication for all I know. If I can measure the temperature of the heatsink, what range might I be looking for to indicate a problem?
Bob Sammers
CC BY-SA 4.0
2020-09-14T19:12:53.083Z
I believe the skipping is happening at random. It's certainly different between the two (different versions of the) TMC2130 boards I've used.
Bob Sammers
CC BY-SA 4.0
2020-09-15T15:04:30.433Z
Did you flash custom firmware?
Trish
CC BY-SA 4.0
2020-09-15T16:44:33.540Z
@BobSammers: I'm not sure what temperature is the limit, but my understanding is that most drivers have overtemp safety to shutdown when temp is too high.
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2020-09-15T19:48:08.720Z
@Trish Yes. It's stock Marlin but with changes to the two config files to support the hardware changes that the previous owner made to the printer. I didn't make the edits but I have seen them, merging the 2.0.4.4 config files I inherited to 2.0.6.x. To my limited understanding, they look like sensible alterations.
Bob Sammers
CC BY-SA 4.0
2020-09-15T19:57:14.743Z
@R... Yes, the TMC2130 datasheet talks about this. It "prewarns" at 125C, and an error condition and shutdown occurs at 150C; it then won't do anything until temp drops to 125C. As I seem to be getting only warning messages (see edit above), sporadically, and nothing more (and Marlin's automatic current reduction / print cancellation isn't kicking in), I don't know whether this is the whole story: this doesn't seem to be the right set of conditions for instructions to be dropped.
Bob Sammers
CC BY-SA 4.0
2020-10-23T09:44:33.070Z
@BobSammers I have the exact same issue on my tevo tarantula pro. No custom hardware installed, and, I don't get any error messages in the terminal (trying via octoprint). And I'm nowhere near the solution...
Timofey
CC BY-SA 4.0
2020-10-23T09:45:46.350Z
The weird thing though...I created a gcode file, the only thing it does is retracts and immediately recovers, multiple times. And I never seen this issue with this test. But as soon as I start printing something, the issue appears
Timofey
CC BY-SA 4.0
2020-10-24T12:34:37.010Z
@BobSammers if you're still struggling with this issue, I have managed to solve mine: the VREF on stepper drivers was about 1.3V which is too high. Lowering it to 1.2V completely solved the issue for me. So I'd suggest trying lowering it by 0.05V and see what gives the best results!
Timofey
CC BY-SA 4.0
2020-11-03T12:15:05.883Z
Thanks for your comments, @Timofey. I _think_ I've solved this and in a similar fashion to you. I've done two things: I've reduced the stepper current by 50mA and reduced `DEFAULT_MAX_ACCELERATION` to (from memory) 2000mm/s2. The first value was already at the default and the other I didn't think should be having any effect, but between them they seem to have sorted out the recovery and stopped the warning messages in the log. Classic change two things, don't know which has worked rookie error, but I'm happy with it as it is!
Bob Sammers
CC BY-SA 4.0
2021-06-02T17:40:57.333Z
This could also be unrelated to the extruder controller.  I've had issues like this when molten plastic injected itself into a gap between the heatsink and the hotend and solidified.  The result was increased friction which could cause the extruder motor to overheat or cause the filament to slip during retraction recovery.
user10489
<marlin><creality-ender-3><retraction><tmc2130><mks>
Retraction fine but recovery occasionally just doesn't happen
Bob Sammers
# Retraction fine but recovery occasionally just doesn't happen

(Asked by: username_0 on 2020-09-14)

I'm having issues with retraction. My printer prints very well normally, but has an intermittent problem with retraction: the retraction itself always happens, but sometimes the subsequent recovery just doesn't take place, which obviously results in gaps in the extrusion. I'm running out of diagnostics to try - can anyone suggest what might be causing this? I have:

* Removed the stepper from the extruder so it's free running
* Changed the driver board (to a newer design, although both are based on the TMC2130)
* Reseated all the connectors
* Switched off the driver's "StealthChop" function in favour of the fallback "SpreadCycle"
* Tried G-code produced in Prusa Slicer and known good code from Cura (taken from a retraction test [put up on Thingiverse](https://www.thingiverse.com/thing:2563909))
* Updated Marlin from 2.0.4.4 to 2.0.6.1

The machine is a Creality Ender 3, although the previous owner (who has reported no problems when he was using it; he's a friend, not an anonymous eBay seller) replaced the board with an MKS Gen L and the drivers with Big Tree Tech TMC2130s in SPI mode. The extruder stepper is the stock Creality model.

Other relevant settings:

* VRef on extruder driver is 0.875 V. As far as I can make out, the maximum suggested for these motors is 1.0 V
* Extruder current is firmware set to 900 mA
* Maximum feed rate for `E` is set in firmware to 25 mm/s, which I think is fairly low
* `DEFAULT_MAX_ACCELERATION` is set to 5000 mm/s2, but `DEFAULT_RETRACT_ACCELERATION` is set to 500 mm/s2 and (with no `M204` instructions in the G-code) I would presume this takes precedence

I'm tearing my hair out here! Most of the changes I listed above had no effect, but I would say that the change to SpreadCycle for the driver reduced the occurrence and it seems to be more prevalent when the retraction distance is increased (4 mm is worse than 2 mm). The thing that's really confusing is the lack of symmetry - retractions *always* work, feeding forwards during printing *always* works, but feeding forwards during recovery *sometimes* doesn't - the stepper just doesn't turn.

I can increase the VRef or current, reduce the retraction speed and acceleration further and perhaps one of these will be the answer, but I'd like, ideally, to understand what's going wrong so I can target my fix. Does anyone have any ideas?

**Edit**

After comment discussion on overheating drivers, I measured a steady temperature of 77 °C with a thermistor pushed to the bottom of the stepper driver's heatsink fins. Is this expected or could it represent an overheating problem?

**Edit 2**

It turns out that the terminal is periodically printing a message indicating there may be a problem with the driver temperature (e.g. `2020-09-14 23:22:15,877 - Recv: 00:00: E driver overtemperature warning! (900mA)`).

If there is a continuing problem, the stepper current should be throttled automatically, which is not happening. Nor is the actual overtemperature error condition being reached, because if this happened, the driver should completely shut down until it cools 25 °C and I believe Marlin should abandon the print at this point. Neither of these things seems to be happening, but perhaps the raised temperature is causing my stepper issues, nonetheless.

**Tags:** marlin, creality-ender-3, retraction, tmc2130, mks

> **Comments:**
> **username_1**: As I understand, `DEFAULT_RETRACT_ACCELERATION` is only relevant if you're using firmware retraction (`G10`/`G11`). Normally I'd assume not (it's not in stock Ender 3 firmware), but since there's clearly custom firmware you could be - are you?  
> **username_0**: No - retraction is done the old-school, slicer way. I hadn't realised this was only relevant for firmware retraction, but of course how would it know a move is retraction otherwise? `DEFAULT_ACCELERATION` is also set to 500, though, and I think that is relevant for all other moves that include an extruder parameter. If acceleration _was_ set too high, could it cause long feed instructions to be completely, but intermittently ignored?  
> **username_1**: I don't think so, at least not directly. Is it possible the E stepper driver is overheating from driving high-acceleration retracts/unretracts, which are high-load operations, and shutting down momentarily while it returns to operable temperature?  
> **username_1**: Also, are the skipped recoveries entirely deterministic for a fixed gcode file? Or do they vary every time you print it?  
> **username_0**: Overheating probably is a possibility. I haven't measured the driver temperature and although there is a case fan, ventilation is perhaps less than it could be. I'd thought the low current, speed limits and apparently more efficient chopping algorithms the TMC2130 uses might make this a lower possibility, but I also don't know how an overheating driver might behave: this might be a classic indication for all I know. If I can measure the temperature of the heatsink, what range might I be looking for to indicate a problem?  
> **username_0**: I believe the skipping is happening at random. It's certainly different between the two (different versions of the) TMC2130 boards I've used.  
> **username_2**: Did you flash custom firmware?  
> **username_1**: @username_0: I'm not sure what temperature is the limit, but my understanding is that most drivers have overtemp safety to shutdown when temp is too high.  
> **username_0**: @username_2 Yes. It's stock Marlin but with changes to the two config files to support the hardware changes that the previous owner made to the printer. I didn't make the edits but I have seen them, merging the 2.0.4.4 config files I inherited to 2.0.6.x. To my limited understanding, they look like sensible alterations.  
> **username_0**: @R... Yes, the TMC2130 datasheet talks about this. It "prewarns" at 125C, and an error condition and shutdown occurs at 150C; it then won't do anything until temp drops to 125C. As I seem to be getting only warning messages (see edit above), sporadically, and nothing more (and Marlin's automatic current reduction / print cancellation isn't kicking in), I don't know whether this is the whole story: this doesn't seem to be the right set of conditions for instructions to be dropped.  
> **username_3**: @username_0 I have the exact same issue on my tevo tarantula pro. No custom hardware installed, and, I don't get any error messages in the terminal (trying via octoprint). And I'm nowhere near the solution...  
> **username_3**: The weird thing though...I created a gcode file, the only thing it does is retracts and immediately recovers, multiple times. And I never seen this issue with this test. But as soon as I start printing something, the issue appears  
> **username_3**: @username_0 if you're still struggling with this issue, I have managed to solve mine: the VREF on stepper drivers was about 1.3V which is too high. Lowering it to 1.2V completely solved the issue for me. So I'd suggest trying lowering it by 0.05V and see what gives the best results!  
> **username_0**: Thanks for your comments, @username_3. I _think_ I've solved this and in a similar fashion to you. I've done two things: I've reduced the stepper current by 50mA and reduced `DEFAULT_MAX_ACCELERATION` to (from memory) 2000mm/s2. The first value was already at the default and the other I didn't think should be having any effect, but between them they seem to have sorted out the recovery and stopped the warning messages in the log. Classic change two things, don't know which has worked rookie error, but I'm happy with it as it is!  
> **username_4**: This could also be unrelated to the extruder controller.  I've had issues like this when molten plastic injected itself into a gap between the heatsink and the hotend and solidified.  The result was increased friction which could cause the extruder motor to overheat or cause the filament to slip during retraction recovery.  

---

## 0 answers

