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!
igccyclictestintel_idle.max_cstate=1 processor.max_cstate=1igcPlease Log in or Create an account to join the conversation.
- Hakan
- Online
- Platinum Member
-
Less
More
- Posts: 1245
- Thank you received: 436
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
- Online
- Platinum Member
-
Less
More
- Posts: 1245
- Thank you received: 436
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.
- 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.138 seconds