I had looked at a relatively cheap dual-band 802.11ac dual-stream USB Wi-Fi adapter recently and it seemed that the pain of single-band Wi-Fi solutions may be soon coming to an end. Unfortunately, that adapter did have some design quirks and its Realtek chipset did leave something to be desired from a Linux support point of view. As a result, I decided to go looking for another adapter that had an external antenna, good range and a non-Realtek chipset. Believe me, it was not easy to find.
Behold, the TP-Link Archer T2UHP AC600 High Power Wireless USB Adapter. This unit cost a lot more at AU$52, but is based on a Mediatek MT7610U chipset.
As Mediatek had acquired Ralink Technologies, I was hoping that this meant that this would be one of the more favourable adapters to use in Linux. I still have fond memories of the early days of 802.11g when Ralink Technologies RT2500 adapters enjoyed out-of-the-box support (along with the Zydas Technologies ZD1211 and later joined by the Realtek RTL8187B). It seems that support was still good into the 802.11n era, where the Atheros 9k-series (TP-Link TL-WN722N for 2.4Ghz) and Ralink RT3572 (Tenda W522U for dual-band although with terrible sensitivity) had decent out-of-the-box support. Unfortunately, the march of progress has meant that these older chipsets are very much off the market, replaced with newer chipsets mainly from Realtek (e.g. TL-WN722N v2). At the least, this means some compiling of drivers before things work. At the worst, it could be nigh impossible.
The unit comes inside a familiar lime-green cardboard box, loudly proclaiming a three year warranty, high power and 5dBi antenna. The unit is a little different from most, instead of being a plug-in unit, this one is designed as a puck that sits on your desk and is connected by a USB cable. This unit is sold as an AC600 rate unit, meaning a single spatial stream on 2.4Ghz (150Mbit/s 802.11n) and 5Ghz (433Mbit/s 802.11ac).
The rear gives a little bit of information about some of the features, but is otherwise boilerplate text. The sides are not much different, with an image of the adapter, a list of package contents and some basic specs. There is also a QR code that takes you to the product information.
The unit claims support all Windows from XP through to 10, but lists no other operating systems. I wonder if this was a deliberate choice to ensure they can’t be blamed for a lack of Linux or Mac OSX support.
The unit uses a USB 2.0 connection, and is thus likely to use an older chipset. This may help for compatibility, but could also indicate throughput bottleneck as USB 2.0 is only good for 32MB/s (assuming no other devices in an ideal situation) which is around 256Mbit/s.
The underside has the barcode, and it indicates that my unit is Version 1.0.
Inside the outer box is a plain white box. This folds out to reveal the contents.
The parts are placed into a plastic moulded tray, with some items underneath.
All up, there’s quite a few pieces of paper, a full sized driver CD (although the drivers are available online), a USB cable, the adapter and an external antenna.
The adapter itself is quite beautiful with a lot of curves and vent grilles. It almost looks like a space-ship in its shape. The front is glossy and reflective, with the USB port and indicator LED.
The rear has the WPS button and the RP-SMA connector for the antenna. In a rather unfortunate move, it is recessed quite deeply. It’s as if they chose to include the connector to make the adapter more versatile in allowing it to be connected to different antennas, then decided it was too risky to let the user easily switch antennas and so shrouded it making tightening of the retention nut very difficult. Nothing a dremel can’t fix, but this design is not something I hope to see in the future.
The vents stretch top and bottom, with a serial label at the bottom. It seems that this unit is CE marked, which is appropriate for Australia, but it means this adapter is less capable. According to TP-Link, for those using FCC standards, the output power is <30dBm (I presume, this means 30dBm almost precisely). For those in CE countries, the 2.4Ghz output is <20dBm and 5Ghz output is <23dBm (or in other words, similar to most PCIe cards). I feel this is rather disappointing that there is a 10dB output power gap which might be quite important for long distance links. It’s probably nothing that can easily be changed either, as the region coding would be encoded on the EEPROM along with other transmit power correction coefficients, which makes modification difficult.
Regardless, another strange choice seems to be the choice of the orange-and-black colour scheme. While the body of the adapter is a nice matte/glossy black, the feet are orange and stand out like a sore thumb.
This is replicated through the “fin” shaped antenna’s base which is orange coloured.
The supplied USB lead is rather stiff, so that should be a good sign in regards to thickness and shielding. However, I couldn’t find any information printed on the lead itself as to its constitution.
Rather surprisingly, for a change, this unit has four small Philips head screws underneath its orange feet holding it together.
Once the screws are removed, the halves can be parted to reveal the rear of the PCB. There is a piece of black plastic in the top left which seems to be used to avoid any light leakage through the grilles on the underside from the activity LED.
The PCB is dated Week 49 of 2016, making it somewhat dated. There is an outline for a shielding can which was not installed – this may compromise its RF performance slightly, but seeing as it claims to be FCC approved, it probably doesn’t have any major EMC emission problems.
As expected, the chipset is the MT7610UN which is a single-stream chipset by design. While this is not optimal for many access points which have two streams, it will at least provide some benefit over 802.11n and work where you only have one decent antenna to use.
To muster up the transmission power, it seems a Skyworks SKY85728-11 5Ghz amplifier is used.
Installation in Windows
If the device is just connected to a computer running Windows 10, there are no compatible drivers for it by default. After downloading and installing the package from their website, the adapter functions as expected.
There are a limited number of advanced options which can be toggled.
The driver itself seems to be made of a complex weave of files and patches. It doesn’t inspire confidence, but the card does work properly even on my AMD Ryzen machine with no BSODs. The same could not be said about the cheap Realtek-based unit.
The device identifies with VID 2357 and PID 010B.
While using it, I found the card provided good consistent connections with a high indicated signal strength. Throughput was good for a single-stream device, but the Realtek based card with two streams did outpace this card somewhat in stronger signal areas. I had no difficulties maintaining connection throughout with either unit, so I’d have to say that I’m fairly happy with this one too (at least, on Windows).
Installation in Linux
While I had assumed that its Ralink Technologies heritage would mean that the MT7610U would work well under Linux out-of-the-box, this was not the case. In fact, it was just as hard to get things to work as the Realtek card I tested earlier. The first problem was hunting for appropriate Linux drivers that would build under my recent 4.14-series kernel. Even if you found one that built, you might have to modify it to include your USB PID/VID. Then you might find (as I did) that the driver complains when loading as the EEPROM data on the card is of a different revision and that crashes the system or causes it not to shut down cleanly.
After a lot of trying, it seems the version of MT7610U driver from xtknight patched for the Linksys AE6000 is the one that builds and works best. It at least let me connect to networks and use it as a regular Wi-Fi station although without signal strength indication. However, it does involve opaque binary blobs and lots of patches. I did try monitor mode, and while it didn’t crash the machine like the Realtek card did, it could not report signal strengths or channel numbers correctly. Channel changes/hopping would not be controlled correctly and it would fail randomly. I didn’t have a chance to try hostapd functionality, but I suspect there could be issues there too.
While it took some effort to find a non-Realtek based modern dual-band 802.11ac USB Wi-Fi adapter, I’m not sure it was worth it. The adapter performed well under Windows, although with its USB 2.0 and single-stream limitations. The signal was fairly strong and the unit was very sensitive. Having the cable allows for better adapter placement, and the external RP-SMA adapter allows for changing antennas although the shroud does interfere with it somewhat. The drivers seemed stable under Windows on my AMD Ryzen based machine, which cannot be said for the Realtek adapter I tried earlier.
However, under Linux, it seems that this card is almost equally as frustrating as the Realtek, being a chase-around for drivers that would build under your kernel and accept whatever quirks and limitations that come about. While it would seem to support monitor mode as well, it is broken, and even basic signal strength reporting seems to be problematic. The use of binary blobs and the lack of chipset manufacturer support in driver development and upkeep is rather unfortunate as well.
It’s rather frustrating that there doesn’t seem to be any dual-band 802.11ac chipset that works out-of-the-box on Linux in a fully-featured and reliable way. This may change in the future, but by then, maybe everyone will be transitioning to 802.11ax. This is likely going to be a frustration for many Linux users, especially those who have no Ethernet handy or are using single-board computers such as the Raspberry Pi who might want multiple dual-band capable interfaces on the one board. I suppose it is fortunate that at least the new Raspberry Pi 3 has an 802.11ac dual-band radio on board.