Welcome! Log In Create A New Profile

Advanced

TMC2130 Extremely loud

Posted by Kubas_inko 
TMC2130 Extremely loud
April 27, 2019 09:12AM
Hey everyone.
So, I finally decided to install my brand new TMC2130 drivers. Everything went well, they are recognized with M122. Settings in marlin are mostly default, just enabled the TMC2130 drivers.
But I have a big problem with them. Instead of being quiet, they are extremely loud (louder than my default A4988s). Here is a video with TMC2130 and here with A4988.

Any ideas why is this happening? Thanks.

My printer: FLSun Kossel (simply a delta) with MKS Gen L, 12V PSU.

M122:
14:46:10.580 : X	Y	Z
14:46:10.581 : Enabled		false	false	false
14:46:10.581 : Set current	1000	1000	1000
14:46:10.583 : RMS current	994	994	994
14:46:10.586 : MAX current	1402	1402	1402
14:46:10.587 : Run current	17/31	17/31	17/31
14:46:10.588 : Hold current	8/31	8/31	8/31
14:46:10.590 : CS actual		8/31	8/31	8/31
14:46:10.590 : PWM scale		1	1	1
14:46:10.591 : vsense		0=.325	0=.325	0=.325
14:46:10.593 : stealthChop	true	true	true
14:46:10.593 : msteps		16	16	16
14:46:10.595 : tstep		1048575	1048575	1048575
14:46:10.596 : pwm
14:46:10.596 : threshold		0	0	0
14:46:10.597 : [mm/s]		-	-	-
14:46:10.598 : OT prewarn	false	false	false
14:46:10.599 : OT prewarn has
14:46:10.600 : been triggered	false	false	false
14:46:10.600 : off time		5	5	5
14:46:10.602 : blank time	24	24	24
14:46:10.602 : hysteresis
14:46:10.603 : -end		2	2	2
14:46:10.603 : -start		3	3	3
14:46:10.605 : Stallguard thrs	0	0	0
14:46:10.605 : DRVSTATUS	X	Y	Z
14:46:10.606 : stallguard
14:46:10.606 : sg_result		0	0	0
14:46:10.608 : fsactive
14:46:10.608 : stst		X	X	X
14:46:10.608 : olb
14:46:10.609 : ola
14:46:10.609 : s2gb
14:46:10.609 : s2ga
14:46:10.611 : otpw
14:46:10.611 : ot
14:46:10.612 : Driver registers:	X = 0x80:08:00:00
14:46:10.612 : Y = 0x80:08:00:00
14:46:10.614 : Z = 0x80:08:00:00

Stepper Driver types:
#define X_DRIVER_TYPE  TMC2130
#define Y_DRIVER_TYPE  TMC2130
#define Z_DRIVER_TYPE  TMC2130
#define X2_DRIVER_TYPE A4988
#define Y2_DRIVER_TYPE A4988
#define Z2_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988
#define E1_DRIVER_TYPE A4988
#define E2_DRIVER_TYPE A4988
#define E3_DRIVER_TYPE A4988
#define E4_DRIVER_TYPE A4988
TMC2130 config:
#if HAS_TRINAMIC

  #define R_SENSE           0.11  // R_sense resistor for SilentStepStick2130
  #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
  #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256

  #define X_CURRENT         1000  // rms current in mA. Multiply by 1.41 for peak current.
  #define X_MICROSTEPS        16  // 0..256

  #define Y_CURRENT         1000
  #define Y_MICROSTEPS        16

  #define Z_CURRENT          1000
  #define Z_MICROSTEPS        16

  #define X2_CURRENT         800
  #define X2_MICROSTEPS       16

  #define Y2_CURRENT         800
  #define Y2_MICROSTEPS       16

  #define Z2_CURRENT         800
  #define Z2_MICROSTEPS       16

  #define E0_CURRENT         800
  #define E0_MICROSTEPS       16

  #define E1_CURRENT         800
  #define E1_MICROSTEPS       16

  #define E2_CURRENT         800
  #define E2_MICROSTEPS       16

  #define E3_CURRENT         800
  #define E3_MICROSTEPS       16

  #define E4_CURRENT         800
  #define E4_MICROSTEPS       16

  /**
   * Use software SPI for TMC2130.
   * The default SW SPI pins are defined the respective pins files,
   * but you can override or define them here.
   */
  //#define TMC_USE_SW_SPI
  //#define TMC_SW_MOSI       -1
  //#define TMC_SW_MISO       -1
  //#define TMC_SW_SCK        -1

  /**
   * Use Trinamic's ultra quiet stepping mode.
   * When disabled, Marlin will use spreadCycle stepping mode.
   */
  #define STEALTHCHOP

  /**
   * Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
   * like overtemperature and short to ground. TMC2208 requires hardware serial.
   * In the case of overtemperature Marlin can decrease the driver current until error condition clears.
   * Other detected conditions can be used to stop the current print.
   * Relevant g-codes:
   * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
   * M911 - Report stepper driver overtemperature pre-warn condition.
   * M912 - Clear stepper driver overtemperature pre-warn condition flag.
   * M122 S0/1 - Report driver parameters (Requires TMC_DEBUG)
   */
  #define MONITOR_DRIVER_STATUS

  #if ENABLED(MONITOR_DRIVER_STATUS)
    #define CURRENT_STEP_DOWN     50  // [mA]
    #define REPORT_CURRENT_CHANGE
    #define STOP_ON_ERROR
  #endif

  /**
   * The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
   * This mode allows for faster movements at the expense of higher noise levels.
   * STEALTHCHOP needs to be enabled.
   * M913 X/Y/Z/E to live tune the setting
   */
  //#define HYBRID_THRESHOLD

  #define X_HYBRID_THRESHOLD     100  // [mm/s]
  #define X2_HYBRID_THRESHOLD    100
  #define Y_HYBRID_THRESHOLD     100
  #define Y2_HYBRID_THRESHOLD    100
  #define Z_HYBRID_THRESHOLD       3
  #define Z2_HYBRID_THRESHOLD      3
  #define E0_HYBRID_THRESHOLD     30
  #define E1_HYBRID_THRESHOLD     30
  #define E2_HYBRID_THRESHOLD     30
  #define E3_HYBRID_THRESHOLD     30
  #define E4_HYBRID_THRESHOLD     30

  /**
   * Use stallGuard2 to sense an obstacle and trigger an endstop.
   * You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
   * X, Y, and Z homing will always be done in spreadCycle mode.
   *
   * X/Y/Z_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
   * Higher values make the system LESS sensitive.
   * Lower value make the system MORE sensitive.
   * Too low values can lead to false positives, while too high values will collide the axis without triggering.
   * It is advised to set X/Y/Z_HOME_BUMP_MM to 0.
   * M914 X/Y/Z to live tune the setting
   */
  //#define SENSORLESS_HOMING // TMC2130 only

  #if ENABLED(SENSORLESS_HOMING)
    #define X_HOMING_SENSITIVITY  8
    #define Y_HOMING_SENSITIVITY  8
    #define Z_HOMING_SENSITIVITY  8
  #endif

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

  /**
   * M915 Z Axis Calibration
   *
   * - Adjust Z stepper current,
   * - Drive the Z axis to its physical maximum, and
   * - Home Z to account for the lost steps.
   *
   * Use M915 Snn to specify the current.
   * Use M925 Znn to add extra Z height to Z_MAX_POS.
   */
  //#define TMC_Z_CALIBRATION
  #if ENABLED(TMC_Z_CALIBRATION)
    #define CALIBRATION_CURRENT 250
    #define CALIBRATION_EXTRA_HEIGHT 10
  #endif

  /**
   * You can set your own advanced settings by filling in predefined functions.
   * A list of available functions can be found on the library github page
   * [github.com]
   * [github.com]
   *
   * Example:
   * #define TMC_ADV() { \
   *   stepperX.diag0_temp_prewarn(1); \
   *   stepperY.interpolate(0); \
   * }
   */
  #define TMC_ADV() {  }

#endif // TMC2130 || TMC2208

Edited 4 time(s). Last edit at 04/27/2019 02:17PM by Kubas_inko.
Attachments:
open | download - Configuration.h (78.1 KB)
open | download - Configuration_adv.h (68.7 KB)
Re: TMC2130 Extremely loud
April 27, 2019 10:27AM
What is your vmot voltage? (12v or 24v)

what brand of TMC2130 , perhaps your R_SENSE value is not correct so your over driving them...
Re: TMC2130 Extremely loud
April 27, 2019 10:43AM
Quote
Dust
What is your vmot voltage? (12v or 24v)

what brand of TMC2130 , perhaps your R_SENSE value is not correct so your over driving them...
12V PSU.
They are FYSETC.
R_SENSE is default, thus 0.11. I don't know how should I change this.
Re: TMC2130 Extremely loud
April 27, 2019 10:50AM
24V for the motors is MUCH better.

But you might want to use hybrid threshold for the TMC2130's to work in both modes (speed dependent), but that will need you to discover usable threshold values for switching between stealthchop and spreadcycle.

Doesn't a delta need a 32-bit board for the stepping and kinematic calculations etc to keep up ?
Re: TMC2130 Extremely loud
April 27, 2019 11:16AM
Quote
Pippy
24V for the motors is MUCH better.

But you might want to use hybrid threshold for the TMC2130's to work in both modes (speed dependent), but that will need you to discover usable threshold values for switching between stealthchop and spreadcycle.

Doesn't a delta need a 32-bit board for the stepping and kinematic calculations etc to keep up ?
I know that 24v is better, but that does not explain why it is so freaking loud. It is way louder than A4988, which does not make any sense at all.

8bit is "more" than enough for a delta.

EDIT: Just tried spreadCycle mode to see how different it is. It has an extremely loud constant high pitch but otherwise is quieter than the stealthchop (but the high pitch makes it unusable as it almost hearts my ears).

Edited 3 time(s). Last edit at 04/27/2019 11:30AM by Kubas_inko.
Re: TMC2130 Extremely loud
March 28, 2020 03:36AM
Did you fix it? I have the exact same problem
Re: TMC2130 Extremely loud
March 28, 2020 01:06PM
Did you tried to calculate the right values for the spreadCycle chopper parameters in Configuration_adv.h?
Maybe chopper freq. is to low.
{ off_time[1..15], hysteresis_end[-3..12], hysteresis_start[1..8] }
You can calculate it using "TMC2130_Calculations.xlsx" with your Motor Parameters (Coil inductance and resistance). This can be found here: Link (GitHub)
You need to put the calculated parameters into "tmc_util.h".
example:
#define CHOPPER_TEST_TMC2130_24V { 5, -2, 1}
And then use parameter set in Configuration_adv.h.
#define CHOPPER_TIMING CHOPPER_TEST_TMC2130_24V     //42HS19 2A @24V
Maybe this will help. ... please let us know
Re: TMC2130 Extremely loud
April 06, 2020 09:56AM
Hi, just wanted to chime in and say I have the exact same problem with my printer! Sounds exactly the same like in the video (not only loud but also kind of "rattly" though nothing is loose). My printer is a Prusa i3 MKIII built by me (not from Prusa) running from a RAMPS board (12V). I have rather cheap steppers so maybe I need to change the settings that @AndY_1981 mentioned. WIll try it asap!

Dave
Re: TMC2130 Extremely loud
April 06, 2020 09:58AM
Quote
AndY_1981
Did you tried to calculate the right values for the spreadCycle chopper parameters in Configuration_adv.h?
Maybe chopper freq. is to low.
{ off_time[1..15], hysteresis_end[-3..12], hysteresis_start[1..8] }

Where can I find that line? Don't have it in my Configuration_adv.h...

I also have no tmc_util.h file.

These are my stepper motors:
[www.datasheetcafe.com]

Edited 2 time(s). Last edit at 04/06/2020 10:08AM by printer_dave.
Re: TMC2130 Extremely loud
April 08, 2020 03:10PM
@printer_dave
I try to use 2.0.5.2 ... maybe your Firmware version is to old ... at 2.0.5.2 you can find it in configuration_adv.h at line 2253
For your Steppers it should look like this in the "tmc_util.h" (if you use 16MHz CPU):
#define CHOPPER_xxx_12V { 5, -3, 1}
Re: TMC2130 Extremely loud
April 08, 2020 10:40PM
Quote
AndY_1981
@printer_dave
I try to use 2.0.5.2 ... maybe your Firmware version is to old ... at 2.0.5.2 you can find it in configuration_adv.h at line 2253
For your Steppers it should look like this in the "tmc_util.h" (if you use 16MHz CPU):
#define CHOPPER_xxx_12V { 5, -3, 1}

Hi Andy, thanks for your reply! I downloaded the latest version from the main 2.0 branch and started porting over my configuration and configuration_adv.
In line 2257, I have:
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V

I found in tmc_util.h, line 32:
#define CHOPPER_DEFAULT_12V  { 3, -1, 1 }
and changed it to
#define CHOPPER_DEFAULT_12V  { 5, -3, 1 }
, but I can't hear a difference in sound.

I've got to say though, that the printer does sound less loud than on the old version of Marlin in general. But now I have another issue regarding the automatic homing, but that's another issue grinning smiley
Re: TMC2130 Extremely loud
April 17, 2020 02:14PM
Hello, I had same problem with my Creality Ender 3 (I am using BigTreeTech SKR mini e3 1.2 with TMC2209). But when I turned off stealthChop (so it used spreadCycle), surprisingly, it was quieter. I didn't even hear any high pitch that @Kubas_inko mentioned. So I turned off both stealthChop and hybrid mode in Configuration_adv.h and now it is nice quiet. How is it possible that spreadCycle makes my printer quieter than stealthChop?

Edited 1 time(s). Last edit at 04/17/2020 04:14PM by MatusMisiak.
Re: TMC2130 Extremely loud
May 10, 2020 09:35AM
Hallo, I have the same problem as MatusMisiak with my Artillery Sidewinder X1 and TMC2208 drivers on X and Y.

My second printer (RAMPS@12V) works fine with TMC2130 drivers since years. In StealthChop mode the TMC2130 are even quieter than in SpreadCycle (as it should be). The Marlin firmware has the same version on both printers (2.0.5).

I changed to TMC5160 drivers but the problem was still there. Then I took the TMC2130 from the second printer and they work fine! WEIRD confused smiley

In my opinion the problem has something to do with the autotune feature of StealthChop at the beginning of motor movements. The TMC2208/2209/5160 with StealthChop2 use an other technique as the older TMC2130. Perhaps the drivers set to high values for the PWM regulation which causes to high coil currents and noise. Also cheap stepper motors and long capacitive wires could gain the effect.

I tryed to investigate the behaviour of the drivers but have no solution so far. I stay tuned!

@printer_dave
Which drivers do you have? Are you using SteathChop or SpreadCycle? The CHOPPER_TIMINGS only influence SpreadCycle.
Re: TMC2130 Extremely loud
June 14, 2020 10:01PM
im also having this issue using an skr 1.3 with BTT tmc2209's. stealthchop/spreadcycle sound almost the same if speeds are low enough that stealthchop doesnt scream, but spreadcycle is actually quieter. stealthchop is essentially unusable as the motors make a crazy amount of noise. thy dont however, lose steps.

im trying to work out my chopper setting using the table above but im sorta lost and stumbling through it.

Edited 1 time(s). Last edit at 06/14/2020 11:21PM by freight.
Sorry, only registered users may post in this forum.

Click here to login