USB 3.0 and WiFi and Interference, Oh My!
We have seen comments and questions in the Ultra96 Hardware Design Forum here on Element14 about how WiFi performance on the Ultra96-V2 is affected if the adjacent USB 3.0 interface is also used simultaneously. This is not a new phenomenon, and certainly not exclusive to the Ultra96-V2. Lots of products, especially WiFi network routers, have experienced this issue to varying degrees. The issue is that the USB 3.0 interface radiates emissions in the same 2.4 GHz spectrum that the WiFi (and Bluetooth, too, for that matter) operates in. These articles describe this in more detail:
What to do, though, when USB 3.0 and simultaneous WiFi is a requirement? It is not practical, or even possible, to retrofit shielding around the Ultra96-V2 USB ports to prevent radiating emissions. Thankfully there are a few other options that are easy to implement.
Practical Advice, But Maybe Not All That Helpful?
A possible solution is to use high quality, well shielded USB cables and to move the USB device as far from the WiFi antenna as possible as described here:
Helpful Advice, But Defeats The Purpose
If you don't mind clipping the performance of the USB 3.0 device to USB 2.0 levels you can try the following:
- Use a USB 2.0 extension cable between the Ultra96-V2 board and the USB 3.0 device.
- Plug the USB 3.0 device into a USB 2.0 hub
Both of these solutions will force the USB 3.0 device to operate as a USB 2.0 device. This will of course hinder the performance of the USB 3.0 device, but will keep the USB interface from radiating emissions that interfere with the WiFi. Accepting the lower performance of USB 2.0 defeats the purpose, though, of using a USB 3.0 device. Note that not all USB 3.0 devices (e.g. some spinning disk drives) will support this. More information on this can be found here:
Practical AND Helpful Advice
Other solutions are more specific to the Ultra96-V2 and Linux, and that is good because it provides way to directly affect performance of our system rather than following some nebulous instruction to "try using different cables":
- We have noticed that plugging a USB 3.0 device into the J8 USB port (closest to the high speed mezzanine connector) has less of a negative impact on the WiFi performance than using the neighboring J9 USB port.
- Use a wired USB-Ethernet adapter instead of WiFi. I recently wrote a blog article on this topic that highlights the many options for this:Wired Ethernet Choices for Ultra96
Examples of How USB 3.0 Affects WiFi Performance
Here are examples of WiFi performance when using USB 3.0 and WiFi simultaneously. This is an iperf3 server running on a Linux host and the iperf3 client running on the Ultra96-V2 board. These iperf3 results are for illustrative purposes only, and yours are very likely to be quite different depending on the USB 3.0 device, quality of USB cable, and WiFi LAN arrangement.
- WiFi performance with nothing plugged into the USB ports (and Linux OS otherwise also idle). This is the baseline WiFi performance measure of ~8 Mbps:
- A USB 3.0 disk plugged into the J8 USB port. You can see there is a slight effect on WiFi performance with a drop down to ~6 Mbps:
- The same USB 3.0 disk plugged into the J9 USB port. This has a significant negative effect on WiFi performance with a drop down to ~2 Mbps:
If you must use WiFi and USB 3.0 together, then plug your USB 3.0 device into the J8 USB port to minimize the effect on WiFi performance. In this case we see that the USB port that is farther away from the WiFi module (J8)(admittedly not much further away) interferes less than the port closest to the WiFi (J9).