What to do if your Raspberry Pi WiFi is slow or rubbish / Alternatives for RPI Networking

There are literally thousands of posts on the various Raspberry Pi forums about people having WiFi problems – even those that have compatible dongles are blighted by slow media transfer speeds or just spotty connections. I know – I spent a week trying to figure out what was wrong with mine. I’ve come up with the following seven step troubleshooting guide that solved my problems.

1. Check that your board is getting enough power

The single most common cause of problems with the Raspberry Pi is an unsuitable power supply. The official requirements are simple: a 5v micro-usb power supply. The problem is that many Micro USB chargers are designed for phones, and even those rated 5v might not actually be producing that. The best way to be absolutely sure is to test the voltage supply across your board – see detailed instructions here on the eLinux website for doing this. I recommend either the Apple 5V USB supply or the Amazon Kindle USB supply – I’ve tested both and they work great.

2. Check your stream speed

The best way I’ve found to do this is to FTP / SFTP into your device (the former requires an FTP server like the one built into Raspmbc, the latter just needs your SSH credentials) and upload, then download a file. You’ll be able to see the speed at which the file is transferring from pretty much any FTP/SFTP client (I recommend Transmit for Mac, and Filezilla for PC / Linux). The advantage of doing this is that you can locate the problem – particularly on Raspbmc it isn’t clear when the video freezes up whether the board is playing up, or whether its just waiting for the file.

If your speed is <500kbps, it is (almost) without a doubt the WiFi. If its above, then its the board and this article won’t help you much.

3. If its the WiFi, move your Pi to right next to the router and repeat

That way we can rule out signal. Often the speed will increase, and perhaps solve the problem. If this is the case, and your other wireless devices get signal just fine wherever you are, then try hooking the WiFi dongle up to a (powered) USB hub. This will provide more power to it than the Pi board itself will, and in doing so should improve your connection quality. Its similar reasoning to why an computer will get signal where an iPhone won’t.

4. If that doesn’t solve your problem, there are a few more things you can try:

– Hardwire the source into the network. If the media source is a computer that is wirelessly attached to the network, try hardwiring it in. LAN is much faster than WiFi and this may alleviate the problem.
– Try Powerline – Powerline is a LAN-by-power-socket solution, enabling you to (effectively) plug a LAN cable into the wall, and then pick it up anywhere else in your house at another plug – it works by using your house power cables. It is very fast, and it was the solution I found for my wireless problems with my Pi. It isn’t perfect, but its fast, secure and it works. My favourite is the TP-Link 500mbps kit.

I tried all of the above with my Pi, and despite being in a good signal area in my house, my streaming speed was still crap. Ultimately, Powerline was the solution for my problem – its fast, not particularly expensive and it worked great, first time. It also gets you out of the wireless configuration on whichever distribution of Linux you choose – LAN is pretty much plug and play.

Comments

  1. says

    Hi George,
    I’m having problems with my Raspberry Pi running AirPi (AirPlay receiver).
    When the Raspberry is sitting next to the router there is no problem, but when I place it in a place where the Wifi signal reception drops to 50%, the Wifi connections starts to fail (lost pings, delay over ssh, etc.) and this makes AirPi not working properly.

    To solve this I bought a Wifi range extender (TP-LINK WiFi Repeater TL-WA701ND) but there’s a problem with this repeater and AirPlay. Seems that the repetear doesn’t broadcast the broadcast messages AirPlay needs to work.

    My intention was using PLC to solve this issue but I want to be sure that I won’t have the same problem as with the Wifi repeater. Do you know or can you check if AirPlay works fine with those PLC adapter you are suggesting?

    Thanks in advance.

    • George says

      Hi Sergi,

      Thanks for your comment.

      Assuming you have AirPi running on Debian/Raspbian, it will work fine – I have a second Pi with Raspbian and it is hooked up through a PLC (TP-Link PA411KIT AV500 500 Mbps Powerline Adapter) to my router. The PLC effectively gives you an ethernet port to plug the Pi into, so there (as far as I am aware) no chance of there being a problem.

      In addition, I set my Pi up with AirPi (very similar setup to this) and it has worked perfectly – the only thing to be aware of is the ~1second lag between actions on the computer and responses from the Pi.

      Hope that helps!

      George

      • says

        Hi George,
        Thanks for your fast and useful reply!

        I will go ahead and buy the TL-PA411KIT.

        It’s a shame Wifi works that bad with the Pi but at least there’s an alternative..

        Btw, I’m using Pi Musicbox now. I want the Pi to be an audio receiver and the only problem I’m having now is this connection issue…

        Thanks again.

        Regards,
        Sergi.

    • says

      Hi Sergi,

      I’m by no means an expert on the subject, but AirPlay devices use the Apple Bonjour service to advertise themselves as AirPlay servers. Bonjour uses mDNS for the advertisement, which uses multicast packets (as opposed to broadcasts).

      My suggestion would be to verify that your wireless extender is configured to forward multicast packets. This might solve the issue.

      I configured my RPi as a wireless AP with a DHCP server so that I could hopefully use it as an AirPlay server without the need for an additional wifi router/AP. Everything works connection-wise, except when I try to AirPlay something over wifi (from iOS/laptop client to RPi server directly), the stream stutters completely. Lots of “missing frames” and “requesting resend” messages in Shairport.

      I tried the file transfer test above using SCP (since I don’t have a multimeter handy at the moment) and got ~4.9MB/s (~39Mbps). The RPi is also configured to route and do NAT, so I performed a couple speed tests too (which I would think would be expected to be slower since it has to route/NAT from a client connected to it via wifi to my main router connected via its wired interface). I got about 25-30Mbps, so overall I don’t think the wifi connection itself is the bottleneck. It’s something having to do with AirPlay specifically.

      I’m thinking the encryption required could be slowing it down? I think AirPlay audio (AirTunes) mandates encryption. I’ve tried to AirPlay audio only using both Shairport and XBMC and see the same results (unacceptable quality audio). I’m not too sure what else it could be. Any ideas?

      -Blix

      • regi24gi says

        Hi Blix,

        Unfortunately my wireless extender has no option to configure “forward/don’t forward multicast packets”.

        I had exactly the same problem you are experiencing with audio stuttering. The only solution I found was buying a Powerline adapter. Now I have 0 problems with AirPlay (AirTunes) with MusicBox distribution.

        I’m sorry I can’t help you with Wifi connection but I gave up on it..

        Regards,
        Sergi.

  2. Juan C. Marin says

    Hi, I performed some speed tests using a model B rpi and I get an average network speed of 1.9M bytes/sec [using SMB and NFS] and I get 1M bytes/sec [using FTP], those speeds where using a rpi wifi and a hardwire mac osx, after that I hardwire the pi and then I get 2.63M bytes/sec [using NFS], can you tell me the speeds are you getting using the powerline? Thanks.

    • George says

      Hi Juan,

      That sounds similar to what I get (from memory) I’ll do a proper test and report back soon. That sounds like enough to stream a HD movie from a network file system though.

      George

  3. Gringo says

    Hmm. I can’t get either of two RPis to work with a Belkin N300 wifi adaptor, in spite of it having a “just plug it in” chipset (RTL8192CU), and having tried all the distributions I’ve found. The N300 works fine with all the PCs I’ve tried it on, the RPis accept other USB devices without problems, and it isn’t lack of power – The N300 has 3.1 amps all to itself, whereas the RPi gets 2 amps, which should be enough.

    I suspect there’s something seriously wrong here (people advise not to use the “8192CU” driver, but to compile a “RTL8192CU” driver, but others suggest the exact opposite? Some claim that the drivers in Raspian are just completely broken? What’s all that about?), but I’ve wasted enough time on it now. Cubie have some interesting products coming out next month… ;)

    • says

      Hy Gringo, rtl8192cu support is broken in newer raspbmc versions, same with xbian… I’m still on a version from May I believe and rtl8192cu works excellent (awus036nhr in my case)

Leave a Reply