My Two Cents on WiFi
Whenever I have to deal with WiFi it always makes the hair on the back of my neck stand on end. There are always issues and it is difficult to track them down efficiently because most modern software tries to hide all aspects of it in the name of convenience. It is so much less reliable and predictable than the good old Ethernet cable. So whenever I have the opportunity I drill a few holes and lay a new Gigabit Ethernet cable. Another issue is that most regular WiFi users do not realize that a large amount of their perceived internet latency or bandwidth limitation can very well be the result of a weak WiFi connection or a crappy WiFi router. Or the fact that the bandwidth is shared among all clients. But enough of the rambling.
The Issue at Hand
Over the past months I have occasionally had to deal with bad WiFi reception on a Lenovo IdeaPad Z370 with Ubuntu. The laptop is used only about 10m away from the router but it was always twitchy. For a while I thought it was a problem with Ubuntu since I had to use Wicd for connection management on the Z370. That to me was an indicator for poor WiFi support for the Z370 in Ubuntu. After that I also upgraded the WiFi router in an attempt to quickly fix it by throwing money at the problem. Then a lot of fiddling with the antennas and channels followed with only marginal improvement but it was bearable.
A couple of days ago the Z370 was updated to Ubuntu 14.04. This once again turned the WiFi situation on its head. Wicd did not work any longer and the NetworkManager appeared a lot twitchier. It was time to once again dig deeper.
The approach to investigate the WiFi problem this time was basically what I should have done from the very start.
- First I checked the signal quality in exactly the location the laptop is usually used in and surveyed the slowness and even disconnects first hand.
- Secondly I booted Windows 7 on the laptop. It is dual-boot so that was easy as well. And lo and behold the connection was just as bad as under Ubuntu.
- The third and most important step was to get a comparison for the WiFi reception at exactly the same location. Luckily I had an "old" Dell E6400 around to do just that.
Well, this third step was what brought about an important realization. The reception at this spot was not as bad as previously thought. The Dell laptop was happily giving bandwidth rates of >100 MBit/s. So the signal was clearly not that bad. Since the problem occurred under Windows 7 and Ubuntu a software issue was also unlikely. It had to be a hardware issue.
I have opened up quite a few laptops in my time so I knew the WiFi antenna cables are routed around inside the laptop usually to the lid where the actual antennas are mounted. I guessed there might be a break in the cable at the hinge-joint to the lid. But it is a lot of work to open up the lid. So when I had the bottom part of the laptop opened up and had a look around I thought why not disconnect one of the antennas or flip them around and see what happens. There was no visible improvement. But staring at the half-size Mini-PCI WiFi module brought up another thought. Why not switch it with the one from the Dell laptop. Just to see what happens.
So I plucked out this nameless, probably Foxconn (PPD-AR5B95) module:
Then I inserted this Intel Ultimate N WiFi Link 5300 (533AN_HMW) one from the Dell E6400:
Like you might have guessed by now. This fixed the problem quick and simple. Luckily the Dell Laptop does not even need WiFi for a while so the module can stay right where it is. Such a module only costs about 10-15€ anyway. Ubuntu also recognized the module immediately and I just had to enter the WiFi password again. That was it. Fixed! Same on Windows 7 of course.
If you ever get into similar WiFi trouble do not let yourself get mislead by your general aversion to WiFi and instead approach it methodically.
- Confirm the problem.
- Compare to a software reference
- Compare to a hardware reference
- Fix it.