Support for new TMC2130 SSS (SilentStepStick) via SPI

123457

Comments

  • Hi,
    I'm just building my Sparkcube XL (Arduino DUE, RADDS, Extension board) with dual extrusion and genuine Watterott's TMC2130s on all axis and for both extruders. Does anyone of you have some experience with setting up 7 Stepsticks on the RADDS and the extension board. I was able to get my x-y CoreXY-axis to work, but have run into the problem of connecting the 7 CS ports of the Stepsticks:

    - AUX1 and AUX2 are taken by the Extension-board
    - LCD and Encoder is taken by my (yet to be delivered) LCD
    - at least one Endstop is taken by a BLTouch

    Do you have some recommendation concerning the selection of the CS-ports.
    Is it possible to use TMC2130s on the Extension-board using SPI-mode?
    I'm trying to use 3 seperate z-axis each using one motor and driver, maybe I'll be able to get automatic-bed-levelling working later on.
  • Hi @Tux42,

    So if I understand it correctly, you only have one endstop pin taken by BLTouch?
    That means you have 5 more endstop pins (min & max) to use for CS lines.
    The remaining two CS lines you could tie to two of the Servo PWM outputs (bottom left corner).

    Would that solve your problem?

    BTW, interesting idea using 3 Z steppers to level the bed. Curious how that works out.

    Cheers,
    Alex
  • Hi @alexsomesan,

    Sorry, I forgot to mention some ports :#
    I'm also using two filament-tracking-systems using Xmin and Ymin.

    Don't I need to connect the Diag1 pins of the x, y, and one z-Driver to the max endstops for homing?

    The idea is taken from the maker of the Sparkcube ()

    Cheers,
    Armin

  • Yeah, you're right. If you want sensorless homing you need the endstop pins for Diag1.

    I'll try to go over the board schematic and see where you could steal some more pins from.

    Can you mention what exactly do you have connected to the extension board?
    Also, do you need the SD Card?
  • Thanks, that's awesome!
    I'm going to need the extension board for one/two of the Stepsticks, probably the two extruder motors to E4 and E5.

    I won't be needing the external SD-Card, but it would be nice to be able to use the micro-sd card for gcodes, although i could always print via USB.
  • Hi @alexsomesan

    Thank you very much for your great work!

    Is it possible to just solder the SPI and Config pins of the TMC2130 upwards instead of direction into the board, like Thomas Sanladerer shows in this video ?

    That way you don't need to solder on RADDS board.

    Best
    Sebastian


  • Sure, I did just that.
  • edited May 2018
    @cozwei I was tempted to say yes a while ago, but not anymore.

    TL;DR I DO NOT RECOMMEND THIS SETUP ANYMORE!

    Just a few days ago I have finished building a second RADDS board with TMC2130s for dedicating to development work so that I don't have to experiment on my primary printer (Also powered by RADDS + TMC2130).

    I chose to assemble this second board using the method described by Tom in that video: jumper wires and the SPI headers on the top side.

    I DO NOT RECOMMEND THIS SETUP ANYMORE!

    I have had countless random errors communicating with the drivers. Sometimes they'd all work fine, other times some drivers would return bogus values. There seemed to be no pattern to the errors, but eventually I was able to determin that the presence of the stepper wires in the vicinity is the main cause of issues. Because the stepper headers are right next to the drivers, the high current wires for the motors run exactly along the SPI jumer cables. This causes inteference and improvments in SPI communication are immediately visible when unplugging the motors or tucking their cables below the line of the StepSticks.

    It's taken me a while to figure it out and we've also had reports on this thread about mosfet activity interfering with the SPI communication.

    By comparison, the RADDS on my printer uses the soldering approach I originally posted here. Soldered SPI wires run on the back side of the board. This has worked consistently as expected without any issues for a couple of months.

    I advise everyone to do the extra work of soldering on the back unless you enjoy debugging your printer more than actually using it.

    @Tux42 Interested to hear about your results. How does it work for you? Can you post pictures of your wiring?

    Here's some pictures of the flawed setup. (I took the pictures wanting to include them in a guide I am trying to put together).


  • edited May 2018
    @alexsomesan
    I soldered the pinheader to the top side. I had no problems so far. I'm running my workhorse on TMC2130 for weeks now. My setup looks similar to your photos. 

    The only issue is 
    that I have to reconnect repetier server (reset firmware) after shutdown via PS_ON (shutdown 12V). But I think this is firmware related (The firmware does not reinitialize the driver after shutdown of 12V).

    My idea was to post a pull-request on GitHub to become a repetier firmware source contributor. But I did not had the time to fix the bug  :o
  • Hi

    I managed to configure Repetier for XYZ TMC2130 now. But I have the problem, that if I move one axis, every axis moves. I soldered the pinheader topside.

    This ist my configuration. Did I configured something wrong? Ialso deactivated stealth and interpolation. But no chance to get it work :(.

    Thanks
    Sebastian


    #define TMC2130_X_CS_PIN 33
    #define TMC2130_Y_CS_PIN 37
    #define TMC2130_Z_CS_PIN 35

    #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 {900,900,900,900,900,900}
    #define MICROSTEP_MODES { 32,32,32,32,32,32 } // [1,2,4,8,16]

    #define TMC2130_STEALTHCHOP         1  // Enable extremely quiet stepping
    #define TMC2130_INTERPOLATE_256  true  // Enable internal driver microstep interpolation
    #define TMC2130_STALLGUARD          0  // Sensorless homing sensitivity (between -63 and +64)

    /** PWM values for chopper tuning
        only change if you know what you're doing
    */
    #define TMC2130_PWM_AMPL          255
    #define TMC2130_PWM_GRAD            1
    #define TMC2130_PWM_AUTOSCALE    true
    #define TMC2130_PWM_FREQ            2

    /**  Per-axis parameters
      To define different values for certain parameters on each axis,
      append either _X, _Y, _Z, _EXT0, _EXT1 or _EXT2 
      to the name of the global parameter.
      Examples for the X axis:
      #define TMC2130_STEALTHCHOP_X         1
      #define TMC2130_INTERPOLATE_256_X  true
    */

    /** Minimum speeds for stall detection.
      These values may need to be adjusted if SENSORLESS_HOMING is enabled,
      but endstops trigger prematurely or don't trigger at all. 
      The exact value is dependent on the duration of one microstep,
      but good approximations can be determined by experimentation.
    */
    #define TMC2130_TCOOLTHRS_X 300
    #define TMC2130_TCOOLTHRS_Y 300
    #define TMC2130_TCOOLTHRS_Z 300



  • Hey guys,

    I am almost done moving house and am beginning to think about the printer again.
    Since connecting the wires is so prone to errors and interference, Would it be better to maybe have a pcb to add onto the radds and below the stepper drivers which connects all the necessary pins?
    I don't have an electrical degree but I could make a schematic and board, if you guys would like to check it before I order that would be awesome. 
    Maybe it will save us a lot of guesswork?
  • @alexsomesan My setup wasn't anything special, I simply cut jumper-wires in half and soldered all of the matching ones together. I did twist the motor-lead-pairs around each other tough, maybe this helped with reducing the effect of the motorcurrent on the SPI-Pins.
    I unfortunately can't show any pictures right now, because the setup was for testing purposes only and is already taken apart. When putting everything back together in the printer, I'm going to use shielded cables for the motors and connect the shielding to my ground.
  • I wonder that my Steppers are still moving even if i Disconnect the spi Connection to RADDS board.
  • Could solve all my problems. Should improve my soldering Skills :#
  • alexsomesan said:
    I DO NOT RECOMMEND THIS SETUP ANYMORE!

    I have had countless random errors communicating with the drivers. Sometimes they'd all work fine, other times some drivers would return bogus values. There seemed to be no pattern to the errors, but eventually I was able to determin that the presence of the stepper wires in the vicinity is the main cause of issues. Because the stepper headers are right next to the drivers, the high current wires for the motors run exactly along the SPI jumer cables. This causes inteference and improvments in SPI communication are immediately visible when unplugging the motors or tucking their cables below the line of the StepSticks.
    It's taken me a while to figure it out and we've also had reports on this thread about mosfet activity interfering with the SPI communication.
    By comparison, the RADDS on my printer uses the soldering approach I originally posted here. Soldered SPI wires run on the back side of the board. This has worked consistently as expected without any issues for a couple of months.
    I advise everyone to do the extra work of soldering on the back unless you enjoy debugging your printer more than actually using it.

    I wonder if that is why my x axis just stopped for no reason at random and then started up again.  It's completely random and when I move my stuff around (it's not permanently tied down yet) it seemed to work again.  I thought my cable was bad going to the SPI.  I turned off stealthchop and it seemed to go away also, but it could still be cable routing.  I know it's not an issue with current as I've grabbed my carriage and tried to stop it and it just keeps going.  I'll be installing 3 more TMC2130s today and I'll be careful how I run the wires to avoid stepper wires. 

    Since I am using the RRD full display controller I made my own cable and added another female plug to the EXP2 cable and am able to plug the SPI from the TMCs directly into that.  Once I get it cleaned up I'll post pics.  It may help others that have no idea how to plug into the already used SPI.
  • edited May 2018
    Hi,

    I have also working everything fine now with my RADDS and the TMC2130 drivers thanks to this forum B) it helped a lot.
    But I have a problem with my SD Card reader the RADDS Display. It detect when a SD card is inserted but I don't have access to the files now. Anybody has an idea how to fix that?

    Thank you,

    Stephan
  • Are you using the stock short cable? I made a longer custom cable and had to cut it shorter until I could read the card. The SPI is shared between the TMCs and SD reader and it does affect the sd reader. I’ve had to move all cables away from stepper wires for best performance.
  • Hello,

    yes, I'm using the stock (short, I hope) cables. Yes I have also read about the SPI shared, so I Thaught, maybe I can choose or change the adress of the card reader. I will try to move the cables away and also discconect the CS from the steppers. Hope it helps....

    Thank you.
  • The cs will not make a difference. It’s the 3 spi pins/wires that are doing it. How do you have the sd card wired to the spi with your TMC drivers? Pics?
  • edited May 2018

    Hi,

     

    very sorry for the late answer…. But I bought an old house and now I’m refurbishing nearly everything and I’m very busy for this. The WAF for 3D printing is also very low at the moment, so candle light holder or vases doesn’t really  matter at the moment ^^ Bathroom, colors and so on are more important ;-)

     

    But ok, doesn’t  matter for my problem. After some try’s maybe I have a completely misunderstanding and the CS is maybe not the problem. I have inserted the SD Card directly in the SD slot from the RADDS display and also directly in the RADDS board (MicroSD). The card is formatted with FAT32. In the display I can see, that Repetier discovers the card (per display and also directly in the RADDS) and also see if the card is removed. So maybe I have just a stupid error in my config files?

    I'm new to Repetier, so maybe I forget some basics......

    Thank you and best Regards,

     

    Stephan







  • Hey,
    my printer is taking shape and testing is going quite fine.
    However I'm struggling to get my extruders working. They shall be using TMC2130s connected to E4 and E5 of the RADDS extension board. In the configuration file I'm only able to define the drivers for the normal RADDS ports. Is there some way to extend the support for TMC2130s to the three ports of the extension board?
    My guess is I need to modify the Trinamic.h ?

    Regards,
    Armin
  • The extension only supports E0-E2 at the moment. The next firmware generation V2 will get a more general solution which @alexsomesan is already working on.

  • Thank you,
    then I'll simply use those two TMCs in standalone mode till V2 :)
  • @revdaz I'm currently encountering the same problem - did you get any further?

    Regards,
    Armin

  • Hello Armin,

    I'm still encountering the same problem and couldn't find a solution yet. I will now connect a rapsberry with repetier server and touchscreen and hope so to "solve" the problem....

    Best Regards,

    Stephan
  • Hello Stephan,

    thanks for your reply - I'm planning to do this in the future as well, if I'm able to solve the problem I'm going to inform you :)
  • Hey everyone,
    Sorry for being absent around here lately - I'm running very short on spare time these days as I'm preparing to interview at a very well known software company with a very well know hard interview process.

    Anyway, support for TMC2130 is almost ready in V2. It's working nicely in my basic tests and I've also sorted out sensor-less homing. However, I'm missing eeprom support for the various parameters so I have to finish that part before I can make a PR to the main development branch.

    I'm trying to find some time to finish that soon.
  • @alexsomesan, that's really good news! Looking forward to try V2 :)
    You were saying something about a tutorial on Radds. Anything further? My TMC's are on the way and I will soon change the RAPS128 drivers.
    Thanks, and good luck at the interview
  • Hey guys,

    i also tried to get the 2130 work on my delta with radds but until now it does not work. I connect everything as it was mentioned in this thread. The problem is, that the axis doesn't move but the extruder motor is at a standstill. The interesting part is, when i provoke a decoupling error from the nozzleheater i get an error message as it should be and all axis are at a standstill. So i think the wiring is fine but there is a problem in my firmware. Can someone help me please?

    For testing i deactivate the stealthchop mode an after that the extruder is noisy in the standstill.

    Best Regards
  • Okay, i found the problem. anable_on was activated because of the raps128 i used before. Now the Axis and Extruder Work fine. BUT i can't use the SD Port anymore. When i Stick into the radds Display, i get the Message that a sd cart was inserted but it the SD is not readable. I do Not Wonder about that Problem because i wired the tmc 2130 to the SD Pin of the radds as it is mentioned in this thread. So ist there a solution for this Probleme?
Sign In or Register to comment.