openwrt / openwrt/mt76

XBox One Wireless Adapter v2 doesn't work

Open
#200 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
888
Forks
436
PR merge metrics
No merged PRs in 30d

Description

Edited: Used wrong firmware the first time, sorry about that... :-/

In order to avoid any confusion, it's this adapter:
https://mspoweruser.com/new-xbox-wireless-adapter-significantly-slimmer/

Hardware:
Orange Pi PC (Allwinner H3)

Software:
OpenWrt master (commit 212aa332267641fa9fc9a16d39159decec95b4a1)
https://github.com/openwrt/openwrt/pull/1460 + https://github.com/openwrt/openwrt/pull/1461

I tried adding the device id however that doesn't seem enough:
{ USB_DEVICE(0x045e, 0x02fe) }, /* XBox One Wireless Adapter v2 */

dmesg

[    8.284978] mt76x2u 3-1:1.0: ASIC revision: 76320044
[    8.345123] mt76x2u 3-1:1.0: ROM patch build: 20140408060640a
[    8.511399] mt76x2u 3-1:1.0: Firmware Version: 0.0.00
[    8.516489] mt76x2u 3-1:1.0: Build: 1
[    8.520148] mt76x2u 3-1:1.0: Build Time: 201406241830____
[    8.757481] mt76x2u 3-1:1.0: error: MCU resp evt:9 seq:1-0
[    8.762971] mt76x2u 3-1:1.0: error: MCU resp evt:9 seq:1-0
[    8.768482] mt76x2u 3-1:1.0: error: MCU resp evt:9 seq:1-0

lsusb (serial zeroed)

Bus 003 Device 002: ID 045e:02fe Microsoft Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x045e Microsoft Corp.
  idProduct          0x02fe
  bcdDevice            1.00
  iManufacturer           1 Microsoft Inc.
  iProduct                2 XBOX ACC
  iSerial                 3 000000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           74
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          2 XBOX ACC
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    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 XBOX ACC
      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           12
  bNumDeviceCaps          1
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x0000f41e
      Link Power Management (LPM) Supported
Device Status:     0x0002
  (Bus Powered)
  Remote Wakeup Enabled

Windows drivers can be obtained here (includes firmware):
http://www.catalog.update.microsoft.com/Search.aspx?q=xbox%20wireless%20adapter

18.X - 21.X seems to be for the older adapter
1.0.X is for the new one

Having a quick look at the drivers they're using different firmwares but that's as far as I can tell.
If there's anything else I can provide just ask and I'll try my best.

@LorenzoBianconi

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the mt76x2u USB-device handling and firmware-loading path; the report identifies USB ID 045e:02fe, MCU response errors, and separate old/new firmware versions. Confirm the adapter's required firmware and define done as successful initialization without those errors, then validate on the reported OpenWrt master commit and Orange Pi PC.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
embedded-iot, networking, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.