Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Switch-Fightstick 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 12: Line 12:
|source=https://github.com/cluckclock/Switch-Fightstick
|source=https://github.com/cluckclock/Switch-Fightstick
}}
}}
<youtube>URNO8yvqWHc</youtube>
Switch-Fightstick is a program that can disguise a microcontroller as Pokken Fightsitck (a dedicate controller for Wii U) and enables the Switch to be operated from a 3DS via the microcontroller.


== Switch-Fightstick Fork - Use your New 3DS as a Switch Controller ==
This is a fork of ebith's Switch-Fightstick, which allows you to operate Switch from a PC using the microcontroller.


=== Hardware Requirements ===
==Installation==
===Requirements===
* See [https://github.com/shinyquagsire23/Switch-Fightstick/blob/master/README.md shinyquagsire23/Switch-Fightstick's readme] for microcontroller requirements (Arduino R3 is used for testing, should also work for Teensy, Arduino Micro and possibly an 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 won't be as enjoyable experience, since you will lack 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.
 
===Tutorial===
Download [https://github.com/CTurt/3DSController CTurt's 3DSController repository] and build it, then place the 3DS software on your 3DS. The releases are outdated and do not include New 3DS support, therefore you must build it. If you have trouble building it take a look at the forks.


* see [https://github.com/shinyquagsire23/Switch-Fightstick/blob/master/README.md shinyquagsire23/Switch-Fightstick's README] for microcontroller requirements (I used an Arduino R3, but you could also use a Teensy, Arduino Micro or possibly an Arduino Leonardo).
After downloading necessary components, build this repository using <code>make</code>. Then follow the readme linked in the requirements section to flash <code>Joystick.hex</code> to your microcontroller.
* NodeMCU
 
* USB micro-b cable
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 [https://www.instructables.com/id/Steps-to-Setup-Arduino-IDE-for-NODEMCU-ESP8266-WiF/ this one].
* 4 male-to-female jumper cables
 
* A hacked New 3/2DS. You can also use an old Old 3/2DS, however it won't be as enjoyable experience, since you will lack the extra controls.
Open <code>nodemcu_3ds_udp_packet_receiver.ino</code> in the Arduino IDE. Next, on line 94 where it says <code>WiFi.begin(SSID, PASSWORD);</code> 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 <code>3DSController.ini</code> on your 3DS to enter the IP address of the NodeMCU.


== Usage ==
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


This uses the Arduino/teensy/ATMega board to emulate a USB &quot;controller&quot; 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.
See also [https://scrapbox.io/mizdra/ebith%2FSwitch-Fightstick this tutorial] (Japanese).


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


# Download this repository.
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.
# Download [https://github.com/CTurt/3DSController CTurt's 3DSController repository] and build it, then place the 3DS software on your 3DS. The releases are outdated and do not include New 3DS support, therefore you must build it. If you have trouble building it take a look at the forks.
# After downloading necessary components, build this repository using <code>make</code>. Then follow the readme linked in the requirements section to flash <code>Joystick.hex</code> 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 [https://www.instructables.com/id/Steps-to-Setup-Arduino-IDE-for-NODEMCU-ESP8266-WiF/ this one].
# Open <code>nodemcu_3ds_udp_packet_receiver.ino</code> in the Arduino IDE. Next, on line 94 where it says <code>WiFi.begin(&quot;SSID&quot;, &quot;PASSWORD&quot;);</code> 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. I'd recommend first uploading 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 <code>3DSController.ini</code> 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


== Caveats ==
==External links==
* GitHub - https://github.com/cluckclock/Switch-Fightstick


This software is, at best, imperfect. 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. This software is more of a proof-of-concept than a final product.
[[Category:DS homebrew applications]]
[[Category:Other DS applications]]

Revision as of 08:04, 10 December 2021

Switch-Fightstick
File:Switch-Fightstick.jpg
General
Authorcluckclock
TypeOther Apps
Version2020
LicenseMixed
Last Updated2020/05/13
Links
Download
Website
Source

Switch-Fightstick is a program that can disguise a microcontroller as Pokken Fightsitck (a dedicate 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, which allows you to operate Switch from a PC using the microcontroller.

Installation

Requirements

  • See shinyquagsire23/Switch-Fightstick's readme for microcontroller requirements (Arduino R3 is used for testing, should also work for Teensy, Arduino Micro and possibly an 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 won't be as enjoyable experience, since you will lack 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.

Tutorial

Download CTurt's 3DSController repository and build it, then place the 3DS software on your 3DS. The releases are outdated and do not include New 3DS support, therefore you must build it. If you have trouble building it take a look at the forks.

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 tutorial (Japanese).

Limitation

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

Advertising: