External Drivers W/ Duet WiFi and DUEX 5
-
My machine has X,Y,Z (obvious) + 4 extruders, 4 heaters, 4 thermistors, bed heater and thermistor, as well as a relay that controls a vacuum pump. I also plan to implement filament presence detectors. Because of all this IO it seems I really need to keep my DUEX 5 intact but I also need to use larger standalone drivers for my X and Y axis.
I've tried piggy backing the step dir enable signals from the headers at the existing drivers (drive 0 and drive 1) but it does not seem to be working. I saw in another thread that this is not recommended as those are connected to the TMC drivers.
More specifically, the problem I am having is that the enable from the headers is always just about 2.6 volts and I cannot get it to go low in order to enable the external drivers. Even if I disconnect the enable/disable so that the driver it holding the motor it seems that the step (and likely) the direction pins are not getting to proper voltages. I'm not surprised as I know this is not recommended but was hoping it would work.
Is there a way I can get these signals without removing my Duex 5? I would even be willing to desolder the X and Y TMC drivers.
Thanks
Ben -
Hi Ben,
First, check that you really do need to use external drivers. We recently increased the maximum drive current to 2.4A peak per phase, and we plan to increase it further in future.
There are two issues with trying to connect external drivers to pads that are already connected to TMC2660 drivers:
1. The firmware is expecting TMC2660 drivers there, so it will use the Enable pin as the chip select pin for the TMC2660.
2. If you get around #1 and drive the Enable pin as you need to for external drivers, then the TMC connected to that pin will turn on when the status of other TMC2660 drivers is being read, and corrupt the status information.
If you do need to use external drivers, then your best option is to use a DueX2 instead of a DueX5. This will leave 3 sets of step/dir/pins free for your external drivers (drivers 7,8,9), and there are pads on the DueX2 that you can connect them to.
It's possible to convert a DueX5 to a DueX2 by removing 3 TMC2660 drivers and changing a few 0 ohm resistors around, but your best bet may be to sell your DueX5 and buy a new DueX2.
HTH David
-
PS - I just thought of another way. You could hack the ribbon cable between the Duet WiFi and DueX5 to divert the last three Enable outputs from the Duet WiFi to your external stepper drivers, and connect the corresponding Enable inputs on the DueX5 to +3.3V. That would prevent the last three TMC2660 drivers messing up the status read. Then you would only need to remove one 0 ohm resistor from the DueX5 to make it look like a DueX2. You wold still be able to use the additional heater and fan outputs and thermistor inputs.
-
Thanks for the quick response David.
Disconnecting the enable/disable pin (the motor is always enabled then) seems to allow the external drivers to work. I was previously only disconnecting one and I now see that that was causing the chip select/status issue and preventing anything from happening properly. I am okay (for now at least) with always having the x and y enabled so long as this won't cause a corruption issue with the other TMC drivers.
I will give the new current limit a try. I do have a very large 129 cfm fan blowing pretty directly at the drivers so I would possibly try higher limits if you could provide a compiled firmware with it extended.
The reason this all came up is that while my machine has never stalled (after I turned the rapids down to 250mm/s from 300), I have been having an issue with parts coming out about 0.5mm to 1mm undersized depending on the part size. With my set up this is about 2 to 5 full steps but I never hear any steps missed. I sometimes see small drifts in layers but nothing like the typical drift associated with missed steps or motor stalls. I have also done a lot of investigation and even improved my belt systems to make sure the issue was not mechanical.
I am using Nema 23 motors rated for 2.8 amps. Printing speeds are about 90 mm/s tops right now. Rapids are 250 mm/s. Jerk is 16 and accel is 1800. The machine is a large Ultimaker essentially. I am using 16mm linear shaft and the build area is about 500 by 340.
-
2.8A rated motor current is a good choice for the Duet WiFi. I have been testing with 2.8A Nema 23 motors too. I presume you are using 24V power to the Duet?
If you get skipped steps then it will always be a multiple of 4 full steps that is skipped. From that you can work out the amounts of layer shift you can get when steps are missed.
Other possible causes of under-sized prints:
-
Belts not tight enough. I have read that unless the belts are very tight, the pitch of a standard GT2 belt will be a little less than 2mm, which you can correct for in your steps/mm.
-
Backlash caused by a loose belt, loose pulley, loose linear bearing etc.
-
Shrinkage after cooling, especially with ABS.
-
-
2.8A rated motor current is a good choice for the Duet WiFi. I have been testing with 2.8A Nema 23 motors too. I presume you are using 24V power to the Duet?
If you get skipped steps then it will always be a multiple of 4 full steps that is skipped. From that you can work out the amounts of layer shift you can get when steps are missed.
Other possible causes of under-sized prints:
-
Belts not tight enough. I have read that unless the belts are very tight, the pitch of a standard GT2 belt will be a little less than 2mm, which you can correct for in your steps/mm.
-
Backlash caused by a loose belt, loose pulley, loose linear bearing etc.
-
Shrinkage after cooling, especially with ABS.
Yep I am using 24V to power everything except some 12V fans that are powered all the time and not through the Duet.
I have my belts pretty tight but I will keep in mind that changing my steps/mm may be a solution if this is the case.
I'm not sure about the shrinkage as it seems to be that as the part grows in size, the absolute error also grows but as a percentage it is decreasing. I would expect that if the problem was related to shrinkage the percent error would remain fairly consistent.
Am I okay to piggy back only the step and direction pins from the test headers to use to signal my external drivers? I am curious to see how the external drivers at about 3 amps may affect my results. I know my motors will run hotter and decrease their life span but I am mostly just doing this to get some more perspective on what the root of my problem may be.
-
-
Am I okay to piggy back only the step and direction pins from the test headers to use to signal my external drivers? I am curious to see how the external drivers at about 3 amps may affect my results.
Yes, that's OK, the STEP and DIR pins are driven the same whether the drivers are internal or external. You may need to use the M569 command to increase the step pulse width for your external drivers.
-
Am I okay to piggy back only the step and direction pins from the test headers to use to signal my external drivers? I am curious to see how the external drivers at about 3 amps may affect my results.
Yes, that's OK, the STEP and DIR pins are driven the same whether the drivers are internal or external. You may need to use the M569 command to increase the step pulse width for your external drivers.
Thank you for the help David! I'm running a test with the external drivers now.