FIFO underrun means that the controller is not fed quickly enough with motion data. The reason for this can be numerous:
1. 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?
2. The 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 or the length is 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 quality issues (see also below).
3. There is external interference
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. Have gold-plated contacts en double shielding can potentially solve connection issues.