Motion Jitter with LinuxCNC + EtherCAT

More
31 Jul 2025 12:14 #332597 by Abdulkareem
Motion Jitter with LinuxCNC + EtherCAT was created by Abdulkareem
I’m running LinuxCNC 2.9.4 on a fanless Venoen P12B with a PREEMPT_RT kernel and EtherCAT (IgH master + lcec HAL driver) connected to 5x EL8-EC400(COE) drives via an Intel I225-V NIC using the
igc
driver. Everything initializes correctly—slaves reach OP state, clocks sync, link is stable at 100Mb/s Full Duplex—but I still get intermittent motion jitter, especially after reboot.
cyclictest
shows good average latency (~2 µs) but occasional spikes up to 95 µs. I’ve tried kernel parameters like
intel_idle.max_cstate=1 processor.max_cstate=1
but that worsened the issue, likely due to the system’s passive cooling. I’d like to keep my current hardware and am looking for any software-based solution to eliminate jitter with the
igc
driver. Any help is greatly appreciated!

Please Log in or Create an account to join the conversation.

More
02 Aug 2025 16:36 #332685 by langdons
Replied by langdons on topic Motion Jitter with LinuxCNC + EtherCAT
Predictable latency is not the main issue, spikes are the problem.

Did you change the governor to performance?

askubuntu.com/a/1530756/1717310

It helped me.
The following user(s) said Thank You: Abdulkareem

Please Log in or Create an account to join the conversation.

More
03 Aug 2025 06:55 #332707 by Hakan
Replied by Hakan on topic Motion Jitter with LinuxCNC + EtherCAT
Can you describe the jitter, I suppose you hear clicks or gravel noise from the servos?
Is it always like a steady stream of those noises or are the bursts every few minutes?
Please elaborate.

Please Log in or Create an account to join the conversation.

More
03 Aug 2025 08:13 #332711 by Abdulkareem
Replied by Abdulkareem on topic Motion Jitter with LinuxCNC + EtherCAT
yes the sound is similar to what you describe and is more of random burst

Please Log in or Create an account to join the conversation.

More
03 Aug 2025 08:33 - 03 Aug 2025 08:34 #332712 by Abdulkareem
Replied by Abdulkareem on topic Motion Jitter with LinuxCNC + EtherCAT
i tried changing the governor to performance just now it improved the latency a little bit but the noise still occurs
Last edit: 03 Aug 2025 08:34 by Abdulkareem.

Please Log in or Create an account to join the conversation.

More
03 Aug 2025 10:31 #332716 by Hakan
Replied by Hakan on topic Motion Jitter with LinuxCNC + EtherCAT
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.
The following user(s) said Thank You: Abdulkareem

Please Log in or Create an account to join the conversation.

More
03 Aug 2025 15:55 #332732 by langdons
Replied by langdons on topic Motion Jitter with LinuxCNC + EtherCAT
Also try unplugging unnecessary hardware, it could reduce latency a bit.

If you have a dedicated graphics card, try plugging it in and using it, it could reduce latency.

I wish LinuxCNC ran on BSD, it appears to be faster than Linux, though I have not used BSD in any serious way because it always fails to boot after install.
The following user(s) said Thank You: Abdulkareem

Please Log in or Create an account to join the conversation.

More
04 Aug 2025 09:17 #332803 by Abdulkareem
Replied by Abdulkareem on topic Motion Jitter with LinuxCNC + EtherCAT
thank you again for your time the hal scope confirmed your hypothesis there is one thing i wanted to confirm if i tune the acceleration parameters will it reduce the noise because i think i might of set it a little bit high

Please Log in or Create an account to join the conversation.

Time to create page: 0.085 seconds
Powered by Kunena Forum