Pro Controller

From WiiUBrew
(Redirected from Wii U Pro Controller)
Jump to navigation Jump to search

The Wii U Pro Controller is a modified version of the Classic Controller Pro that has been designed to work with the Wii U console.

A Wii U Pro Controller

USB

The Wii U Pro Controller registers itself as a "USB-Input device" when connected to a Windows computer. Its VID is 0x0b6a, and its PID is 0xa132. Windows does not register the device as a gamepad, only as a "USB-Input device". libusb-win32 recognizes the controller as a "USB Charger"

Bluetooth

Nintendo Wii U Pro Controller (RVL-CNT-01-UC) pairing

The Wii U Pro Controller connects using the same procedure as a regular Wiimote, except it has no option for "temporary" syncing (the 1+2 method). Authentication/pairing is still optional, the controller can work without it but it must be performed at least once (and the created link key retained) to enable "one-touch" reconnection.

Note that the Wii U Pro Controller does not have the 0x1700 bytes of accessible EEPROM memory normally found in wiimotes, any attempt to read from this area will cause the controller to disconnect. The mapped extension register area (0xA40000) can be accessed as normal, the other register areas are unknown.

Information gathered from linux "hcitool info"

OUI Company Nintendo Co., Ltd. (40-F4-07)
Device Name Nintendo RVL-CNT-01-UC
LMP Version 2.0 (0x3) LMP Subversion: 0x1d8d
Manufacturer Cambridge Silicon Radio (10)
Features 0xbc 0x02 0x04 0x38 0x08 0x00 0x00 0x00

Other Bluetooth properties (Obtained from Windows' Device Manager)

Name Nintendo RVL-CNT-01-UC
Vendor ID 0x057E
Product ID 0x0330
Bluetooth Class 0x000508

Communication

The Pro Controller can be identified with a result of 0xA4200120 from a 4-byte read of register address 0x(4)A400FC. Bytes received from Data Reports are encrypted by default, see Wiimote/Extension_Controllers for ways to ways to decrypt the bytes.

Data Format

  Bit
Byte 7 6 5 4 3 2 1 0
0 LX<7:0>
1 LX<15:8>
2 RX<7:0>
3 RX<15:8>
4 LY<7:0>
5 LY<15:8>
6 RY<7:0>
7 RY<15:8>
8 BDR BDD BL B- BH B+ BR 1
9 BZL BB BY BA BX BZR BDL BDU
10 1 Battery<2:0> Wired Charging BSL BSR

Button values are 0 when held. Wired and Charging are 0 when true

Side A

Side B

Printed Circuit Board

This post contains scans of the Wii U Pro Controller PCB's different layers:

https://bitbuilt.net/forums/index.php?threads/wii-and-wii-u-controller-scans.1845/