1 June 2017

My Wireless Experiences - a rethink...

The fickle finger of fate has had me burning the midnight oil once again trying to improve my computers wireless connectivity.  Contrary to my somewhat damning previous conclusions regarding Intel cards, I now believe, that it is probably better the Devil you know...

Not to put too fine a point on it, I'm currently of the opinion that Broadcom wireless cards suck huge!  Up until recently, my work with the last Broadcom cards that I had bought - one BCM43142A0 and a BCM94322 - involved the new(ish) mini-PC that I had put together, and that revolved around the AMD Athlon 5350.  Before its arrival, I was using an integrated quad-core Intel Atom 330, Zotac motherboard.  This was bought pre-built and had come with a full-length Atheros wireless card.  Having it left running 24/7 for 3.5 years, I can say with some confidence that wireless on this setup was lousy.  I in fact have never come across one Atheros-based card that has performed well, and I've had 2-3 of them.  Anyway, with the AMD motherboard taking only a single half-length wireless card, I needed to go a-shopping for anything other than Atheros - enter Intel and Broadcom.

Given how few peripheral slots are available on mini-ITX boards, a single wireless/bluetooth solution seemed always the way to go, hence my little obsession with getting this setup to work properly.  My experience with Intel's N-7260 had left me somewhat jaundiced by the whole affair admittedly, but work it did, after a fashion, at least with Linux.  I have had the 7260 in my Dell laptop, running 24/7 for almost a year now, and say what you will about Intel, their wireless cards rock!  Hardly anything to complain about, despite earlier rantings of mine in a previous post.  Bluetooth excepted of course - this continues to suffer from the minor annoyance of either failing to start at boot, or when Bluetooth is switched off.  Suspending/Resuming the computer a few times will eventually see it start up again.

The N-7260 running with Windows 7 is another matter entirely, at least where Bluetooth is concerned.  Wireless is pretty much flawless, just as good as with Linux.  Bluetooth, despite another exhaustive attempt to get to the bottom of the matter, refuses to work at all, which is just plain bizarre.  After having downloaded and tried every single relevant Intel driver, I recently downloaded & tried drivers from both Dell and Lenovo, in the futile hope that one of them contained the much sought-after magic sauce.  All in vain of course.  Intriguingly, I googled a reference by someone that said that their 7260 problem was caused by an installed SSD that he was using, so yesterday, I opted for the onerous chore of installing Win7 on a hard-drive to see if that would fix things - the mini-ITX/Athlon 5350 setup has two SSD in it.  Unfortunately, shitty Windows refused to continue with the installation when it discovered an ex4 Linux Mint partition on the same drive, claiming that it was a GPT partition and could not continue.  So the jury is still out on that one.

But onto my Broadcom rant.  Like I said, wireless had always been lousy with my previous Intel Atom/Atheros setup, so when I upgraded to the AMD 5350/Broadcom setup, it took a while to discover that I seemed to have similar problems with a completely different setup, but both use(d) the same all-metal case.  Hence my suspicions grew that maybe it was the computer case/antenna setup that was causing the problem, not the wireless cards themselves, and there I left the matter until recently, when wireless once again had gotten so bad with the mini-ITX that I could not even stream a movie from it without it either stuttering badly or the connection failing completely.  I therefore opted to investigate in depth the problem and was appalled by what I discovered about the Broadcom cards - namely, they suck!

Putting my (now!) trusty old N-7260 in the mini-ITX computer, I was amazed to find that I had a blisteringly fast & reliable wireless connection.  Up until then, I had never really checked the wireless, having been obsessed with the Bluetooth problem.  So now I knew the issue had nothing to do with either the metal case or the antenna - two things less to consider!  I then went checking the Broadcom cards.  Of the two, the one with integrated Bluetooth (43142) was also by far the worst. [Note: This family of cards has such a poor reputation, that (evidently) Linux doesn't support them 'out-of-the-box' - drivers must be manually installed from the repository (bcmwl-kernel-source)]  With it located just 1-2m from the router, and Win7 indicating it (unsurprisingly) had 'Excellent' signal strength, it would routinely stutter and stop entirely every couple of minutes.  I watched this in disbelief for hours.  It performed similarly when in the laptop, whether beside the router or at distance in another room.  So this card was completely useless, at least as far as wireless was concerned.  Its Bluetooth worked perfectly however, though not (at all!) on Linux, but more on that later.  The other Broadcom card's wireless performance, the 4322, was much better, but that still wasn't saying much.  It was after all what had prompted the investigation in the first place.

My one and only question is, how can Broadcom even exist as a business entity selling wireless cards that perform this badly?  Of the three broadcom cards I've bought, none could be remotely considered as being thought of as a 'good' wireless card.

Given that currently the N-7260 must remain in the mini-ITX computer, and that my Dell laptop would have been Bluetooth-less without it, I attempted to get the BCM43142's bluetooth working on Linux - and succeeded!  Mainly thanks to the following user-posts that I googled;

https://www.spinics.net/lists/linux-bluetooth/msg47879.html
https://forums.linuxmint.com/viewtopic.php?t=224099
https://github.com/winterheart/broadcom-bt-firmware/blob/master/brcm/BCM43142A0-04ca-2006.hcd

The first, refreshingly describes the steps carried out by the Broadcom card  in order to initialise Bluetooth, and where to look for said information in Linux.  The second, though not a fix in my case, shows you the necessary steps needed for removing/reinitialising Bluetooth and where to go looking.  The third link points to the BT firmware needed by the card itself in order for it to work.  Without this, the BT adapter will appear to be working, but scanning for BT devices will reveal nothing.  Note that this firmware is for my Broadcom wireless card, other cards may/will use different firmware.  You will need to check the Linux "kern.log" file in order to find what Broadcom 'Patch' firmware the BT adapter is trying & failing to load.  Do a google for this, copy it into wherever your flavour of Linux keeps this stuff (for Mint, it's '/lib/firmware/brcm') then remove/reinitialise Bluetooth.  Hey Presto! - everything should then magically work, or at least in my case it does!

Thankfully I have two wireless slots available on my laptop.  One now contains the BCM43142 card for its Bluetooth, which works perfectly, unlike the N-7260.  Its wireless is also available of course, but is for the most part, unusable - Shame on you Broadcom!  The other slot contains my other trusty Intel card, the 5100.

Right now I'm thinking of upgrading my modem/router from the old but reliable Huawei E3220, to a Huawei E5577.  The 4G feature is nice, but where I live, not really an option for the foreseeable future, given the 3G reception itself is poor most of the time.  But it does have a dual-band WLAN, whereas the E3220 is limited to just the 2.4G band.  This will also (hopefully) finally allow me to see a significant increase in network speed.  Right now for practical purposes it's limited to about 1.4MB/s which in this day & age, just doesn't cut it.

That will also mean that I will be considering some more wireless card purchases, and despite my previous utterances, it seems that Intel is the only way to go.  Unfortunately the 7260-AC cards are the most highly rated (and expensive) that they currently offer, and given my nightmarish time with the N-7260, I'm reticent about pulling the trigger on one of these.  The 'AC' part is also of little use to the E5577, which is not AC-enabled.  Decisions,  decisions.  One thing I know for certain - I will not be buying any more Broadcom cards!!!

Edit1:
Some time later...   Windoze finally installed after I had formatted the hard-disk beforehand.  No difference whatsoever whether it's on a SSD or a hard-disk, as far as Bluetooth is concerned.  I even tried two flavours of Windows 7, Win 7 Home Basic & Win 7 Ultimate - no difference!   I then stumbled across another post where someone said that clearing the CMOS info fixed it for him - not for me it didn't!  I finally updated the Bios, from version 1.2 to 1.5, no difference there either.

As a last resort, I started downloading & installing Win8.1 & Win10 drivers.  I was exhilarated initially to discover that with early Win8.1 drivers, after a reboot, the drivers installed without errors!!!  Unfortunately, that is all they did.  When I tried changing & saving Bluetooth settings, it failed, saying the device might be unplugged.  There was also no Bluetooth tray icon or Control panel settings to indicate that Bluetooth even existed.  Naturally, trying to 'Add' a Bluetooth device detected nothing.

So after fighting the good fight, I am admitting defeat on this.  Although as I have already said,  the N-7260 works fine with Linux, one interesting thing I found was that when installed on the mini-ITX motherboard, I could not disable it from the Bios - I still have a wireless connection when it's supposedly disabled!  That is suggestive of a hardware problem somewhere, and given the grief this card has put me through, it's probably the cause.

After swearing to never get another Intel card, I have just gone and ordered 2 7260 AC cards!  This means that I will not be getting the E5577 router after all, going more upmarket and getting a Huawei B525.  I can get one of these babies for just €50 from my ISP as long as I sign up for another 18 months with them.  Given I'm with them well over a decade already, that's no biggie.  These also allow for an external antenna, which given the lacklustre 3G reception at this location, means that that's one more thing I'll have to order.  Fun, fun, fun.

Edit2:
 My curiosity got the better of me, so I  tested my N-7260 with Windows 10 - the same problem exists!  At this stage, it's looking very likely that it's a hardware fault with the card, and nothing to do with the drivers.  Along with the usual 'Cannot start (code 10)' error, one additional piece of info that is shown on Windows 10's Device Manager is a line saying that the Bluetooth adapter is suffering from a 'Power_failure'.  I'd probably have taken a hammer to it ages ago but for the fact that N-7260's Bluetooth works fine with Linux.  I also discovered why the N-7260 still had internet access when disabled in the Bios - I had put a sliver of cellotape over one of the pins ages ago (a Youtube 'fix' I suspect) and had forgotten about it!  When removed, the card once again honoured the Bios settings.

With regard to Windows 10, that was the first opportunity I had to play with it.  Wow, I was underwhelmed - I can see why Microsoft has been trying to sneak it onto people's PC's while they are asleep.  I cannot understand why they abandoned the 3D graphics look - that 2D desktop looks terrible, like something from the Windows 3.1 era.  Windows 7 is a far more attractive desktop.

Edit3:
Haha, even Broadcom's BCM43142 Bluetooth is crap!  While it does work, and is usable when listening to music, watching a movie etc. is another matter entirely.  The audio stream is full of short intermittent breaks, resulting in the audio going out of sync with the video after just a minute or so.  I never had a problem like that with the Intel's N-7260.  Yep, Broadcom sure sucks!!!