MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.19k stars 19.22k forks source link

[BUG] Knocking noise when moving TMC2208 (UART) #14183

Closed oechslein closed 4 years ago

oechslein commented 5 years ago

Description

I switched from Marlin 1.1 (bugfix_1.1.x - 7cc1410070067aa056ee17a0a32d91d41cf599c9) to (bugfix_2.0.x 8e8e48f9004155897d572a099131b0b62592cee6). Without changing HW I'm now hearing always a knocking noise (slow or fast moves) on X, Y, Z. This noise wasn't there before.

I do have an Ender 3 with an MKS Gen L board, TMC2208 UART on X, Y, E and a ST820 on E (and BLTOUCH).

Steps to Reproduce

Use my config and probably also my printer...

Expected behavior: Same noise level as with 1.1 Actual behavior: Knocking noise

Additional Information

20190529_Bug_Report_Noise.zip

Videos are here: https://www.dropbox.com/sh/ip6kgwu06ekkdgu/AAAhQOQFqq-Jsm_XOYGWIPZga?dl=0

token47 commented 4 years ago

MONITOR_DRIVER_STATUS with SoftwareSerial on an AVR will interfere with stepper timing in very large ways. Reading or writing a single byte will cause about 90 microseconds of jitter to the stepper timing, because interrupts have to be disabled for an entire byte duration.

Point is that it worked before (2.0.x april and 1.1.9). Or was it lacking any new feature?

rado79 commented 4 years ago

switching to Marlin 2.0.1 did it for me - no more continuous knocking with or without MONITOR_DRIVER_STATUS. SKR 1.3, TMC2208/2209, 24V, latest TMC library.

jacekk015 commented 4 years ago

Unfortunately no-go for me on Ender3 https://youtu.be/i_z30hmofRw

@rado79 Could you post your config files? Configuration.h and Configuration_adv.h

michaelsheridan23 commented 4 years ago

@rado79 the SKR is a 32 bit board. This problem is only known to exist on 8-bit boards like the MKS gen l. Did you experience the knocking noise with the SKR on an earlier build?

rjaros87 commented 4 years ago

2.0.1 MKS Gen L1.0 + TMC2208 still knocking. Do we have trouble to find the commit that caused knocking?

rjaros87 commented 4 years ago

So I think I found useful information. Tested with TMCStepper 0.6.1.

This commit was last without knocking: 2019-05-26 | 74f44783ac77e0baebb9555b9422fb5610b87d9b | ESP32 servo support (#14109)

This commit introduce knocking :( 2019-05-26 | 1c86fbc60bad74957c872cbd6bc87900a3f127d8 | TMC updates, capture LCD changes (#14074) with fix (cherry-picked): 2019-05-28| bf4a0db97f6dc00b20afdb508a00b06c9ba46fa6 | TMC LCD followup (#14134)

@teemuatlut could you take a look what could cause knocking?

teemuatlut commented 4 years ago

Originally monitoring skipped drivers that used SW UART, so obviously there wouldn't be an issue if no drivers were checked.

sjasonsmith commented 4 years ago

I think we need to add a sanity check to prevent using MONITOR_DRIVER_STATUS on AVR with software serial. Every check will consume the CPU for hundreds of microseconds, which just doesn’t seem viable to me.

WieFel commented 4 years ago

I am facing the issue of knocking steppers on my Ender 3 Pro regardless of which version of Marlin I use.

I tried versions 1.1.9, 2.0.0 and the latest 2.0.1. The line #define MONITOR_DRIVER_STATUS is commented out (disabled) for me in all three versions by default. Enabling it doesn't change anything.

Even when I move the steppers using the "Move axis" option of the printer, the knocking appears, but only on the X and Y axis.

rado79 commented 4 years ago

@rado79 the SKR is a 32 bit board. This problem is only known to exist on 8-bit boards like the MKS gen l. Did you experience the knocking noise with the SKR on an earlier build?

Yes, confirm. Had the same knocking as in the video above. has disappeared with xmas relaese.

rado79 commented 4 years ago

Unfortunately no-go for me on Ender3 https://youtu.be/i_z30hmofRw

@rado79 Could you post your config files? Configuration.h and Configuration_adv.h

Configuration.zip Configuration_adv.zip

boelle commented 4 years ago

@oechslein when you get time please have a retest

and as bugfix 2.0.x is updated daily please retest say every 14 days or so

oechslein commented 4 years ago

@boelle Sorry I switched to a 32bit board (with HW Serial) and this only happens with 8bit boards/ SW Serial. However looking at the linked merged commit, the problem mentioned here can no longer occur since MONITOR_DRIVER_STATUS is now disallowed.

github-actions[bot] commented 4 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.