Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Fine Tuning TMC2660 drivers to a specific motor(s)?

    Tuning and tweaking
    2
    4
    1269
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • botanic2000
      botanic2000 last edited by

      Good day everyone!

      I have a rather advanced question, which I can't quite wrap my mind aroud.
      I've recently assebled a CoreXY machine and when I run it at the speeds under 60mm/s I get quite a noticeable vibration coming from the motors, to which the whole frame resonates and makes nasty noize. All the mechanical stuff has been checked dozen of times and I can't see any problems there. Also, when I move gantry by hand with motors off, I don't any vibration, like I'd get when the actual motors are moving it. So, chanses are 9 of 10 that the default settings of the drivers are not quite matching the motors I'm using.

      I've tried any possible current in the range of 800mA to 1800mA

      If I run motors with belts removed, they do seem to run quite smooth

      The vibration frequency does seem to match full step frequency

      Drivers are configured to run in x16 microstepping, with interpolation on and spreadCycled forced to be on by a GCode command

      If I disable the interpolation and run drivers in x16 the audiable differnce is minimum, compared to interpolation on

      The type of motors I am using are kinda on the far end of the NEMA 17 stuff, so my guess would be that default mid-range settings of chopper register are not quite matching whatever I'm using. I went through the TMC2660 datasheet (pages 33-34) and it does say, that drivers could tuned to better match a specific motor type to be used. This can be achieved by setting a certain values in CS and HSTRT and HSEND register, based on the calculations using the formulas provided in the datasheet.
      Also, a quote from datasheet on this matter:

      As experiments show, the setting is quite independent of the motor, because higher current motors
      typically also have a lower coil resistance. Choosing a medium default value for the hysteresis (for
      example, effective HSTRT+HEND=10) normally fits most applications. The setting can be optimized by
      experimenting with the motor: A too low setting will result in reduced microstep accuracy, while a
      too high setting will lead to more chopper noise and motor power dissipation.
      When measuring the
      sense resistor voltage in motor standstill at a medium coil current with an oscilloscope, a too low
      setting shows a fast decay phase not longer than the blanking time. When the fast decay time
      becomes slightly longer than the blanking time, the setting is optimum. You can reduce the off-time
      setting, if this is hard to reach.

      Highlite in black is somewhat I am experiencing - vibration/noize and motors getting hotter then I'd expect - at 70% set current they heat up to ~70C after half hour of operation.

      So, I have few questions:

      1. Has anyone tried to play around with the settings mentioned above?
      2. Are the CS and HSTRT+HEND accesible using any GCode?
      3. Can anyone advise a NEMA17 motor that is known for sure to be dead silent when driven by TMC2660? Just in case... 🙂

      The setup is following:

      1. 24 V supply
      2. DuetWiFi with latest firmware (updated yesterday)
      3. Motors used - "Longs Stepper Motor" 17HS8403N with following specs
        Rate Voltage - 3.1V
        Rate Current - 2.5A
        Resistance - 1.25Ohm
        Inductance - 1.6mH

      Any help or feedback is welcome.

      P.S.: if there is a test point to check Vsense on the driver, I can connect a scope to see exactly whats happening....

      1 Reply Last reply Reply Quote 0
      • dc42
        dc42 administrators last edited by dc42

        1. Search for other posts on motor noise at standstill to see what other users have tried.
        2. You can set the entire chopper control register using M569.
        3. There are no test points on the sense resistors, but the sense resistors are easy to probe.

        HTH David

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 0
        • botanic2000
          botanic2000 last edited by

          Thanks for the reply.

          Keyword "standstill" did, in fact, bring me to a guide that responses to most of my questions above:
          https://duet3d.dozuki.com/Wiki/Reducing_Stand-Still_Noise
          However, to properly use the formulas from Trinamic (instead pf just poking around) I need to know the CS value from SGCSCONF register (stallGuard/coolStep related) that is used by RRF.
          Unfortunatelly, this article on the WIKI does not provide such kind of info:
          https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing

          Can you please advise, what is a default CS value, used by RRF?

          Kind regards

          1 Reply Last reply Reply Quote 0
          • dc42
            dc42 administrators last edited by

            If you send M569 P# where # is the driver number, it will report the current value of the chopper control register at the end of the line.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            1 Reply Last reply Reply Quote 0
            • First post
              Last post
            Unless otherwise noted, all forum content is licensed under CC-BY-SA