Hacking [Tool] Joy-Con Toolkit

roflpwnt

Well-Known Member
Newcomer
Joined
Feb 24, 2016
Messages
70
Trophies
0
XP
451
Country
Canada
Has anybody seen something like this? Recently I got a new right joycon and everything worked fine until I tried to play Mario Party with it and realized the montion controls don't work. Upon checking it I see this and motion is also not working. Has anybody seen this before?

Edit: I disassembled and reseated all ribbons but still no luck.
HYAXiRD.png
 
Last edited by roflpwnt,

tobygg

New Member
Newbie
Joined
Jul 31, 2018
Messages
2
Trophies
0
Age
49
XP
490
Country
United States
Thanks for this program. I had to buy some after market analog sticks for some joycons and it really bugged me that the factory calibration was way off. Yes, user calibration worked fine, but I really wanted the factory calibration to be correct. So, I used your program to copy the user calibration attributes from the 0x8000 area into the 0x6000 area. Now, even when I go on my switch and clear the analog stick calibration, it's working fine now because the new factory calibration strings are updated to be correct for the new analog controllers. There is really no need to do this unless you're weird like me and want to fix the factory calibration to work properly with the new analog sticks. Anyway, thanks for the program. It worked great for my purposes.
 
  • Like
Reactions: tiliarou

loafxd

New Member
Newbie
Joined
Jul 2, 2019
Messages
1
Trophies
0
Age
25
Location
Gweek, England
Website
www.youtube.com
XP
43
Country
United Kingdom
after i backed up the spi, the pro controller is still detected but the colours are black with "error!" instead of a hex code, and the s/n and mac address do not appear. does anybody else have this problem / have a solution? thanks :)

edit: sometimes the colours show up, but the mac address and firmware show up as zeroes, and i am unable to write colours to the device or load the backup i saved before these bugs started to occur
 
Last edited by loafxd,

Delterous

New Member
Newbie
Joined
Mar 16, 2016
Messages
3
Trophies
0
Age
25
XP
57
Country
I have one question. Can the serial number be changed without having any negative effects? Was gonna replace it with something funny
 

buhgingi

New Member
Newbie
Joined
Jul 15, 2019
Messages
1
Trophies
0
Age
25
XP
33
Country
Iceland
Hello, sorry to post on such an old thread. I'm having issues with the grip colours being the same as the body colour when I connect my pro controller to my switch.
 

mokmoki

Well-Known Member
Newcomer
Joined
Jan 14, 2016
Messages
71
Trophies
0
Age
35
XP
161
Country
is this safe when using the "Update Controllers" after writing new colors? do the old colors come back after updating? i changed the colors for a friend because he got new joycon shells.
 

FlachDonut

Member
Newcomer
Joined
Jan 9, 2019
Messages
5
Trophies
0
Location
Dortmund, North-Rhine Westphalia
XP
73
Country
Germany
Hey uhm... so my Switch is on the latest 8.1.0 Update and all of my controllers are up-to-date,
but when I change the colors of my Pro Controller, the Switch only takes the colour of the body and displays the grips in it aswell..
Here are some examples:

Unbenannt.PNG
Unbenansant.PNG


Why is this and is there a way to make it as before?
 
  • Like
Reactions: FlappyFalco

Djexxy

New Member
Newbie
Joined
Aug 25, 2019
Messages
2
Trophies
0
Age
29
XP
40
Country
France
Hello,

Can I remap buttons with this tool in advanced debug mode ?
Because I would change A with B, and Y with X.
 

NotRacistBoi

Member
Newcomer
Joined
Jul 16, 2018
Messages
15
Trophies
0
XP
138
Country
United States
Joy-Con Toolkit v5.2.0

jc6.png


jc3.png
jc4.png
jc7.png


jc5.png
jc2.1.png


Summary:
About a year ago, I bought yellow joy-con shells and modded my Joy-Cons. Then I found Shinyquagsire23 HID-Joy-Con-Whispering and changed my joy con colors and this reflected my new neon yellow color in-game.

I always wanted to make an easy tool for that, for the community. So here it is with many additional goodies.
Have fun creating funky combinations.


Before you do anything, make a backup of your SPI flash.

If you have done one, change the name a little bit to avoid overwrites and keep it for life!


What it can currently do:
  • Change colors of your Joy-Con and Pro Controller (plus left/right grip)
  • Use the IR stream or capture and save photos
  • Use the NFC to check type and UID
  • Save your custom colors for future use
  • Backup your SPI flash
  • Edit user calibration for analog sticks
  • View S/N, FW Version, MAC address and Battery
  • Restore from a backup. Restore colors, S/N, Calibration, Full restore.
  • Change S/N
    *Disclaimer* If you didn't do a valid backup and you lost your S/N, you are the only responsible! If for whatever reason you lost it, check the plastic slivers that your Joy-Con were wrapped inside the retail box.
  • Debug - Send Custom Commands. Send Vibrations, set player and HOME leds, etc, and see their reply.
    *Disclaimer* Only for users that know what they are doing. You are the only responsible!
  • Full test controls. Test buttons, analog sticks, motion controls, complete with calibration.
  • Temperature reading. Check the current Joy-Con or the ambient temperature after letting it for some minutes.
  • Easter Egg: Play 2 Mario themes through Joy-Con HD Rumble
  • Capture traffic between the controller and the PC into a log file
  • For more, check Changelog
Player Led behavior: Solid = Waiting for command, 4th Led Blinking = Doing stuff.
Additionally for Right JC and Pro HOME led: Heartbeat= Waiting for command, Breathing = Doing stuff.


Video tutorial:
In English and French



Prerequisites:
Install only if needed.

Changelog:
v5.2.0 (download):


Near Infrared Camera:
  • Add live configuration when streaming
  • Add many new IR settings (de-noise, led intensity, strobe lights, etc)
  • Change custom IR sensor registers
  • Auto exposure mode (This is done manually, so it's experimental. Expect bugs).
User Calibration Editing:
  • Add Accelerometer/Gyroscope user calibration editing
  • Add Stick device factory parameters editing. Helps when you have drifting issues, that can't be fixed by calibrating the stick. Just raise the deadzone value.

Debugging / Troubleshooting:
Add 2 command line options:
  • -d: Dumps the communication packets into a log text file
  • -f: Forces the app to not check for connection again. Helps in some cases that the app reports that the controller was disconnected.
Others:
  • Organize the IR/Playground/Calibration panels a little better
  • Many bugfixes and optimizations


v5.0.0 (download):

Near Infrared Camera:
Look through the IR camera of the Joy-Con (R) controller
  • Capture and save a photo or Stream video
  • Fully configurable
    Resolution, IR leds, Exposure time, Digital gain and External IR light filter (filters lighters/candles, sunlight, etc.)
  • 4 color filters to choose: Grey, Ironbow (pseudothermal color), Night vision (green) and Red
NFC:
  • Check simple info (type and uid) from NFC tags, credit cards and nfc-enabled phones via the Pro controller and Joy-Con (R)
Edit analog sticks user calibration:
  • Edit the analog stick's X/Y ranges and centers. All controllers are supported.
    This can correct accidental walking and slow running when the switch's calibration does not let you calibrate them correctly.
Support Switch update 5.0.0+ colors:
  • You can now edit the Grips color for the Pro controller individually along the body and buttons color.
    (Viewing the grips color is only supported in Switch update 5.0.0+)
  • The controller preview is now optimized and way faster
Other:
  • Added traffic logging by using the command line argument -d
  • Made it fully non-blocking. Now the app will mostly not hang when the controller is disconnected when it does an operation
  • Countless bugfixes and optimizations


Old changelog:
v3.0.2:
Hotfix version for Pro Controllers mostly
  • Implemented mitigations for Pro Controller erratic/random behavior of x3F input reports.
    Now certain read/write SPI commands will be more difficult to be skipped.
  • Added error checking for read/write SPI commands and user inform messages when these happen
  • Small bugfixes

v3.0.1:
The crappy old windows color dialog is now gone!
The new Joy-Con Color Picker supports the following:
  • Beautiful dark design
  • Adobe style color picker, with different color spectrums for each mode and arrows/mouse wheel support.
  • HEX input
  • Eyedropper. Pick any color on your screen!
  • Choose both Body and Buttons colors in one screen
  • Presets that you can name. Save up to 16 retail custom colors and 32 user custom colors.
  • Legacy support.
    It will automatically load your old saved presets if you copied "Colors.config" inside jctool_v3.0.1.exe's folder.
    It will save them to the new config format and create a backup of your old colors with the name "Colors.backup"
  • New config xml layout, which has the color in HEX RGB along with the preset name.
High DPI scaling support
  • Every control is now reworked so it will scale with your Windows DPI setting.
  • Forget any blurred look or out of bounds text.
Smooth controller preview image
  • The preview box that you can check how the controller will look like with the new colors is now reworked.
  • It now produces nice HQ images with smooth color transition and no more color spots.
Other
  • Many bugfixes and code refactoring!
  • Fully support Windows 10 (Fall Creators Update)

v2.5.1:
  • Full featured controls, motion sensor and calibration readings. Check your user or factory calibrations, test buttons, stick and motion sensors raw and calibrated readings.
  • Temperature readings. Check your current Joy-Con temperature or the ambient temperature (by leaving it alone for some minutes).
  • Added Pro controller buttons color support
  • Small redesign of some parts for better UX
  • Added battery voltage reading
  • Added Refresh and Disconnect buttons.
    You can now change on the fly different Joy-Con without the need to close the toolkit for refreshing info, or just refresh temperature/battery/etc. Additionally "Disconnect" also reboots your device.
  • Added Red Joy-Con body and buttons colors. Thanks to SciresM. If you want to keep your custom colors, add them manually: 225,15,0 | 40,10,10.
  • Added New Easter Egg. Happy SMO release!
  • Countless bugfixes and improvements

v2.0:
  • Full featured HD Rumble Player. Supports .bnvib and .jcvib. Also added LF/HF EQ, Pitch and support for looped .bnvib format.
    You can find attached the Mario theme in raw format. Please don't share .bnvib ripped from games.
  • Full Debug reply report. You can now check buttons/joystick/battery from the received packet.
  • Added S/N protection mechanism. With the first S/N change, it now saves it in an unused area inside your SPI.
    If you already changed it, it will not trigger. You need to restore it from a backup and then change it back.
  • Added option to restore it from inside the SPI. Needs the above. Otherwise you can still restore it from your SPI backup.
  • Battery percent based on regulated voltage reported from the device.
  • Now Joy-Con (R) and Pro Controller utilize the HOME led. Heartbeat = Standby/Awaiting command, Breathing = Doing stuff.

v1.5.2:
Hotfix version
  • Fixed a major compatibility issue with newest shipments of Joy-Con. Previously we were expecting 2 fw PatchRams inside the SPI dump. New Joy-Con have only 1 like Pro. This was triggering a "Backup is corrupt" message, even though the backup was perfect.
  • Revambed the debug and made it like a normal feature a little bit. Added sent subcmd/arguments windows and you can now send 25byte subcmd arguments (this fixes the HOME LED, subcmd: 38, arg: F100F0F0F0F0F0F000FFFF00FFFF00FFFF).
  • Some bugfixes

v1.5.1:
Minor fix version
  • Fixed debug option to not send additional commands
  • Revambed logic of debug option to show Input Report from Joy-Con
  • Configuration file now has a fixed filename. *Compatible with v1.5 config*. Rename your config name to Colors.config if you already set custom colors.
  • Fixed bugs and made logic way simpler to many functions
  • Removed all unsafe sprintf and fopen and changed them to safe and simpler logic

v1.5:
  • Added Battery view
  • Added Restore option! It has many checks so don't worry. Corrupted backups from v1.2 and older will be automatically discarded!
  • Added Debug option. *Disclaimer* Only for users that know what they are doing. You are the only responsible!
  • Added Change S/N option. *Disclaimer* If you didn't do a valid backup with v1.3 or v1.5 and you lost your S/N, you are the only responsible!
  • *New .config* Added separate custom colors for Pro (until I create a custom color dialog in C++). You need to copy your colors from the old .config to the new one. The colors in .config are in BGR! Not in RGB and for every type they must be 16. Not less, not more
  • Many bug fixes
  • Added an Icon and an About screen that links here.
  • Added ability to close the app in lengthy operations.
  • Added write check for restore option. This also means no more failed writes for color/SN writing.
  • Changed the 4th LED behavior: On = Standby, Blinking = Doing operations
  • Added an Easter Egg. Can you find it???

v1.3:
  • Fixed Pro controller
Added protocol reply check to fix communication with Pro controller and sometimes Joy-Cons. Sometimes and especially with Pro controller fast communication, the hid channel gets overwhelmed with "uneeded" packets. Now we check for correct ones and reject the others.​
  • New switch dark theme look (theme requests will be ignored though).
  • Better tinting of controller previews.
  • Added Splatoon Pink and Green colors.
  • Fix hex color text on buttons.
  • Many bug fixes
  • You can now cancel SPI dumping and also you can see the progress. (Speed is unchanged, FW limitation).
v1.2:
  • Now you can see real Joy-Cons and Pro controller for color view.
  • Updated Neon-Yellow color with retail values.
  • You can now save your own custom colors!
  • Fixed many bugs and crashes.
  • Every communication produces rumble confirmation.
  • Added led support. 1st Led: initialized, 4th Led Blinking/Solid: Standby/Write sent.
  • Changed SPI dump logic a little bit. Users with Pro controllers or with crashes, please try again.
  • Disabled Pro controllers color write for now.

v1.0:
  • Initial release

Download Old Versions
Download Oldest Versions



Source code


Troubleshooting:
The colors do not show up in Switch:
Switch 2.3.0 and older:
Clear the controller cache by doing the following:
Go to System Settings->Controllers and Sensors and do Disconnect all controllers. Restart your Switch and then pair.
Switch 3.0.0, 4.0.0 and newer:
Just pair the controller with Switch.


Special thanks:
Everyone at Nintendo_Switch_Reverse_Engineering: General BT protocol usage
shinyquagsire23: General hidapi and BT protocol usage
shuffle2: General hidapi usage for windows
Ceri: Neon-Yellow hex color values
Cosmic_Link: Splatoon Pink and Green Joy-Con dumps and colors
SciresM: Red Joy-Con color values
KapuDaKoopa, Sam S, SomeGamer, Jackson Ferrell, Starwort,trainboy2019,Hario337,Ep8Script,Lixmo: Testing. (If I forgot someone, please tell me)
Spawn Wave,Thomhack: For the video tutorials

Any chance of any Nintendo picking up on this and banning me
 

MikaDubbz

Well-Known Member
Member
Joined
Dec 12, 2017
Messages
3,848
Trophies
1
Age
36
XP
7,303
Country
United States
Hey uhm... so my Switch is on the latest 8.1.0 Update and all of my controllers are up-to-date,
but when I change the colors of my Pro Controller, the Switch only takes the colour of the body and displays the grips in it aswell..
Here are some examples:

View attachment 177018 View attachment 177019

Why is this and is there a way to make it as before?

This is a known issue that the OP claims he'd address next time he worked on it, but he hasn't been active on this for quite some time, so it appears that this project is dead at least for now and we just gotta deal with the pro controllers sadly not able to show the correct grip colors.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=TKyNPg7UIIc