Clearpath Servos with 1XD Expansion
-
@T3P3Tony The problem is not reproducible while other steppers are not operating. I made a simple gcode file with about 50 moves, many of them with 1mm oscillations and then return to home. After running the code dozens of times no change in origin for the duet or servos was noticed.
Im pretty sure that the issue has to do with communication between the duet 3 and the 1xd boards.
Ive thrown some steppers in place of the servos temporarily.
Any other good tests I could do? to help narrow the issue down?
-
Hi @jballard86,
I'm a Teknic engineer and I came across your post. While it doesn't seem like the motors are causing the issue you are seeing, the ClearPath MSP software has a lot of useful diagnostic tools that can help us figure out where the problem may lie (mechanics, controller, wiring, settings, etc.).
Based on the information in this thread, I'm not quite sure what the issue is, but I'd be happy to set up an online session and troubleshoot with you. Please feel free to give Teknic a call if you are interested.
EDIT You may have seen some of the support videos that Teknic produced to help customers learn the MSP software and diagnostic tools. In the event that you haven't (or in the likely situation that someone else comes across this post and needs help troubleshooting some aspect of their machine), here are some links to those videos:
-"Using MSP (Motor Setup Program)": https://www.teknic.com/products/clearpath-brushless-dc-servo-motors/model-support-sd-dc/#model-support-running
-"How to Use ClearPath's Diagnostic Tools" (we plan to eventually move this video to the link above as well, but right now it's located on our "Videos" page under "Demos and Tutorials"): https://www.teknic.com/watch-video/
Best,
Bridgette G. - Teknic Servo Systems Engineer -
I may take you up on that. Im also pretty confidant that this issue has nothing to do with the servos. But the 1XD are a beta device and im sure the problem revolves around that.
I will be putting the Servos back in the printer when I get some more ideas from Duet, then I may call yall up to help diagnose.
-
What is the max step rate of the Duet 3? That may be the problem, the less micro stepping I do the faster the printer will actually print.
Im debating putting the Servos back in and try them at maybe a 2x equivalent microstepping to see if the error continues.
Any more ideas on your side?
-
The max step rate reduces as you increase the step pulse width and interval. So set the M569 T parameters to the minimum values given on the datasheet for the drivers.
8000 pulses per rev is equivalent to 8000/200 = x40 microstepping. So reducing pulses per rev may be advisable.
Use M122 to report the number of hiccups on the expansion board. High values indicate that the 1XD cannot maintain the requested step rate.
-
@dc42 towards the end of my testing with the servos I had dropped down to 3600/rev and hiccups were in the single digits usually 1 or 2
pulses were setup at 2.7:2.7:2.7:2.7
still had shifting
-
@dc42 Know of any other users running step/dir servos using the 1xd with no issues?
-
Please check for hiccups in the M122 report for the 1XD board as I requested before.
-
I did, it would read 0-2 hiccups yet it still shifted consistently. Hiccups went down as I reduced the the resolution of the servos, and still I had layer shifts. I did a M122 dozens of times with the same results
Or are you asking for something else in particular? After this hurricane hits tomorrow night I plan on putting the Servos back in for some more testing, and ill do another M122 that will result in 0-2 hiccups again.
@jballard86 said in Clearpath Servos with 1XD Expansion:
at low speeds, no retractions, no fan the hiccups are minimal: 0-2.
Ive also reduced the servos to an 18x microstepping equivalent (3600 counts/rev), with no change.
Ill also have to say that even at low speeds im still getting a shift on every layer its just significantly less pronounced.
Ive also tested without the bed heater on, no change. I thought there may be interference.
-
@jballard86 I would try to isolate the problem. eg it seems that only one axis or diagonal ( in both cases it could be one stepper if its corexy) is the reason. So only one 1xd if its the board. So to verify you could exchange the two boards and check whether the axis changes also. If not, it could be a different reason. Did you check hiccups of both boards? I don't know the 1xd boards, but is there something special to do for the CAN termination?
You could use P3 for a normal stepper for x or y and check whether one of the two 1xd is faulty and whether it is a problem which only occurs with two 1xd boards. I know, this is some work, but isolating the problem is Imho the way to have a chance.
-
I am working again after a short holiday and I have time to look into this today. What is the simplest way you know of to reproduce the problem? I don't have any servos, but I have two 1XD boards and external stepper drivers.
You said:
The problem is not reproducible while other steppers are not operating. I made a simple gcode file with about 50 moves, many of them with 1mm oscillations and then return to home. After running the code dozens of times no change in origin for the duet or servos was noticed.
If you run a test file that does small oscillations on two drives at the same time, does the problem occur?
Perhaps a test file that does a complete number of circles would reproduce this, i.e. the servos should end up at the same position as when they started, but don't? If you don't have a suitable file, the one attached may help.
-
@dc42 in my experience yes
-
@dc42 im at work and can't look at that gcode file, but if it does t use steppers attached to the main duet 3 as well it wouldn't reproduce the problem.
I did extensive tests of just the x and y axis with no other actions from the duet with and could not recreate the problem. The file I used was about a min long with a high feed rate. It included circles, squares, zip zags, and even a 1mm oscillation. Id run it dozens of times with no errors or hiccups.
But after this hurricane hits us in the Carolinas, im going to put the servos back in and ill do any and every test you want me too, even if I've already done it so that we can figure it out.
Thanks!
-
@jballard86, thanks. My test system currently has a Duet 3 main board, 3x 3HC expansion boards, one tool board, and two 1XD boards. So a config and test file that can reproduce the problem on that setup would be very helpful.
-
@dc42 when I get off later ill send the config file I was using with the servos, and the test print i created that consistently produced the failure.
-
config.g This is the config used with the servos.
Short move stress test.stl I designed this simple tower/gear type object to have constant changing directions. It gave me consistent issues with the servos.
I was running at an equivalent 18x microstepping in the later tests and 40x in the first tests.
-
This post is deleted! -
here is a more up to date config, that is actually printing right now (with shifting) config (1).g
and here is a the console output after running a few M122 commands for the 1XD boards and the main Duet console.txt
This was while printing the standard Benchy model. no hiccups at all. But plenty of shifting, there are no skipping/slipping belts.
-
Thanks, I am about to see if I can reproduce the problem using your files.
-
I have added some additional diagnostics to the firmware. When I run your test file, then pause the print and command movement to the origin, the motor position reported by the EXP1XD board is not as expected. I suspect that some movement commands are being lost in transmission from the main board to the expansion board. I have not yet identified how or where they are being lost. I will continue this investigation tomorrow.