Jump to content
UltiMaker Community of 3D Printing Experts

STEP-BY-STEP: Installation of SSS TMC2130 on UMO


Recommended Posts

Posted (edited) · STEP-BY-STEP: Installation of SSS TMC2130 on UMO

Hey everyone,

I tried the new SSS drivers (TMC 2130) around a week now.

I learned a bit about how to operate them and how to use the new features.

And... finally I also learned how to blow them up :D

In this thread I want to collect information about the benefits of the new drivers and how to do install them correctly on an UM Original and similar RepRap based electronics. The other thread is used to discussions, problems, "brainstorming" and so on.

 

GENERAL INFORMATION

The new stepper driver TMC 2130 (IC by Trinamic, StepStick by Watterott) supports the following microsteps per full-step: 2, 4, 8, 16, 32, 64, 128 and 256. Every of those resolutions can be interpolated to 256 steps like you may already know it from the TMC 2100. The maximum current is now 1.7A per coil (2.5A peak) - on the TMC 2100 it was 1.2A/1.7A peak.

There are three exciting new features, which are called dcStep, stallGuard2 and coolStep. I will explain the benefit of those a bit later.

 

Standalone

If you don't want to use the new features (like stallGuard2), you can run the drivers in a mode called "Standalone". Simply solder a bridge on the little pads, like on the following image:

IMG_20160308_162735.thumb.jpg.2e2ac44fe756832cf522085ef3c41f30.jpg

You can then use them very similar to the TMC2100, everything is controlled via the CFG-Pins.

IMG_20160308_162916.thumb.jpg.fbf03c9a3e66ad0f8ede6c85d858633a.jpg

 

SPI Interface

But, what IF you want to use the features? The Pins which are used to configure the driver in the standalone mode  (with jumpers), are the same Pins which you can use for an SPI-connection. Therefore you have to connect the drivers to a microcontroller, which then sets up the driver and reads out the lost steps, the current load and so on.

To simplify things a bit I will start by using an external Arduino (instead of the one which runs the rest of the machine).

But regardless of whether you use an external microcontroller or not, you definitely must not connect the Pins to the Mainboard in the SPI-Mode, instead you have to do something like that:

IMG_20160314_183608.thumb.jpg.88053b680bdcd8eb8f6a92826c502ae3.jpg

The other side of the wires are connected to the Microcontroller.

 

Registers

Everything on the TMC2130 is stored and controlled through Registers, and there are many of them (around 20-30).

I don't want to list them all here, instead i wan't to show you an example:

There is a Register called CHOPCONF which starts at address 0x6C. In this register there is a section which is called mres (Bit 24 to 28). If you write an dual 1111 into it, the stepper will run in full-step mode, and if you write 0000 into it, the stepper runs in 256 microsteps mode.

If you are interested in the other settings, take a look at the datasheet or at my register-definition-file here.

to be continued...

IMG_20160308_162735.thumb.jpg.2e2ac44fe756832cf522085ef3c41f30.jpg

IMG_20160308_162916.thumb.jpg.fbf03c9a3e66ad0f8ede6c85d858633a.jpg

IMG_20160314_183608.thumb.jpg.88053b680bdcd8eb8f6a92826c502ae3.jpg

Edited by Guest
  • Like 2
Link to post
Share on other sites

  • 5 months later...
  • 1 year later...
Posted (edited) · STEP-BY-STEP: Installation of SSS TMC2130 on UMO

There are 2 versions of the SSSDriver available depending upon logic voltage; 3-5v or 5v.  Which is appropriate for UMO replacing A4988 chips?

Thanks

Edited by Guest
  • Link to post
    Share on other sites

    • 1 month later...
    Posted · STEP-BY-STEP: Installation of SSS TMC2130 on UMO

    @lars86 i never tried it any further, i was able to set them into the apporpiate modes using a buspirate (http://0x0001.de/tech/buspirate-und-tmc2130/) or an arduino. but at the time i got them there was no support in marlin and i didn't wanted to write a library for it (at least not alone^^). there are enough free pins on the mainboard (i used 10, 11, 12 and 13 near the DC jack for some tests). i also made some other tests, but... i never had enough time to do it all alone ;)

     

     

  • Link to post
    Share on other sites

    Posted · STEP-BY-STEP: Installation of SSS TMC2130 on UMO

    @ataraxis, can you tell from looking at the Arduino library whether it would play nice with the 2560?

     

    https://we.tl/hk9job3xXR

     

    I looked through the Marlin references, but it didn't seem as relevant:

     

    
    // @section TMC2130
    
    /**
     * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers.
     *
     * You'll also need the TMC2130Stepper Arduino library
     * (https://github.com/teemuatlut/TMC2130Stepper).
     *
     * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to
     * the hardware SPI interface on your board and define the required CS pins
     * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
     */
    //#define HAVE_TMC2130
    
    #if ENABLED(HAVE_TMC2130)
    
      // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
      //#define X_IS_TMC2130
      //#define X2_IS_TMC2130
      //#define Y_IS_TMC2130
      //#define Y2_IS_TMC2130
      //#define Z_IS_TMC2130
      //#define Z2_IS_TMC2130
      //#define E0_IS_TMC2130
      //#define E1_IS_TMC2130
      //#define E2_IS_TMC2130
      //#define E3_IS_TMC2130
      //#define E4_IS_TMC2130
    
      /**
       * Stepper driver settings
       */
    
      #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          1  // 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      1000
      //#define X2_MICROSTEPS     16
    
      //#define Y2_CURRENT      1000
      //#define Y2_MICROSTEPS     16
    
      //#define Z2_CURRENT      1000
      //#define Z2_MICROSTEPS     16
    
      //#define E0_CURRENT      1000
      //#define E0_MICROSTEPS     16
    
      //#define E1_CURRENT      1000
      //#define E1_MICROSTEPS     16
    
      //#define E2_CURRENT      1000
      //#define E2_MICROSTEPS     16
    
      //#define E3_CURRENT      1000
      //#define E3_MICROSTEPS     16
    
      //#define E4_CURRENT      1000
      //#define E4_MICROSTEPS     16
    
      /**
       * Use Trinamic's ultra quiet stepping mode.
       * When disabled, Marlin will use spreadCycle stepping mode.
       */
      #define STEALTHCHOP
    
      /**
       * Let Marlin automatically control stepper current.
       * This is still an experimental feature.
       * Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
       * then decrease current by CURRENT_STEP until temperature prewarn is cleared.
       * Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
       * 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.
       * M906 S1 - Start adjusting current
       * M906 S0 - Stop adjusting current
       * M911 - Report stepper driver overtemperature pre-warn condition.
       * M912 - Clear stepper driver overtemperature pre-warn condition flag.
       */
      //#define AUTOMATIC_CURRENT_CONTROL
    
      #if ENABLED(AUTOMATIC_CURRENT_CONTROL)
        #define CURRENT_STEP          50  // [mA]
        #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak
        #define REPORT_CURRENT_CHANGE
      #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       4
      #define Z2_HYBRID_THRESHOLD      4
      #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.
       * If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
       *
       * X/Y_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_HOME_BUMP_MM to 0.
       * M914 X/Y to live tune the setting
       */
      //#define SENSORLESS_HOMING
    
      #if ENABLED(SENSORLESS_HOMING)
        #define X_HOMING_SENSITIVITY  19
        #define Y_HOMING_SENSITIVITY  19
      #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
       * https://github.com/teemuatlut/TMC2130Stepper
       *
       * Example:
       * #define TMC2130_ADV() { \
       *   stepperX.diag0_temp_prewarn(1); \
       *   stepperX.interpolate(0); \
       * }
       */
      #define  TMC2130_ADV() {  }
    
    #endif // HAVE_TMC2130

     

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.3 stable released
        In this stable release, Cura 5.3 achieves yet another huge leap forward in 3D printing thanks to material interlocking! As well as introducing an expanded recommended print settings menu and lots of print quality improvements. Not to mention, a whole bunch of new printer profiles for non-UltiMaker printers!
          • Thanks
        • 21 replies
      • Here it is. The new UltiMaker S7
        The UltiMaker S7 is built on the success of the UltiMaker S5 and its design decisions were heavily based on feedback from customers.
         
         
        So what’s new?
        The obvious change is the S7’s height. It now includes an integrated Air Manager. This filters the exhaust air of every print and also improves build temperature stability. To further enclose the build chamber the S7 only has one magnetically latched door.
         
        The build stack has also been completely redesigned. A PEI-coated flexible steel build plate makes a big difference to productivity. Not only do you not need tools to pop a printed part off. But we also don’t recommend using or adhesion structures for UltiMaker materials (except PC, because...it’s PC). Along with that, 4 pins and 25 magnets make it easy to replace the flex plate perfectly – even with one hand.
         
        The re-engineered print head has an inductive sensor which reduces noise when probing the build plate. This effectively makes it much harder to not achieve a perfect first layer, improving overall print success. We also reversed the front fan direction (fewer plastic hairs, less maintenance), made the print core door magnets stronger, and add a sensor that helps avoid flooding.
         

         
        The UltiMaker S7 also includes quality of life improvements:
        Reliable bed tilt compensation (no more thumbscrews) 2.4 and 5 GHz Wi-Fi A 1080p camera (mounted higher for a better view) Compatibility with 280+ Marketplace materials Compatibility with S5 project files (no reslicing needed) And a whole lot more  
        Curious to see the S7 in action?
        We’re hosting a free tech demo on February 7.
        It will be live and you can ask any questions to our CTO, Miguel Calvo.
        Register here for the Webinar
          • Like
        • 18 replies
      • UltiMaker Cura Alpha 🎄 Tree Support Spotlight 🎄
        Are you a fan of tree support, but dislike the removal process and the amount of filament it uses? Then we would like to invite you to try this special release of UltiMaker Cura. Brought to you by our special community contributor @thomasrahm
         
        We generated a special version of Cura 5.2 called 5.3.0 Alpha + Xmas. The only changes we introduced compared to UltiMaker Cura 5.2.1 are those which are needed for the new supports. So keep in mind, this is not a sneak peek for Cura 5.3 (there are some really cool new features coming up) but a spotlight release highlighting this new version of tree supports.  
          • Like
        • 22 replies
    ×
    ×
    • Create New...