@Phaedrux haha, fair enough.
I have solved my issue, finally! I will give a quick rundown of my findings here, with the hope it helps someone in the future.
Basic issue: the servo motors controlling my delta printer towers were not moving correctly. These motors have external drivers that I am controlling using the Duet Expansion Breakout Board. This includes no movement, stuttering movement, incorrect distances, and incorrect speeds.
Solution: I believe all of these steps were necessary, but if I could go back and do it again I would definitely try the timing adjustments first.
- Use 5V logic by connecting the PUL+, DIR+ and ENA+ for all three tower servo motors to the +5V pin on the H6_PMW header of the Duet Expansion Breakout Board.
- Use 'R1' to invert the enable signal (although this may be accomplished by switching the ENA+ and ENA- wires).
- Increase timing values. The tricky part here is that the values stated in the servo motor manual did not work! I had to increase the values well above what they stated was necessary. More details below:
Based on these figures, I believed that setting the timing to T3:3:6:6 using the M569 command would be sufficient. HOWEVER, after testing I found that the minimum values I can use are T4:4:10:6 meaning a 4 microsecond step pulse width, 4 microsecond step pulse interval, 10 microsecond direction setup time and 6 microsecond direction hold time. To be safe, my final values are as follows:
M569 P5 S1 R1 T5:5:12:6 ; physical drive 5 goes forwards (x-tower), enable signal inversion, timing:3,3,6,6
M569 P6 S1 R1 T5:5:12:6 ; physical drive 6 goes forwards (y-tower), enable signal inversion, timing:3,3,6,6
M569 P7 S1 R1 T5:5:12:6 ; physical drive 7 goes forwards (z-tower), enable signal inversion, timing:3,3,6,6