Category: General LinuxCNC Questions
It*s the usual things with isolcpus, coalesce waiting and so on.
I don't think you can get rid of the jitter sound completely.
The underlying reason is that the position data sometimes misses to update the drives every DC cycle.
Let's not dive into why because we can't fix that here and now, instead see what you can do about it.
Reduce jitter is the start.
Can anything be done with the drive parameters? The drive will see a steadily changing position, every dc cycle a new delta - that's normal. Then suddenly there is a dc cycle without updated position - the drive see this as a full stop and starts doing the electric things to stop the servo. A few dc cycles later the position delta is restored but that means double delta in a dc cycle. The servo drive put the pedal to the floor to increase the speed. So that's what happens. Are there any settings in the drive to handle this essentially very high acceleration? Maybe max acceleration? Match that with the setting in linuxcnc (25% higher is a guideline there). That will reduce the speed change and the jitter noise.
There is a test you can do to see if this mechanism is the problem. Add a ddt component, connect position feedback from one of the servo drives to ddt.in and plot ddt.out in halscope. At a constant travel speed this should be a straight line more or less. When jitter happens you will see the ddt.out making a jump to zero or double value. It's a way to verify but unfortunately not to solve.