2

I hope someone can poke me in the right direction, I´ve been failing to find a way around this problem and trying for about a week.

My setup is pretty custom, I am using a BTT SKR 1.4 Turbo with TMC2208 driver and a BTT TFT V3 display. At the beginning of this problem I´ve added a second Z-Axis to my printer and made the mistake to declare both axes in Marlin (as I am only using one driver, I should not have to alter Marlin for this, but I found that out too late). At this point, I updated Marlin to take my new steps/mm for the Z-axis, but no matter how often I did, the firmware didn´t seem to change anything. Later (out of pure hopelessness) I used the M502 Command, followed by M500 to save and somehow this made my axis work and set the correct steps/mm out of my firmware (at this point, I already found the mistake in Marlin mentioned above).

Relieved I started my first print... But the extruder motor (bowden setup) stopped turning and I don't know why. Now, I´ve been stuck with this strange behavior for a week:

When I freshly boot the printer, the extruder motor spins (correct length and correct direction). I can do this via M-Command, TFT35 and Pronterface (PC-USB direct to the mainboard). Whenever I start a print, the extruder just stops (motor engaged, but not trying to turn, no skipping steps). No matter how long I wait, even in a 2-hour print, the motor doesn´t spin a bit. After the print and if I cancel the print the motor won´t turn again (tried all the ways mentioned before). BUT when I kill the power to the printer and let it reboot I can use the extruder in all the mentioned ways without any problems.

I think this is a software problem, but I can´t find it. Looked through Marlin a few times, adjusted my Start G-code, looked at the existing G-code, I can not find the mistake. I´ll attach a few lines of G-code and my Start G-code (I use Cura 4.8). If someone knows a line in Marlin, I´ll look that up for you - it seems impossible to post the whole firmware somewhere. Start G-code:

G21 ;metric values
G91 ;relative positioning
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
M900 K0.22 ; set K-primus-factor
M117 K0.22 ; display K Value on display
G92 E0 ;zero the extruded length
G90 ; absolute positioning
M82 ;set extruder to absolute mode
G1 Z1 F500 ;move up slightly
G1 Y60.0 Z0 E9.0 F500.0;intro line
G1 Y100.0 E21.5 F500.0 ;continue line

G-Code: G1 F600 Z0.3 G1 F1500 E0 G1 F1200 X99.215 Y92.699 E0.06147 G1 X99.708 Y92.391 E0.09734 G1 X100.377 Y92.083 E0.14279 G1 X100.743 Y91.958 E0.16666 G1 X101.484 Y91.803 E0.21337 G1 X102.187 Y91.748 E0.25689 G1 X103.552 Y91.72 E0.34114 G1 X118.764 Y91.72 E1.27986

If there are any ideas, please tell me. I am completely lost at this point!

Edit: a few mistakes are gone now, formatting and PS.: "blockage of the extruder-motor" after starting a print happens no matter how I start a print (SD TFT/Pronterface/SD Mainboard)

2 Answers2

3

Extruder stops to spin

The problem you described seem to be reported elsewhere for TMC in relation to stealthChop mode (unsure, see below) and linear advance. For details look at this comment in Extruder stops during print (Bugfix-2.0.x) #17944. An advice from there is to supplement the G-code with (my interpretation):

M569 S0 E ; disable stealthChop for extruder (use spreadCycle)
M900 K0   ; disable linear advance

There is also another discussion TMC2208 extruder driver shuts itself off in spreadcycle mode with pressure advance enabled #1774 for Klipper. Above summary is just a result of my quick look through, I suggest to re-read these articles with more insight.

Also I propose to do following to doublecheck:

  • execute M503 (without parameters) before and after print, compare reports (especially: M92, M203, M204)
  • verify EXTRUDE_MINTEMP parameter in Configuration.h (I am not sure how does it behave during the print)
  • I also saw the remedy: "Then I changed the extruder stepper motor wires and the problem is now fixed", but it is the edge case.

Extrusion mode

I personally prefer to use extrusion in relative mode, because it allows to manipulate G-code or restart the print from any line. You would need to put M83 in starting G-code instead of current M82, together with enabling Cura setting (Special Modes > Relative Extrusion). I am not sure what happens currently with your filament between in your file's:

  M82 ;set extruder to absolute mode
  G1 Y60.0 Z0 E9.0 F500.0;intro line
  G1 Y100.0 E21.5 F500.0 ;continue line
  ...
  G1 F1500 E0

For me it looks like it's retreating 21 mm of filament just at the start of print? So it cannot really print for several consecutive G-code lines, does it?

Marlin settings vs EEPROM

When updating settings in Marlin like steps/mm you should be aware, that values stored in EEPROM take precedence. Reinstalling firmware will not clear the EEPROM settings. If you want to make persistent change, save to EEPROM and alter the firmware config, to have these values secured for future as "defaults".

octopus8
  • 986
  • 5
  • 18
3

I'm glad I found this forum and solution to the exact issue I was experiencing. For the context, I've got Artillery Genius Pro with original board but upgraded drivers to TMC2208. I was successfully printing with linear advance enabled (K=0.25) until recently, when I changed heat-break to all-metal. As result I was able to reduce retraction to 0.25 mm and lower K to just 0.05. After that change the extruder started to stop turning in mid print, usually where there were multiple, frequent retractions due to enabled linear advance, e.g. when printing quite narrow part of top/bottom skin.

Following your advice I disabled linear advance (K=0) and it resolved the issue. Btw, M569 is not recognized by my Marlin compilation, so I assume my drivers are running in stealthChop mode.

However I didn't want to give up with linear advance, and turned it back, but for slightly higher value, K=0.06, and to my surprise, the stepper motor didn't stop even once for a few different prints. I still need to check it for some other prints, e.g. even more narrow stripe of skin, but so far there's hope it will work.

This makes me think that there's some lower limit for K which TMC2208 can handle.

So for anyone with the same issue, please try different values for K before you disable it completely ;)