Vertical axis brake
-
I know this topic has been previously discussed, but I was hoping to implement this a little differently.
We have a platform driven by four screws. These will be driven using stepper drivers usually meant for E1, E0, X, and Y (so the first four connectors on the board), to take advantage of the bed levelling feature. Each of the stepper motors is fitted with a normally closed 24v brake. I noticed the Duet has some unpopulated headers (TP5, TP4, TP3, TP2) with en/step/dir pins. My plan was to use the signal from the enable pins to release the brake when the drive was enabled.Unfortunately, those pins, despite being labeled X_EN etc are in fact used as the chip select for the TMC drivers' SPI comms. I also noticed that the TMC drivers have an ENN pin which is connected to PC6 on the microprocessor, and which the manual indicates would allow us to switch power on/off to the drives. For drives E2 and upwards, the enable pins are broken out to the expansion header and operate as I expected.
I wonder whether the EN/CS and ENN pins for the first four axes are actually wired as intended?
Basically, I need a signal from the Duet to indicate when the vertical axis drivers are not powered so that I can put the brakes on. I was hoping to use standard firmware and pins, but as I cannot find a suitable feature I will most likely allocate a spare pin to give the desired signal.
Unless someone can point me in a better direction?
-
The EN/CS test points on the board are the CS signals to the TMC2660 driver chips.
The ENN signal (also available on the expansion connector) is a common active low enable signal to all TMC2660 drivers. It will go low when the printer is powered on and the VIN voltage has been measured to be 10V or greater. It will go high when VIN drops below 9.5V.
The EN pins on the expansion connector behave as CS pins when a TMC2660 driver is connected to that set of pins, and as EN pins otherwise.
I suggest you allocate an additional dummy driver number to your Z axis using the M584 command. If you choose driver 10 or 11 for this, you can use the corresponding EN signal on the CONN_LCD connector to disable the brake. It will always behave as an EN signal even if you have a DueX5 on the expansion connector. To get the leadscrew adjustment working, in your bed.g file you may need to temporarily detach this driver from the Z axis so that the firmware knows the correct number of Z drivers, then allocate it again to Z at the end.
EDIT: I'm sorry, I just remembered that you can't have more than 4 drivers for one axis - and you already have 4 Z leadscrews.
HTH David
-
Hello David,
Thank you for the clarifications. The auto detection of the stepper drivers to toggle the functionality of the EN/CS pin is a nice touch.
I suppose a solution would be to remove the TMC drivers, then use the signals from those headers to drive external stepper drivers, but this is not very elegant.
Perhaps I will edit the firmware to output a drive enable signal to E6_EN to control all four brakes together, to match the activity on the Z axis. -
The firmware doesn't auto detect the drivers. It auto detects which type of DueX expansion board (or none) is connected, and bases the number of TMC2660 drivers on that.
External stepper drivers should always be connected to either the expansion connector or the CONN_LCD connector.