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.
Upgrade
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.
Investigation
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.
The Operation
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.
Conclusion
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.