In the short span of about two decades, Wi-Fi went from being a luxury that you would consider a limited alternative to a cabled Ethernet connection, useful for mobile devices only, to something resembling a near-replacement for the cabled Ethernet connection.
In this time, we’ve seen bitrates rise from an initial 2Mbit/s (802.11), to 11Mbit/s (802.11b), to 54Mbit/s (802.11a/g), to 72.2Mbit/s (802.11n) to 86.7Mbit/s (802.11ac) when considering a 20Mhz channel with a single spatial stream and only IEEE ratified standards (thus excluding 802.11b+, Super-G, Afterburner, TurboQAM modes). The addition of up to four spatial streams can almost quadruple the link rate (depending on orthogonality) and the use of wider 40Mhz, 80Mhz and 160Mhz channels can increase the rate by two, four and eight-fold respectively. That means an 802.11ac quad-stream product supporting 160Mhz wide channels theoretically could achieve in excess of 3Gbit/s data rate, or over 1500x faster than the original 802.11 specification would allow. The standards continue to evolve, and even faster standards such as 802.11ax are on the horizon.
This has only been possible through the use of higher-order modulation, better mixed-signal IC design, better error correction code strategies, new protocol specifications, MIMO and MU-MIMO technology and digital signal processing/software defined radio technologies. The larger bandwidths pose a problem for the bandwidth-limited 2.4Ghz ISM bands which are heavily interfered with (due to other protocols and devices using the band), and thus the focus is now on 5Ghz for 802.11ac.
However, in this day and age, there are still “lite” 802.11n and single-band 802.11n products dominating the lower end of the market. These devices are normally only support a single spatial stream or two spatial stream configuration on 2.4Ghz, advertising a rate of 150Mbit/s or 300Mbit/s. In reality, due to the congestion and interference on the 2.4Ghz band, it’s unlikely that 40Mhz channels would be consistently possible and backwards compatibility coexistence measures can disable the use of short guard intervals, pushing the link rate down to a paltry 65Mbit/s or 135Mbit/s. Actual throughput falls significantly below this, due to signal to noise ratio issues caused by distance or interference sources such as microwave ovens or 2.4Ghz cordless telephones.
In my experience, computers using such adapters can make reliable Wi-Fi connections and large file transfers rather frustrating. Unfortunately, changing out your Wi-Fi adapter on your laptop can run into some difficulties with whitelisting. The next best solution is to install a USB adapter instead (although these can be lost or damaged). Traditionally, dual-band adapters were significantly more expensive than their “lite” single-band cousins. However, this too seems to be changing. Just the other day, after looking at a local computer shop for 802.11ac capable dual-band USB wireless adapters, the choices included (chipset in square brackets):
- Edimax EW-7822UAC $36 [RTL8812AU]
- ASUS USB-AC53 Nano $38 [RTL8812BU]
- TP-Link Archer T4U $54 [RTL8812AU/RTL8812BU]
- Netgear A6210 $79 [MT7612U]
While this is still more expensive than a single band adapter which can be had as low as $9, they are no longer unaffordable. However, I challenged myself to go even cheaper, and scoured eBay for an option. Ultimately, I chose an unbranded adapter, advertising itself as an AC1200 Dual-Band USB 3.0 Wi-Fi Adapter with an external RP-SMA antenna for better range compared with units with just an integrated antenna. This cost just AU$17.04 each including shipping.
The adapter came in a plastic zip-lock bag with a hanging eye. The bag is clear on the front side and opaque white on the rear, allowing you to see the adapter and antenna inside. The cardboard insert advertises its features including AC1200 rating made of 300Mbit/s on 2.4Ghz (i.e. two stream 40Mhz 802.11n capability) and 867Mbit/s on 5Ghz (i.e. two stream 80Mhz 802.11ac capability). This is rather curious as only a single RP-SMA connector and external antenna is provided. Two transmit and receive chains are required (at a minimum) to achieve these rates, along with the claimed beamforming abilities. It also claims capability to work with MU-MIMO (i.e. partial 802.11ac Wave 2 capabilities) suggesting a recent chipset.
The provision of an RP-SMA connector is a positive design point, as it allows you to utilise other antennas for higher gain, more directionality and better speeds. However, it was advertised as a “high power” adapter, and yet the specifications on the rear only show a maximum output of 17 +/- 1.5dBm on 2.4Ghz and 12 +/- 1.5dBm on 5Ghz. This is not high power for the most part, as many regular adapters are capable of 20dBm transmit powers, and the true high power adapters often reach 26dBm or above. The reception sensitivity is not stated, however, the lack of specification is probably not critical, as the accuracy of the specifications is debatable. It claims support for a wide range of OSes including Windows XP/7/8/8.1/10, MacOS 10.7+ and Linux.
Taking everything out of the packet, there is also a mini-CD containing the drivers. The adapter has a gold-coloured USB 3.0 plug matching the gold-plated RP-SMA socket. There is no branding on the adapter, but it is fairly compact and features a rounded matte-black plastic finish.
On one side, the WPS setup button is made out of a cut-out in the plastic casing which flexes to push on an internal button. This seems to be a cost-reduction measure, reducing the number of parts and construction complexity of the unit.
The rear has no pertinent information whatsoever, such as model numbers, safety approvals, etc.
Curious as to what is inside, I decided to crack it apart. The two halves of the plastic casing are secured together by stakes which push into their respective receptacles. Opening it is a simple case of gently prying the halves of the case apart.
The rear of the PCB shows that the unit is based on an RTL8812BU, with Realtek’s information confirming the capabilities of the unit. Each of the transmit/receive chains appears to go through an amplifier IC which was not identified. It seems that there are two antennas after all, with one attached to the RP-SMA connector at the rear (with a footprint for an alternative MCX (?) socket on the PCB). The other antenna is soldered directly onto the board near the top, with the PCB glued into the casing using hot melt glue. The PCB is marked with USB3.0-8812BU. Other products based on the RTL8812BU can be found on WikiDevi but do include some from the major brand names. The most visually similar adapters on the market include the YOTECE AC1200 and the Simplecom NW621, although I cannot confirm that the latter actually uses the RTL8812BU.
A little prying to releaase the PCB reveals a 40Mhz crystal oscillator, a blue LED, and a position on the rear for an antenna socket for the second stream (MCX?). It also shows the switch for the WPS functionality, and the secondary antenna.
A closer look at the second antenna shows it is similar in design to many “internal” antennas on USB Wi-Fi products being of a planar-inverted-F type. In the case where you might have a signal which is not strong, the second stream signal will be much worse than the primary, and thus contributes less to the overall throughput. As a result, I would expect that this adapter may maintain a connection at a further distance (as larger external antennas often have better gain) but its throughput will not be as good as an adapter with two external antennas. A bit of a compromise, although it seems the PCB is amenable to rather simple modifications.
Installation on Windows 10 is almost entirely plug-and-play as Windows 10 does have a driver that supports the card as part of the WHQL set.
Realtek do offer their own driver download, which offers a slightly more updated driver.
I did test the adapter on a Windows 7 laptop and desktop with no difficulties. I also tested the adapter on a Windows 10 laptop with an Intel CPU and encountered no trouble. Connections could be accomplished on both bands, and in strong signal areas, throughput was quite acceptable. Having the RP-SMA adapter allowed for external antennas to be used – longer distance links on 2.4Ghz were possible with throughput commensurate with a single-stream adapter.
However, testing on my Windows 10 desktop with an AMD Ryzen CPU and X370 chipset USB 3.0 port proved to be problematic.
The default drivers showed problems starting the devices. Upgrading the driver to newer versions such as the one on Realtek’s site caused BSODs to appear after a few minutes with the adapter connected.
Reverting back to the included drivers allowed the unit to start and scan for networks. However, this did not persist after a reboot. As a result, I tried the drivers on the CD.
That too, unfortunately, caused BSODs. As a result, I suspect there could be a possible incompatibility between some other drivers I have installed on my Ryzen machine (or its supplied drivers) and the drivers supplied by Realtek. The root cause is unclear at this time, but it may just be my configuration at fault.
I did try the adapter under a few Linux installations, however, it doesn’t seem kernel support is built in for the distributions that I tried, making it a bit of a hassle. However, there seems to be a guide for getting the Asus AC53 Nano (based on the same chipset) working on the Raspberry Pi, which might also work for this adapter (although I haven’t tried it).
Dual-band capable wireless adapters have finally “come of age” and are no longer expensive, which is good news. It seems that Realtek solutions are dominating the lower end of the market and this cheap USB 3.0 AC1200 adapter purchased from eBay is no exception.
The design of the unit is relatively basic and spartan, but functional. It is based around the Realtek RTL8812BU, offering dual-stream and MU-MIMO capabilities. It only has one RP-SMA connector and external antenna fitted, relying on an internal PIFA for the second stream, which is not an optimal configuration for the best throughput at long distances. However, it should still offer a stable link where regular “internal” antennas are insufficient.
The transmit power of the card as stated in the specs is relatively ordinary compared to others and it doesn’t seem to be a true “high power” adapter. The flexibility to use external antennas could make up for this shortcoming.
While it did work flawlessly with my Windows 7 and Intel-based Windows 10 machines, I did experience BSODs with my Windows 10 AMD Ryzen machine due to possible driver incompatibility. Support in Linux does not seem to be “out of the box” as it is with some older single-band Wi-Fi adapters.
For the price, it’s rather inexpensive for what it offers and has some modification possibilities. It uses the same chipset as a number of branded low-cost alternatives with only internal antennas and should offer a very similar level of performance for half the cost.
Appendix: USB Data
The full lsusb –vv data when connected to a USB2.0 port is shown below:
Bus 001 Device 004: ID 0bda:b812 Realtek Semiconductor Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0bda Realtek Semiconductor Corp. idProduct 0xb812 bcdDevice 2.10 iManufacturer 1 Realtek iProduct 2 USB3.0 802.11ac 1200M Adapter iSerial 3 123456 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 53 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 5 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 2 USB3.0 802.11ac 1200M Adapter Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 3 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x08 EP 8 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 22 bNumDeviceCaps 2 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000002 Link Power Management (LPM) Supported SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 wSpeedsSupported 0x0006 Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) bFunctionalitySupport 1 Lowest fully-functional device speed is Full Speed (12Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 1023 micro seconds Device Status: 0x0000 (Bus Powered)
Unfortunately, I don’t have Linux on a machine with USB 3.0 ports at hand to perform the listing.