Originally posted: 9 May 2014

http://web.archive.org/web/20140921074117/http://mgarcia.org/2014/05/09/mad-catz-ctrlr-android-bluetooth-gamepad

Mad Catz CTRLR Android Bluetooth Gamepad

CTRLR-Retail.Front-small.jpg


The Madcatz CTRLR gamepad is a good quality, fullsize (Xbox360 clone) gamepad mainly targeted at Android game/media users.
It also has extra media buttons (Vol+/Back/Play-pause/Forward/Vol-) and a switch to change modes.
And it includes a travel clip which screws to the back of the CTRLR which holds your mobile phone (as shown on the box).
The packaging also includes 2x AAA, instructions and MadCatz stickers.


Unboxing videos



CTRLR Modes

GameSmart
Gamesmart is madcatz open standard using Bluetooth 4 (BT4) with Android 4.3+ devices, ie MOJO, mobiles, tablets, and other BT4 Android devices.
The benefit (thanks to BT4) is that it’s energy saving (longer battery life) and low latency (no controller lag).
Using the retail CTRLR in BT2 (classic) on older devices will work fine but the battery won’t last as long and will have higher latency.

Mouse mode
This mode converts the gamepad into a mouse (left analog stick) with middle(X), left(A) and right(B) mouse click and the scroll wheel is the right analog stick (up/down).
The CTRLR in this mode can be used on any system, ie Android(Mojo/phones/tablets/etc) Windows, Mac, Linux, etc.

Computer Mode
This is Desktop gaming pad mode.
The box says it works on windows XP+, Mac OS X 10.8+ (Mac requires a driver available from madcatz’s site).
However, I can confirm the CTRLR pairs and works fine in Linux (Mint 16):

[ 51.759609] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 331.396619] hid-generic 0005:0738:5266.0003: >unknown main item tag 0×0
[ 331.396797] input: Mad Catz C.T.R.L.R as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0/bluetooth/hci0/hci0:12/input14
[ 331.397414] hid-generic 0005:0738:5266.0003: >input,hidraw1: BLUETOOTH HID v1.19 Gamepad [Mad Catz C.T.R.L.R ] on C4:46:19:F0:7E:88

Like the mouse mode, it will most likely work on anything that can handle a generic Bluetooth HID.
The MOJO CTRLR is capable of the same but requires BT4, the MOJO includes a USB BT4 adapter which can be used on a desktop.

Most desktop games have good controller configuration support, so mapping is no problem.
Mad Catz Mojo CTRLR with Left for dead 2 PC

In this video I map the MOJO CTRLR to xbox360


The retail CTRLR versus the MOJO CTRLR

If you have a MOJO CTRLR (mine is model: 32263) there are a few differences to the retail CTRLR (mine is model: 32266).
1. Obviously the retail Madcatz logo on the right grip is red instead of the grey of the MOJO CTRLR.
2. The media, start and select buttons are black instead of silver.
3. The mode switch has a nipple/tab instead of a groove which required nails!
4. The home button on the retail CTRLR has a shorter press, the MOJO CTRLR has a deeper button.
5. The most important difference is that the retail CTRLR “employs a premium dual-mode Bluetooth 4.0 chip” which currently only works on BT2.2 until a firmware update, the MOJO CTRLR is Bluetooth 4 only.

To use the retail CTRLR on with MOJO, you have to go to settings and enable bluetooth (the MOJO CTRLR doesn’t need BT enabled).
With the MOJO CTRLR, holding down the home button for a few seconds (not enough to turn it off) will show the ‘current running apps’ screen.
The retail version doesn’t do this.

Apart from that the controllers are identical.


All the games/emulators I play on the MOJO have perfect support, because it uses google’s controller standard and not a 3rd party library like other Android controllers.
But for extra reassurance Madcatz have a CTRLR game compatibility page.


I made an adapter for the travel clip to take my 7inch tablet with the CTRLR.
mad-catz-mojo-shield-support01.jpg

Click here for all my MOJO related blog posts.

Comments now disabled.
For comments or questions, please post on twitter @mgarcia, youtube or MOJO’s xda forums.

Update 30th July 2014
From the xda forums: What to do to remove the BT4 dongle?

My Dell desktop (Linux, but behavior is replicated in windows also) doesn’t have BT, but I have two USB adapters:

1. A ebay cheap BT2 USB adapter:

lsusb -v
Bus 002 Device 026: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0×0a12 Cambridge Silicon Radio, Ltd
idProduct 0×0001 Bluetooth Dongle (HCI mode)
bcdDevice 1.00
iManufacturer 1 Bluetooth v2.0
iProduct 2 Bluetooth V2.0 Dongle
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 216
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0×0010 1x 16 bytes
bInterval 1

I’ve removed 50+ lines here but you get the idea!
….
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 0
iInterface 0
Device Firmware Upgrade Interface Descriptor:
bLength 7
bDescriptorType 33
bmAttributes 7
Will Not Detach
Manifestation Tolerant
Upload Supported
Download Supported
wDetachTimeout 5000 milliseconds
wTransferSize 64 bytes
Device Status: 0×0000
(Bus Powered)

dmesg
[ 3338.664014] usb 2-1.7: >new full-speed USB device number 17 using ehci_hcd
[ 3338.825347] usb 2-1.7: >New USB device found, idVendor=0a12, idProduct=0001
[ 3338.825352] usb 2-1.7: >New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3338.825355] usb 2-1.7: >Product: Bluetooth V2.0 Dongle
[ 3338.825357] usb 2-1.7: >Manufacturer: Bluetooth v2.0

2. The dongle included with the MOJO on linux connects as:

lsusb -v
Bus 002 Device 025: ID 0738:5263 Mad Catz, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0×0738 Mad Catz, Inc.
idProduct 0×5263
bcdDevice 88.91
iManufacturer 0
iProduct 2 Mad Catz C.T.R.L.R (Smart)
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 20mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 247
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 2
Device Status: 0×0001
Self Powered

dmesg
[ 2828.878382] usb 2-1.3: >new full-speed USB device number 15 using ehci_hcd
[ 2828.950361] usb 2-1.3: >device descriptor read/64, error -32
[ 2829.746964] usb 2-1.3: >New USB device found, idVendor=0738, idProduct=5263
[ 2829.746970] usb 2-1.3: >New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 2829.746973] usb 2-1.3: >Product: Mad Catz C.T.R.L.R (Smart)
[ 2829.767985] input: Mad Catz C.T.R.L.R (Smart) as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input10
[ 2829.768514] hid-generic 0003:0738:5263.0003: >input,hiddev0,hidraw2: USB HID v1.11 Gamepad [Mad Catz C.T.R.L.R (Smart)] on usb-0000:00:1d.0-1.3/input0

The retail CTRLR does not connect to the MOJO’s dongle, it does connect to the BT2 dongle, (the PIN is 0000 BTW).
Once connected, the system logs shows the connection as expected:

dmesg
[ 4439.821344] hid-generic 0005:0738:5266.0008: >unknown main item tag 0×0
[ 4439.821408] input: Mad Catz C.T.R.L.R as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.0/bluetooth/hci0/hci0:11/input15
[ 4439.821892] hid-generic 0005:0738:5266.0008: >input,hidraw2: BLUETOOTH HID v1.19 Gamepad [Mad Catz C.T.R.L.R ] on 00:1B:10:00:2A:EC

Looking closer at the MOJO’s dongle, it doesn’t look like a bluetooth adaptor at all.
Instead the dongle looks like the actual controller is plugged in physically via USB (ie same as the BT connection above, HID device).
I doubt other BT4 devices can connect to this dongle but I haven’t tried this.
When the MOJO’s CTRLR connects to the MOJO’s dongle there is no system log, confirming it’s not using a ‘normal’ bluetooth setup.

The MOJO’s CTRLR does not connect to the BT2, that’s not to say it doesn’t connect to a BT4 devices, I just don’t have a BT4 device to test it on.
I also haven’t tested the retail controller on a BT4 device.