ST-M5045 Driver wiring
I can freely move the lead screw by hand (only a little since I know the feed back could destroy drivers). There is also no audible noise (usually is a engaging noise on other boards when they power up). I have tried to use the M564 H0 to command to move as well. I have also used a T5 setting in the past still nothing. The motors are wired correctly since they do work on the drivers provided on the board. I have even used the same wires to connect to a MKS base board and the drivers work with the configuration. Is there any type of test with the multi meter i can check to help narrow down some stuff?
Thank you! Much appreciated
Start by checking the voltage between E+ and E- on one of the expansion breakout board outputs. It should be -4V before you first try to move the motor, and +4V afterwards.
Will do when I get home. I was also thinking of testing a G540 (Gecko 4 axis drive) when I get home to eliminate a variable. The pin out only has a Step and Dir for each axis. How would you advise wiring this one? Im a little confused on this one because there is no enable pins
Pin 1 Output 2
Pin 2 X-AXIS STEP
Pin 3 X-AXIS DIRECTION
Pin 4 Y-AXIS STEP
Pin 5 Y-AXIS DIRECTION
Pin 6 Z-AXIS STEP
Pin 7 Z-AXIS DIRECTION
Pin 8 A-AXIS STEP
Pin 9 A-AXIS DIRECTION
Pin 10 INPUT 1
Pin 11 INPUT 2
Pin 12 INPUT 3
Pin 13 INPUT 4
Pin 14 VFD PWM (50HZ)
Pin 15 FAULT (INPUT TO PC)
Pin 16 CHARGE PUMP (>10KHZ)
Pin 17 OUTPUT 1
Pin 18 - 25 GND
The G540 doesn't have optically isolated inputs, so you need to be very careful to have good ground wiring. If the ground wire between the Gecko and its PSU breaks, the motor current may try to find a path to ground through the 3.3V outputs of the Duet, which will wreck the Duet processor and more besides.
The G540 rev 8 user manual that I found says the minimum signal voltage is 3.3V, so it should work with the step/dir inputs connected directly to the Duet expansion bus. You would need to lengthen the step pulses using the M569 T parameter. As it has no Enable inputs, I presume it leaves the motors enabled continuously, possibly at reduced current when they are not moving.
Trying this configuration (directly to the expansion *no expansion board)
• Connect the 3 negative inputs of your drivers to ground on the Duet
• Connect the PUL+, Dir+ and EN+ inputs to E2_STEP, E2_DIR and E2_EN on the Duet
• Invert the enable signal using the R1 parameter of the M569 command for that driver in config.g.
Motors still will not lock and the drive will go into alarm when powered on.
** With everything the same except M569 P5 R0 – drive is fine until move is initialized then it goes into alarm. (still no motor lock)
I’m still waiting for Filastruder to give me a replacement so I have been unable to try the other options using the expansion board.
I did try to connect my G540 drive. The motor did lock however when I sent a step signal it would click softly and not turn. The step units for this axis was set with “M92 X200.69 Y200.69 Z209.69 E420.00”
• Nothing was attached to motor during test
• Prior to connecting G540 to Duet this same wiring/stepper interfacing with mach3 control software with the G540 connected to the PC worked fine.
To get the M5045 working you will probably need to use the breakout board to increase the voltage and current drive to the external driver.
When driving any sort of external drivers, you must use the T parameter of the M569 command to lengthen the step pulse timings. The step pulses generated by default are very short and fast, which is no problem for the internal drivers but too fast for most other drivers.
Sorry I forgot to add, I did add T5 to the command. How high can the T value go before its maxed?
Just thinking out loud, could the firmware possibly play a role in the issue I am having with external drivers? I updated the firmware to the latest release (non beta) before I started wiring. I noticed not too many people use external drives (as I could not see many examples online to try and copy from), maybe there is an earlier firmware I should try that absolutely works? Im using v2.02 right now.
Still waiting on Filastruder to ship a replacement board to try out the expansion board again.
Thank you for your time!
Lots of Duets users are using external drivers. If there was a problem with external drivers in 2.02, I'm sure we would know about it.
Please post the config.g file that you are using to try to get the G540 driver working.
Finally I had time to work on my 3d printer :)! I was able to get response from the G540 adjusting the T value (Thank you!) but can only get 1 axis to work at a time.
Currently I have the STEP(+) and Dir(+) pins connected to their respective pins on the G540. I also have the STEP(-) and Dir(-) connected to a ground pin on the G540. The driver will work great when only 1 axis is connected, when the other 2 axis are connected along with the first nothing happens. From what I observed, the wiring only works when I connect a wire coming from STEP/Dir (-) pins to ground on the G540. It appears that this wiring can only have 1 axis connected back to ground on the G540. If I have multiple axis connecting it gets a mixed signal I'm guessing and will not move any of them.
So I guess my question would be, how do I properly wire STEP/DIR(-) to the G540 where all axis will work when connected at once?
This setup is using the expansion board.
Do not connect any of the output pins of the expansion board to ground. They are all differential outputs, so doing so may burn out the driver chips on the expansion board. Instead, connect GND on the G540 to GND on the Duet, or to GND on one of the servo output connectors on the expansion board.