Change Joy Con Color Software

Joy-Con is the name for the Switch's primary game controllers. The controllers communicate to the console through bluetooth and can be disconnected from the main unit.

  • 3Bluetooth HID

Joy-Con IR Camera Module. Also residing in the right Joy-Con is another feature, the motion IR camera. This camera is an infrared CMOS image sensor that is used to detect object shape and distance and, according to Ars Technica and Nintendo, will be able to record full video in the future. This camera sensor appears likely to be manufactured. This video shows you how to unload the blade and insert a pen into the machine for drawing. If playback doesn't begin shortly, try restarting your device. Videos you watch may be added to the TV's watch history and influence TV recommendations. To avoid this, cancel and sign in to YouTube on your computer. Input Display by MoonsPod. Display your controller inputs in a highly customizable display, PS4, Xbox and Switch buttons available, works with most controllers. To remove the background for your stream use the Chroma Key options in your streaming software. In control menu to see controls (right click to show.

Hardware

The controllers themselves are simple to disassemble and identify.

Error creating thumbnail: File with dimensions greater than 12.5 MP
The front of the Joy-Con internal[1]
Error creating thumbnail: File with dimensions greater than 12.5 MP
The rear of the Joy-Con internal[2]
ColorItem
RedBroadcom BCM20734 Bluetooth 4.1/2.4 GHz Transceiver
OrangeSTMicroelectronics NFCBEA 812006 33 (Likely NFC reader IC)
YellowMacronix International MX25U4033E 4 Mb CMOS Flash

Firmware

See also: Joy-Con Firmware

Walmart

The firmware of the Joy-Cons seems to be generic across all instances. Details such as the handedness of the controller and the color is just indicated in a configuration part of the flash. Judging by quick glance at the firmware, it's probably identical to that used on the Pro Controller as well.

Controller1.0.0
Joy-Con Left (Blue)flash dump
Joy-Con Right (Red)flash dump

The flash is in a patch-ram format. Tools for dealing with it are available [3].A dump of the ROM region (taken while firmware was running) can be found here. Note this is the same SoC used on the other controller models, as well.

Bluetooth HID

Commands

CommandName
0x00
0x01PairingOut
0x02GetDeviceInfo
0x03SetDataFormat
0x04LRButtonDetection
0x05Page
0x06Reset
0x07ClearPairingInfo
0x08Shipment
0x10SerialFlashRead
0x11SerialFlashWrite
0x12SerialFlashSectorErase
0x20McuReset
0x21McuWrite
0x22McuResume
0x23
0x24McuPollingEnable
0x25McuPollingDisable
0x28AttachmentWrite
0x29
0x2AAttachmentEnable
0x2B
0x30SetIndicatorLed
0x31GetIndicatorLed
0x38SetNotificationLed
0x40SensorSleep
0x41SensorConfig
0x42SensorWrite
0x43SensorRead
0x48MotorEnable
0x50GetBatteryVoltage
0x51WriteChargeSetting
0x52
0x58ExtDevWrite
0x59GetExtDevInfo
0x5AExtDevPollingEnable
0x5BExtDevPollingDisable
0x5CExtDevInFormatConfig
0x60InternalAttachmentWrite
0x61
0x62InternalAttachmentEnable
0x63InternalAttachmentPollingEnable
0x64InternalAttachmentPollingDisable
0x80Ack
0x81PairingIn
0x82DeviceInfo
0x83LRButtonElapsedTime
0x90SerialFlashData
0xA0McuData
0xA8AttachmentData
0xAAInternalAttachmentRead
0xB0IndicatorLed
0xC0SensorData
0xD0BatteryVoltage
0xD8ExtDevRead
0xD9ExtDevInfo

Left & Right Separate Joy-con

When paired directly to a computer over bluetooth, the joy-con both provide identical HID input report descriptor. This does not appear to include motion controls, IR data, or NFC. They both behave as detached single-player controllers.

Change Joy Con Color Software Mac

HID Input Report Descriptor (Hexadecimal):

Change Joy Con Color Software Mac

Parsed BytesDescription
0x05, 0x01,Usage Page (Generic Desktop Ctrls)
0x09, 0x05,Usage (Game Pad)
0xA1, 0x01,Collection (Application)
0x06, 0x01, 0xFF,Usage Page (Vendor Defined 0xFF01)
0x85, 0x21,Report ID (33)
0x09, 0x21,Usage (0x21)
0x75, 0x08,Report Size (8)
0x95, 0x30,Report Count (48)
0x81, 0x02,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x85, 0x30,Report ID (48)
0x09, 0x30,Usage (0x30)
0x75, 0x08,Report Size (8)
0x95, 0x30,Report Count (48)
0x81, 0x02,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x85, 0x31,Report ID (49)
0x09, 0x31,Usage (0x31)
0x75, 0x08,Report Size (8)
0x96, 0x69, 0x01,Report Count (361)
0x81, 0x02,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x85, 0x32,Report ID (50)
0x09, 0x32,Usage (0x32)
0x75, 0x08,Report Size (8)
0x96, 0x69, 0x01,Report Count (361)
0x81, 0x02,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x85, 0x33,Report ID (51)
0x09, 0x33,Usage (0x33)
0x75, 0x08,Report Size (8)
0x96, 0x69, 0x01,Report Count (361)
0x81, 0x02,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x85, 0x3F,Report ID (63)
0x05, 0x09,Usage Page (Button)
0x19, 0x01,Usage Minimum (0x01)
0x29, 0x10,Usage Maximum (0x10)
0x15, 0x00,Logical Minimum (0)
0x25, 0x01,Logical Maximum (1)
0x75, 0x01,Report Size (1)
0x95, 0x10,Report Count (16)
0x81, 0x02,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01,Usage Page (Generic Desktop Ctrls)
0x09, 0x39,Usage (Hat switch)
0x15, 0x00,Logical Minimum (0)
0x25, 0x07,Logical Maximum (7)
0x75, 0x04,Report Size (4)
0x95, 0x01,Report Count (1)
0x81, 0x42,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
0x05, 0x09,Usage Page (Button)
0x75, 0x04,Report Size (4)
0x95, 0x01,Report Count (1)
0x81, 0x01,Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01,Usage Page (Generic Desktop Ctrls)
0x09, 0x30,Usage (X)
0x09, 0x31,Usage (Y)
0x09, 0x33,Usage (Rx)
0x09, 0x34,Usage (Ry)
0x16, 0x00, 0x00,Logical Minimum (0)
0x27, 0xFF, 0xFF, 0x00, 0x00,Logical Maximum (65534)
0x75, 0x10,Report Size (16)
0x95, 0x04,Report Count (4)
0x81, 0x02,Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x06, 0x01, 0xFF,Usage Page (Vendor Defined 0xFF01)
0x85, 0x01,Report ID (1)
0x09, 0x01,Usage (0x01)
0x75, 0x08,Report Size (8)
0x95, 0x30,Report Count (48)
0x91, 0x02,Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x85, 0x10,Report ID (16)
0x09, 0x10,Usage (0x10)
0x75, 0x08,Report Size (8)
0x95, 0x30,Report Count (48)
0x91, 0x02,Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x85, 0x11,Report ID (17)
0x09, 0x11,Usage (0x11)
0x75, 0x08,Report Size (8)
0x95, 0x30,Report Count (48)
0x91, 0x02,Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x85, 0x12,Report ID (18)
0x09, 0x12,Usage (0x12)
0x75, 0x08,Report Size (8)
0x95, 0x30,Report Count (48)
0x91, 0x02,Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,End Collection

Colors

HEX codes for the colors shown in the 'Controllers' menu of the Switch UI can be found in a Joy-con SPI dump starting at offset 0x6050. Body color is first followed by button color and each is 3 bytes long. These values are able to be re-written with any HEX color value to make the Joy-cons show up as different colors in the UI. The following is a list of official HEX colors recovered from SPI dumps.

Retail ColorBody HEXButton HEX
Black / ブラック#313131#0F0F0F
Gray / グレー#828282#0F0F0F
Neon Red / ネオンレッド#FF3C28#1E0A0A
Neon Blue / ネオンブルー#0AB9E6#001E1E
Neon Yellow / ネオンイエロー#E6FF00#142800
Neon Green / ネオングリーン#1EDC00#002800
Neon Pink / ネオンピンク#FF3278#28001E
Red / レッド#E10F00#280A0A
Blue / ブルー#4655F5#00000A
Neon Purple / ネオンパープル#B400E6#140014
Neon Orange / ネオンオレンジ#FAA005#0F0A00
White / ホワイト#FFFFFF#323232
Special Edition ColorBody HEXButton HEX
Super Smash Bros. Ultimate Edition Gray Joy-Con / 大乱闘スマッシュブラザーズ SPECIAL#828282#0F0F0F
Pokemon: Let's Go! Eevee-Brown Left Joy-Con / ポケットモンスター Let's Go! イーブイ#C88C32#281900
Pokemon: Let's Go! Pikachu-Yellow Right Joy-Con / ポケットモンスター Let's Go! ピカチュウ#FFDC00#322800
*Nintendo Labo Creators Contest Edition 'Cardboard'-Colored Joy-Con#D7AA73#1E1914
**Dragon Quest XI S Lotto Edition Royal-Blue Joy-Con / ドラゴン クエスト XI S (ロト版)#1473FA#00000F
**Disney Tsum Tsum Festival Neon-Purple Left Joy-Con / ディズニー ツムツム フェスティバル#B400E6#140014
**Disney Tsum Tsum Festival Neon-Pink Right Joy-Con / ディズニー ツムツム フェスティバル#FF3278#28001E
Animal Crossing: New Horizons Pastel-Green Left Joy-Con / あつまれ どうぶつの森#82FF96#0A1E0A
Animal Crossing: New Horizons Pastel-Blue Right Joy-Con / あつまれ どうぶつの森#96F5F5#0A1E28
Fortnite Wildcat Edition Yellow Left Joy-Con#FFCC00#1A1100
Fortnite Wildcat Edition Dark-Blue Right Joy-Con#0084FF#000F1E
Mario Red & Blue Edition Red Joy-Con / マリオ レッド × ブルー#F04614#1E1914
Monster Hunter Rise Edition Gray Joy-Con / モンスターハンターライズ#828282#0F0F0F
Fortnite Fleet Force Edition Dark-Blue Left Joy-Con#0084FF#000F1E
Fortnite Fleet Force Edition Yellow Right Joy-Con#FFCC00#1A1100
Legend of Zelda: Skyward Sword Dark-Blue Left Joy-Con / ゼルダの伝説 スカイウォードソード#2D50F0#1E0F46
Legend of Zelda: Skyward Sword Dark-Purple Right Joy-Con / ゼルダの伝説 スカイウォードソード#500FC8#00051E
// *(Prize Awarded for Labo Contest - No Retail) // **(Available Japan Only)

Additional Links

Change Joy Con Color Software

Retrieved from 'https://switchbrew.org/w/index.php?title=Joy-Con&oldid=11067'