FIFO underrun means that the controller is not fed quickly enough with motion data. The reason for this can be numerous:
- The PC is doing other things
This can sometimes be difficult to find, however there a number of things that can cause this, eg.:
- Is anti-virus software running in the background that takes processing time away from our software?
- Are there power-saving options enabled that cause the processor to slow down?
- Is there another software running that takes up time away?
- The USB connection is not reliable
It's important to use a GOOD USB cable. USB cables are available with different qualities, make sure you use a proper one. The physical connection and the length are also important. USB cables have a maximum length, but we advise not to use the maximum length simply because it can cause issues with the USB timing due to interference issues (see also below). It can also be a good idea to use USB cables with ferrite integrated this can filter out
USB is, in general, a reliable connection, however, USB is also susceptible to external signal interference. This interference can often come from other cables that supply high currents. These cables can interfere with the low-power USB signal. Always make sure that the USB cable does not come near high power cables or other sources of interference like motors.
But, as already mentioned above, the quality of the cable is very important. A good USB cable costs a little more but can also avoid problems. Having gold-plated contacts en double shielding can potentially solve connection issues.
- The ethernet connection is not reliable
Having FIFO underrun is pretty rare, we always prefer ethernet to USB simply because of its reliability and cable length. However, every now and then a customer has encountered this. The things that you can check are:
No other protocols are running on the network interface
Please note that all other protocols except IPv4 have been disabled. The main reason for this is that from the OS miscellaneous network message can be sent, causing delays to the data that is sent to the controller.
Use an ethernet cross cable
We are aware that some network interfaces are capable of switching to a cross cable mode, making it easier to use a 'normal' network cable. However, we want to exclude any possibility of something not working correctly. So, although not very likely it's useful to exclude this issue.
At one time a customer found the issue. It showed that the contacts of the network interface in his PC were oxidated causing
intermittent signal, which of course led to this strange network issue. By replacing the network interface the issues were solved.
Do not use a network switch
Our CNC controller is supposed to be connected directly to a PC, preferably with a cross cable. Although network switches these days are very good at routing the data with minimum delay it's hard to tell whether that is also the case when a network switch is being used. So when using a network switch all bets are off.
“...when you have eliminated the impossible, whatever remains, however improbable, must be the truth?”, Arthur Conan Doyle
If you have tried all these options the issue can be with the controller itself, the only option would be contacting us and we can see if we can check your controller to see if something is wrong with it.