USB 802.11ac Wi-Fi master/AP mode adapter for Raspberry Pi 4B - Mercury UD13 (mt76x2u)

Following this topic - Wi-Fi adapter for Raspberry pi 4 B
tested some 802.11ac usb wifi adapter, and eventrally found the Mercury UD13 (driver mt76x2u, device id 2c4e:0103) works with master/AP mode on Raspberry Pi 4B, iperf3 shows about 270Mbps.
Compiled with OpenWrt snapshot code in Jun 2020.

[ 2055.787321] usb 1-1.3: new high-speed USB device number 6 using xhci_hcd
[ 2055.892381] usb 1-1.3: New USB device found, idVendor=0e8d, idProduct=2870, bcdDevice= 0.01
[ 2055.900759] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2055.908097] usb 1-1.3: Product: Љ
[ 2055.911511] usb 1-1.3: Manufacturer: Љ
[ 2055.915360] usb 1-1.3: SerialNumber: Љ
[ 2055.921204] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[ 2055.927663] scsi host0: usb-storage 1-1.3:1.0
[ 2056.220795] usb 1-1.3: USB disconnect, device number 6
[ 2056.903323] usb 1-1.3: new high-speed USB device number 7 using xhci_hcd
[ 2057.008801] usb 1-1.3: New USB device found, idVendor=2c4e, idProduct=0103, bcdDevice= 1.00
[ 2057.017180] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2057.024683] usb 1-1.3: Product: 802.11ac WLAN
[ 2057.029066] usb 1-1.3: Manufacturer: MediaTek Inc.
[ 2057.033875] usb 1-1.3: SerialNumber: 000000000
[ 2057.123822] usb 1-1.3: reset high-speed USB device number 7 using xhci_hcd
[ 2057.233443] mt76x2u 1-1.3:1.0: ASIC revision: 76120044
[ 2057.273181] mt76x2u 1-1.3:1.0: ROM patch build: 20141115060606a
[ 2057.451662] mt76x2u 1-1.3:1.0: Firmware Version: 0.0.00
[ 2057.456898] mt76x2u 1-1.3:1.0: Build: 1
[ 2057.460733] mt76x2u 1-1.3:1.0: Build Time: 201507311614____
[ 2058.262830] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
root@AP:~# lsusb -d 2c4e:0103 -v

Bus 001 Device 007: ID 2c4e:0103
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x2c4e
  idProduct          0x0103
  bcdDevice            1.00
  iManufacturer           1 MediaTek Inc.
  iProduct                2 802.11ac WLAN
  iSerial                 3 000000000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           74
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          2 802.11ac WLAN
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              200mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           8
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 802.11ac WLAN
      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     0x85  EP 5 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     0x08  EP 8 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     0x04  EP 4 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     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     0x07  EP 7 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     0x09  EP 9 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   0x0000f41e
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat         180 micro seconds
Device Status:     0x0002
  (Bus Powered)
  Remote Wakeup Enabled

snapshot 2020-06-23 13 25 21

snapshot 2020-06-23 13 26 04


2 Likes

Does your router have a USB3 port?

As the title says, it was tested on Raspberry Pi 4B which has 2x USB 3 ports.

1 Like

I j think

Means it was plugged into a USB2 port (the raspberry pi 4 has 2 of each kind).

1 Like

Re-tested on Raspberry Pi 4B USB3 port, it was still shown as "bcdUSB 2.10", it seems the UD13 is USB 2.0 device.
Connected UD13 to windows based computer's USB 3 port, there was prompt shown it was working in USB 2.0 mode.
未标题-2

To check whether the USB device is using USB 2.0 or 3.0 drivers , use lsusb -t for 3.0 -->5000M , 480M for 2.0

OpenWrt:/# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=mt76x2u, 5000M
    |__ Port 2: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

My UD13 (mt76x2u) shown as 480M, could you help confirm which your usb wifi brand and model?

root@APPW:~# lsusb
Bus 001 Device 004: ID 12d1:14db Huawei Technologies Co., Ltd. E353/E3131
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 2c4e:0103
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@APPW:~# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 6, If 0, Class=Vendor Specific Class, Driver=mt76x2u, 480M
        |__ Port 4: Dev 4, If 0, Class=Communications, Driver=cdc_ether, 480M
        |__ Port 4: Dev 4, If 1, Class=CDC Data, Driver=cdc_ether, 480M

The USB WiFi adapter is Alfa AWUS036ACM . I had tried it on the USB 2.0 port and speed is almost the same.

Alfa AWUS036ACM USB3 (from my cell phone).

Connecting to host 192.168.1.4, port 5201
[  4] local 192.168.1.5 port 45083 connected to 192.168.1.4 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.04   sec  26.3 MBytes   213 Mbits/sec                  
[  4]   1.04-2.03   sec  23.6 MBytes   199 Mbits/sec                  
[  4]   2.03-3.04   sec  26.9 MBytes   224 Mbits/sec                  
[  4]   3.04-4.02   sec  26.4 MBytes   226 Mbits/sec                  
[  4]   4.02-5.01   sec  24.4 MBytes   207 Mbits/sec                  
[  4]   5.01-6.05   sec  27.4 MBytes   222 Mbits/sec                  
[  4]   6.05-7.00   sec  21.3 MBytes   187 Mbits/sec                  
[  4]   7.00-8.00   sec  24.2 MBytes   204 Mbits/sec                  
[  4]   8.00-9.03   sec  25.4 MBytes   206 Mbits/sec                  
[  4]   9.03-10.03  sec  27.6 MBytes   234 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.03  sec   254 MBytes   212 Mbits/sec                  sender
[  4]   0.00-10.03  sec   254 MBytes   212 Mbits/sec                  receiver

iperf Done.
1 Like

It seems the max possible speed is limited by the chip rather than the USB port speed.

Does that dongle have a USB3 plug with the five extra pins (and usually blue plastic)? Everything I see it's running as USB2. It is possible the manufacturer did not wire up the full USB3 bus.

No, there are only 4 pins, here is the photo: