Slow Wi-Fi on the Raspberry Pi

2014-06-15

When I bought my Raspberry Pi, I ordered a kit containing the device and a Wi-Fi stick to make sure that the stick is compatible. The adapter had a RTL8188CUS chipset -- which is actually well supported. Moreover, the stick even works in access point mode. While the adapter was not labeled with a manufacturer name, the command lsusb shows information about it:

Bus 001 Device 006: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

Despite the seemingly great support, Wi-Fi was barely usable: the transmission rates were very low, there were lots of dropped packages, and the adapter lost connection to the access point every couple of minutes. In the forums, a recommendation was to use a good power supply. I tried different power supplies, different USB ports on the Raspberry Pi and on a powered USB hub, different kernel and driver versions -- all to no avail. I also tried disabling the adapter's power saving mode and USB autosuspend by creating the file /etc/modprobe.d/8192cu.conf with contents:

options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

The issues still persisted after a reboot. For a while, I resorted to USB tethering from my phone which worked great. However, then I noticed a thread on the Raspberry Pi forums. A user named rahiquist who had the same adapter according to lsusb fixed the Wi-Fi connectivity issues by switching to an Edimax EW-7811Un adapter. The weird thing is that the Edimax dongle also has an RTL8188CUS chipset. I ordered one of these Edimax adapters and the issues were gone in my case as well. lsusb lists the following information about the Edimax adapter:

Bus 001 Device 005: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

User rahiquist determined that the old stick is very voltage sensitive which seems to cause the Wi-Fi issues on the Raspberry Pi. The adapter works much better on my laptop and rahiquist achieved higher bandwidths on his laptop as well.