Motion Jitter with LinuxCNC + EtherCAT
- Abdulkareem
- Offline
- Senior Member
-
Less
More
- Posts: 77
- Thank you received: 2
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 thedriver. 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.shows good average latency (~2 µs) but occasional spikes up to 95 µs. I’ve tried kernel parameters likebut 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 thedriver. Any help is greatly appreciated!
igc
cyclictest
intel_idle.max_cstate=1 processor.max_cstate=1
igc
Please Log in or Create an account to join the conversation.
- langdons
- Offline
- Platinum Member
-
Less
More
- Posts: 549
- Thank you received: 57
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.
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.
- Hakan
- Offline
- Platinum Member
-
Less
More
- Posts: 808
- Thank you received: 279
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.
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.
- Abdulkareem
- Offline
- Senior Member
-
Less
More
- Posts: 77
- Thank you received: 2
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.
- Abdulkareem
- Offline
- Senior Member
-
Less
More
- Posts: 77
- Thank you received: 2
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.
- Hakan
- Offline
- Platinum Member
-
Less
More
- Posts: 808
- Thank you received: 279
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.
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.
- langdons
- Offline
- Platinum Member
-
Less
More
- Posts: 549
- Thank you received: 57
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.
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.
- Abdulkareem
- Offline
- Senior Member
-
Less
More
- Posts: 77
- Thank you received: 2
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