Support for new TMC2130 SSS (SilentStepStick) via SPI



  • If they are buzzing the motor they should not be blown. Sometimes when playing around with a lot of settings changes I noticed that they "lose their head" somehow. A power-off / power-on of the board should fix that. I am still trying to figure out a nicer way to reset them. I think disabling the steppers via gcode command also resets them, but I'm still experimenting with that.

    I promised I'll write a setup guide, but it's still work in progress. My day job has been rather demanding the last few weeks so I had to shift focus there a little. I will try to finish the guide soon.

    @PioniSensei and @niocio01 if you are really stuck and need help, let's arrange a Hangouts group call and I can explain the basic setup steps live.

    Is anyone here coming to FOSDEM in Brussels this weekend? I will be there. We can meet and discuss this topic and other stuff if anyone wants to.
  • Hi Alex, thanks for getting back when you had time. 
    Take your time, it's still a hobby ;)
    and hell yes power off was the solution, but only when I had only one stepper driver installed.
    with both X and Y installed the problems started again. 
    So I'm thinking my soldering sucks  :s I'm gonna tidy it up right now with connectors.

    Thanks for offering the hangout, even when we get the printer to work it would be nice to get in touch! I'm in the Netherlands so Brussels is "close" but I won't be there, gotta pack for moving house.

    I've added my current solderjob to the drive folder. If you can spot any major faults please let me know.
    Have a nice weekend and we'll keep you posted!

    Oh and btw: the single motor (x axis) ran juuust fine! :D
  • Hey,
    I tried now the half day to get my new radds board with my new TMC2130s to move the motor on my Anet A8, but they are not moving at all.
    I connected the spi lines like in the picture on page 3. I tried many different things in the config but nothing helped. The Hot-End and Fan is working but no motor.
    I tried PioniSenseis Config but even with that nothing moves. For testing I have just plugged in 12V, Hot End, NTC, XYZ Drivers + Motors. No Endstops.

    The EN-Line is on GND.
    Maybe one can give me a hint what I can try to do?

    Best regards

  • @peep can you post your configuration.h?
    How did you wire the SPI lines? Soldered? Jumper wires?
  • Add me ( on Skype or Google Hangouts and let's try to fix it.
  • Update for everyone still having problems.

    After debugging with @peep we found out that the ZIP file that you get from the firmware configuration tool for version 1.0.1 doesn't include the Trinamic code. So please switch to development when using the configuration tool.

    @Repetier can you check in the configuration tool if it picks the correct tag for 1.0.1? It looks like it might be giving and older version.
  • edited February 2018
    After using ur Youtube as a chat i found the Thread now too :D
    Have the same trouble, I will try to switch to development. 

  • Alright, looks like its working for me with the development version!
  • Ok, copied dev to master again. So now both should work.
  • Hmm, i got some strange behavior, i can move the axis manually, but when trying to print they are not moving.
    Not using Stealthchop or anything...
  • @Flux do they home correctly?
  • Nope, i guess its some endstop settings.

    Is this correct?

    // ################ Endstop configuration #####################

    #define ENDSTOP_PULLUP_X_MIN true
    #define ENDSTOP_X_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X false
    #define ENDSTOP_PULLUP_Y_MIN true
    #define ENDSTOP_Y_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Y false
    #define ENDSTOP_PULLUP_Z_MIN true
    #define ENDSTOP_Z_MIN_INVERTING true
    #define MIN_HARDWARE_ENDSTOP_Z true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define MINMAX_HARDWARE_ENDSTOP_Z2 false
    #define ENDSTOP_PULLUP_X_MAX true
    #define ENDSTOP_X_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_X false
    #define ENDSTOP_PULLUP_Y_MAX true
    #define ENDSTOP_Y_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Y false
    #define ENDSTOP_PULLUP_Z_MAX true
    #define ENDSTOP_Z_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Z false
    #define ENDSTOP_PULLUP_X2_MIN true
    #define ENDSTOP_PULLUP_Y2_MIN true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define ENDSTOP_PULLUP_X2_MAX true
    #define ENDSTOP_PULLUP_Y2_MAX true
    #define ENDSTOP_X2_MIN_INVERTING false
    #define ENDSTOP_Y2_MIN_INVERTING false
    #define ENDSTOP_X2_MAX_INVERTING false
    #define ENDSTOP_Y2_MAX_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X2 false
    #define MIN_HARDWARE_ENDSTOP_Y2 false
    #define MAX_HARDWARE_ENDSTOP_X2 false
    #define MAX_HARDWARE_ENDSTOP_Y2 false
    #define MINMAX_HARDWARE_ENDSTOP_Z2 false
    #define X2_MIN_PIN -1
    #define X2_MAX_PIN -1
    #define Y2_MIN_PIN -1
    #define Y2_MAX_PIN -1
    #define Z2_MINMAX_PIN -1

    #define max_software_endstop_r true

    #define min_software_endstop_x false
    #define min_software_endstop_y false
    #define min_software_endstop_z false
    #define max_software_endstop_x false
    #define max_software_endstop_y false
    #define max_software_endstop_z true
    #define DOOR_PIN -1
    #define DOOR_PULLUP 1
    #define DOOR_INVERTING 1
    #define ENDSTOP_X_BACK_MOVE 5
    #define ENDSTOP_Y_BACK_MOVE 5
    #define ENDSTOP_Z_BACK_MOVE 2
    #define ENDSTOP_X_BACK_ON_HOME 1
    #define ENDSTOP_Y_BACK_ON_HOME 1
    #define ENDSTOP_Z_BACK_ON_HOME 0
    #define MOVE_X_WHEN_HOMED 0
    #define MOVE_Y_WHEN_HOMED 0
    #define MOVE_Z_WHEN_HOMED 0
  • What does M119 show you?

  • M119 only shows the Z-Enstop (Hardware Endstop)
  • Makes sense. In your configuration you have no endstops for either X or Y.
    Do you want to use the sensorless homing feature or actual switches? You still need to define the endstops in configuration no matter what.
    Which homing type do you plan to use?
  • edited February 2018
    Oh yeah of course, ocassionally im a little bit stupid, sorry :dizzy:
    I wanted to test the sensorless homing.
  • So for sensorless homing you need to run wires from the DIAG1 pins on the driver sticks to your endstop signal pins on your board. Here's some pictures of my setup where I run them to the MAX endstop signals.

    Then you need these settings:

    #define ENDSTOP_X_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_X true
    #define ENDSTOP_Y_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Y true
    #define ENDSTOP_Z_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Z true
    #define min_software_endstop_x true
    #define min_software_endstop_y true
    #define min_software_endstop_z true
    #define max_software_endstop_x false
    #define max_software_endstop_y false
    #define max_software_endstop_z false

    Obviously, if you connect to the min endstop signals, you configure the min endstops above instead.

  • Okay, homing works, but the problem still exists. 
    At first i can move the Axis.
    When i start a print axis arent moving (except Z and E, still TMC2100).
    When i stop the print i cant move X and Y anymore.
    After something like the 3rd reset i can move the axis again...
    While not beeing able to move the axis, i can easily move them by hand, so it seems like motors arent getting any current (no holding torque).
  • How does your 

    #define MOTOR_CURRENT

    line look like in configuration?
  • // The drivers with set CS pin will be used, all others are normal step/dir/enable drivers
    #define TMC2130_X_CS_PIN 31
    #define TMC2130_Y_CS_PIN 33
    #define TMC2130_Z_CS_PIN -1
    #define TMC2130_EXT0_CS_PIN -1
    #define TMC2130_EXT1_CS_PIN -1
    #define TMC2130_EXT2_CS_PIN -1

    // Per-axis current setting in mA { X, Y, Z, E0, E1, E2}
    #define MOTOR_CURRENT { 1000,1000,1000,1000,1000,1000 }
  • That should be enough :)

    Do you have stealthchop enabled?
  • Nope i disabled it for testing, feels more like the drivers "losing their head" u mentioned before 
  • Powercyle fixes the “lost head” issues.

    Be aware that even if you turn the main power supply off, when connected to USB some boards still receive power from USB and your reset may be unreliable. Make sure to unplug USB when doing the power cycle.
  • Okay i think i found the problem, i think something on my board is wrong. 
    As soon as my extruder fan starts the x and y are disabled.
    When temp is below 50°C and the fan turns of i can reset and move the axis again.
    Ill try to pin the fan on another mosfet and check angain.

  • Try to also verify if your power supply is suffient. Put a voltmeter on the board power connection and see if it drops when the fan starts (or heaters are on).
  • Okay i tested pretty much all mosfets and it seems as soon as the extruder cooling fan triggers the x and y steppers are disabled...
    Power supply is sufficient. 
    Could this be a firmware problem, since if i trigger for example the partcooling fan on a fet i had the extruder fan on before i can still move the axis? Since i cant really find a correlation there the board seems to be ok.
  • Short notice, replaced the 2130 with the old 2100 and uncommented the 2130 section. 
    Like this everything is working as intended.
    So i guess somehow the SPI communication is blocked when the extruder cooling fan triggers?!
  • @Flux which board is that? Can you post some pictures of it?
  • edited February 2018
    Using the RADDS board.

  • I will try to reproduce your problem on my board. Which mosfet output do you use for that fan?
    Also, do you use PWM for the fan? What value is it set at?
Sign In or Register to comment.