Switch-Fightstick 3DS

From GameBrew

Last Updated2020/05/13
TypeOther Apps

Switch-Fightstick is a POC program that can disguise a microcontroller as Pokken Tournament Pro Pad (a dedicated controller for Wii U) and enables the Switch to be operated from a 3DS via the microcontroller.

This is a fork of ebith's Switch-Fightstick (originally by shinyquagsire23), which allows you to operate Switch from a PC using the microcontroller.



  • See Switch-Fightstick's readme for microcontroller requirements (Arduino R3 is used for testing, should also work for Teensy/Arduino Micro/Arduino Leonardo).
  • NodeMCU.
  • USB Micro-M cable.
  • 4 male-to-female jumper cables.
  • A hacked New 3/2DS. You can also use an old Old 3/2DS, however it lacks the extra controls.

This uses the Arduino/teensy/ATMega board to emulate a USB controller that the Switch is able to recognize and record key presses from. The NodeMCU is used to receive UDP packets from the 3DS, interpret them, and send over commands to the Arduino that will in turn be sent to the Switch as key presses, circle pad movements etc.


  • Download CTurt's 3DSController repository and build it.
    • The releases are outdated and do not include New 3DS support, therefore you must build it.
    • Once your have built it, place the 3DS software on your 3DS.
  • After downloading necessary components, build this repository using make. Then follow the readme linked in the requirements section to flash Joystick.hex to your microcontroller.
  • Next, to flash the NodeMCU, you will need to set up the Arduino environment if you already haven't.
    • There are plenty online tutorials on how to do this, but you can start with this one.
    • Open nodemcu_3ds_udp_packet_receiver.ino in the Arduino IDE. ​Next, on line 94 where it says WiFi.begin("SSID", "PASSWORD"); enter your WiFi credentials.
  • The 3DS and NodeMCU need to be connected to the same WiFi network.
    • You will also want to change the static IP address of your NodeMCU and the gateway of your router on lines 13 and 14.
    • It is recommended to first upload a simple sketch to the NodeMCU that prints out its IP address and use that.
    • Modify your gateway IP address as well. Once that's all done, upload the .ino to the NodeMCU.
    • Edit the 3DSController.ini on your 3DS to enter the IP address of the NodeMCU.
  • Finally, connect the NodeMCU's RX pin to the microcontroller's RX pin (on the Arduino Uno R3 this is D0); TX pin to the microcontroller's TX pin (one the Arduino Uno R3 this is D1); the VIn pin to the other microcontroller's 5-volt output (although it can be higher); and ground pin to ground pin. Plug into the Switch Dock with the Switch inside, boot the software on your 3DS and it should be working.

See also this guide (a step by step guide for ebith's Switch-Fightstick in Japanese).


This software is more of a proof-of-concept than a final product.

Occasionally, key presses/releases won't be registered, or the circle pad or c-stick won't return to their neutral value when you let go.

External links