Stepper Slaving
-
I think mixing internal TMC2660 with an external TMC2600, on the same screw would invite problems that would be hard to solve. Overkill, maybe, but you will have all the TMC2660 functionality, stall sensing for sensor less homing and using x16 with 256 interpolation on both drives and changes to these features are one gcode line away.
-
You could add two external stepper drivers to drive the extruders instead. There is some information about doing that at https://duet3d.dozuki.com/Wiki/Using_external_stepper_motor_drivers.
-
@jmjcoke said in Stepper Slaving:
I think mixing internal TMC2660 with an external TMC2600, on the same screw would invite problems that would be hard to solve.
Could you please explain what kind of hard to solve problems you're referring to here?
Have you tried setting this up and run into difficulties?
From a logical perspective, I can't see a difference if the TMC2660 drivers are sitting on the DueX5 or on a different board - they will be 'external' either way, no?
@jmjcoke said in Stepper Slaving:
Overkill, maybe, but you will have all the TMC2660 functionality, stall sensing for sensor less homing and using x16 with 256 interpolation on both drives and changes to these features are one gcode line away.
I take your point about the advantages, but there are significant drawbacks to consider as well, particularly:
- cost : £82.5 (before VAT)
- space: this is a big board and I won't be able to fit it into the machine without considerable modifications to the design.
Moreover, why do you think a set of 3 x TMC2660 on a breakout board, for example, not offer all the functionality you mention above?
-
@dc42 said in Stepper Slaving:
You could add two external stepper drivers to drive the extruders instead. There is some information about doing that at https://duet3d.dozuki.com/Wiki/Using_external_stepper_motor_drivers.
Thanks for the suggestion & pointer, dc42.
I read this before posting the thread, but I can't see how moving the 2 extruders to external drivers achieve my goal given that I need 3 extra drivers for the steppers.
Or am I missing something here?
-
@snowcrash the internal communication that the duet has with the drives would not be present with the external drive. Lets say you would like to implement sensorless homing, you cannot change the external drives via a macro to lower the drive from 2000mA to 800mA.
-
@jmjcoke said in Stepper Slaving:
@snowcrash the internal communication that the duet has with the drives would not be present with the external drive. Lets say you would like to implement sensorless homing, you cannot change the external drives via a macro to lower the drive from 2000mA to 800mA.
Thanks for the clarification, @jmjcoke, but there's something fundamental I'm still confused about in this context:
Based on the documentation mentioned above by @dc42, all the external driver would require is 5 connections, namely: 3.3V, GND, STEP, DIR & EN to work - in other words, there's no mention of a need for communication too.
More generally, the 3 x slave steppers will only need to rotate exactly like the 3 x main axis steppers (but in the reverse direction, of course). As best I can tell, there's no need for sensorless homing, endstop configuration, or similar.
However, the point you make about changing the drive's current is an important one and needs to be implemented as both the main stepper and slave stepper on each axis will have to operate with exactly the same current level.
This is where my understanding gets fuzzy and the reason I started this thread to begin with. Is setting the current level done over SPI? and, if so, will connecting the SPI1 terminals in the DuetWifi's expansion connector to the external TMC2660 provide this functionality? Or is there more to it?
-
@snowcrash said in Stepper Slaving:
@dc42 said in Stepper Slaving:
You could add two external stepper drivers to drive the extruders instead. There is some information about doing that at https://duet3d.dozuki.com/Wiki/Using_external_stepper_motor_drivers.
Thanks for the suggestion & pointer, dc42.
I read this before posting the thread, but I can't see how moving the 2 extruders to external drivers achieve my goal given that I need 3 extra drivers for the steppers.
Or am I missing something here?
No, I lost track of what you were trying to do.
-
@snowcrash said in Stepper Slaving:
This is where my understanding gets fuzzy and the reason I started this thread to begin with. Is setting the current level done over SPI? and, if so, will connecting the SPI1 terminals in the DuetWifi's expansion connector to the external TMC2660 provide this functionality? Or is there more to it?
Yes current is set using SPI. In theory you could connect the SPI terminals of external TMC2660 boards to the Duet expansion bus, but I have never done it. You would need to be careful to get good signal integrity because the SPI clock speed is 2MHz and any signal errors could have dire consequences. The TMC2660 boards would need to use 0.051 ohm sense resistors to get the correct current setting.
You would also have to modify the firmware to tell it that the drivers connected to the expansion bus are TMC2660s, because unless it detects a DueX2 or DueX5, it will assume that they are dumb step/dir/enable drivers.
Btw the DueX5 is designed so that it can be mounted back-to-back with a Duet to save space. Although most users seem to mount them side-by-side.
-
@dc42 said in Stepper Slaving:
@snowcrash said in Stepper Slaving:
This is where my understanding gets fuzzy and the reason I started this thread to begin with. Is setting the current level done over SPI? and, if so, will connecting the SPI1 terminals in the DuetWifi's expansion connector to the external TMC2660 provide this functionality? Or is there more to it?
Yes current is set using SPI. In theory you could connect the SPI terminals of external TMC2660 boards to the Duet expansion bus, but I have never done it. You would need to be careful to get good signal integrity because the SPI clock speed is 2MHz and any signal errors could have dire consequences. The TMC2660 boards would need to use 0.051 ohm sense resistors to get the correct current setting.
You would also have to modify the firmware to tell it that the drivers connected to the expansion bus are TMC2660s, because unless it detects a DueX2 or DueX5, it will assume that they are dumb step/dir/enable drivers.
Btw the DueX5 is designed so that it can be mounted back-to-back with a Duet to save space. Although most users seem to mount them side-by-side.
Ah, that's the info I was after! Thanks for the detailed explanation, @dc42!
Being a minimalist, I'm very much tempted to create a dedicated PCB for this
Btw, is there a complete schematic and pcb design files for the Duex5 published somewhere like the ones for the DuetWifi?
-
@snowcrash said in Stepper Slaving:
Btw, is there a complete schematic and pcb design files for the Duex5 published somewhere like the ones for the DuetWifi?
Nevermind, found it here
-
@dc42, had a quick look and it seems like the TMC2660 is out of stock everywhere... May I ask where you source them from?
-
We buy them from Digikey, but we had to wait for our most recent delivery.
-
@dc42 said in Stepper Slaving:
We buy them from Digikey, but we had to wait for our most recent delivery.
Thanks @dc42!
Digikey doesn't even have a lead time for the next batch... :-@
I hesitate to ask, but would you perhaps be able to spare 3 units for the sake of this project? I'll be happy to pay you back their cost, of course, as well as open source the design files for the board should any member of the Duet community find them useful.