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)
- 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, butDEFAULT_RETRACT_ACCELERATION
is set to 500 mm/s2 and (with noM204
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.