Sunday, March 8, 2020

Nintendo Switch Dock Modding - Integrated GameCube Controller Ports

The Nintendo Switch Dock should have shipped with GameCube controller ports. 

This post details the solution I created to integrate a third party controller adapter into the dock of my Nintendo Switch. I haven't seen any other projects that are this integrated but I would like to acknowledge Rated-e Mods who has made a few videos exploring ways to integrate an adapter with the Switch dock. Those videos got me thinking about how to take things to the next step.

Just before Super Smash Bros Ultimate released excited fans made a run on the Nintendo branded GameCube controller adapters. They sold out quickly and now are available only from third party sellers for at least three times Nintendo's MSRP of $20. Mayflash makes an adapter that seems to be well regarded so I bought one and crossed my fingers that it would fit somewhere inside. The Mayflash unit turned out to be a good choice because the controller ports are on a board separate from the main circuitry which ultimately allowed it to slip between the inner and outer casing of the dock. The Nintendo branded adapter has just one PCB inside with right angle mount ports and would not work in the configuration shown here.

The biggest challenge in making this work was fitting all the electronics inside the shell of the dock. There is about 0.1" (2.5 mm) between the inner and outer panel where the adapter PCB is. Some of the components on the board are taller than that and low profile replacements were needed.

Mayflash adapter removed from its plastic enclosure

The crystal used is a standard metal can 49US package and is by far the tallest component on the board. The marking on the part reads "JF12.000" which indicates that it oscillates at 12 MHz and is made by Jing Feng Crystal. There doesn't seem to be an exact datasheet available but there is enough information on the manufacturer's website to make an educated guess about what parts might be compatible as replacements. After trolling through Digikey's catalog extensively, I ordered this crystal as the low profile replacement. This new crystal needs to be soldered to the original thru holes on the PCB. The first time I soldered it in the board worked (!) but the part wasn't sitting flat enough to fit in the Switch dock so it had to be redone.

The reverse voltage protection diodes (D8 and D17) are also a bit too tall. The SS14 marking indicates that these are 40V, 1A shottky diodes which can be easily sourced in a lower profile package.

The small switch used to select PC or console use also had to be removed. The connection for console operation is permanently soldered closed.

Lastly, the PCB needs to be trimmed to fit between the standoffs inside the case.

Front side of the Mayflash main PCB. The crystal and selector switch have already been removed in this image.

Back side of the Mayflash main PCB

Main PCB after trimming. The new crystal and diodes are soldered on. It ended up being easier to not use the header pins at the top and instead solder wires directly to the PCB.

Adapter PCB wired and taped into the dock shell. Two of the three screws that attach the 3D printed part are visible along the top. Wiring for the ports goes though slots cut in the dock shell.

These controller adapters connect via two USB A plugs. One plug is used for data transmission and power, the other is used only for power and it activates the rumble feature on the all the controllers when plugged in. The USB ports on the switch dock can each source 500mA of current. 500mA isn't enough to run all the rumble motors at once with four controllers connected so the adapter needs the second plug. Two-controller versions of these adapters exist and, sure enough, they use only one USB plug.

I went for full functionality and wired up the two front USB ports. I added a switch to the main USB 5v line which will turn the adapter board on or off. That will allow the front USB ports to function normally by hitting that switch.

USB connections made on the Switch dock PCB.

Dock PCB with wiring and connector installed. Some minor trimming of the PCB support plastic is needed for wire routing.

The controller ports would not fit inside the dock itself so I made a separate piece to enclose and secure them to the dock. This piece screws on to the dock plastics from the back. It feels sturdy and no screws are visible. I modeled the piece in SolidWorks and uploaded it to a 3D print service to be made on a multi jet machine from nylon. 

The printed part as received. It's not a perfect color match to the dock but I didn't feel the need to recolor it. 

Back side of the printed part. The mounting screws thread into the three circular bosses. The support and alignment features for the power button are visible in the center. 

Final assembly was a bit tricky but went smoothly. It took both hands so I didn't get any good pictures. I'm happy with the end result. It took a fair amount of modification to get everything to fit, but it really does feel like Nintendo could have included this functionality from the factory.  

 The ports and 3D print end up flush with the rear cover of the dock.

Completed unit showing indicator LED.

The power button is just barely visible below the indicator LED

Until next time.