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
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox-3DS-Homebrews
{{Infobox 3DS Homebrews
| title = Switch-Fightstick
|title=Switch-Fightstick
| image = https://dlhb.gamebrew.org/3dshomebrew/Switch-Fightstick.jpg|250px
|image=3ds.png
| type = Other Apps
|description=3DS as a Switch Controller.
| version=2020
|author=cluckclock
| lastupdated = 2020/05/13
|lastupdated=2020/05/13
| licence = Mixed
|type=Other Apps
| author = cluckclock
|version=2020
| website = https://github.com/cluckclock/Switch-Fightstick
|license=Mixed
| download = https://dlhb.gamebrew.org/3dshomebrew/Switch-Fightstick.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/switch_fightstick.zip
| source = https://github.com/cluckclock/Switch-Fightstick
|website=https://github.com/cluckclock/Switch-Fightstick
|source=https://github.com/cluckclock/Switch-Fightstick
}}
}}
<youtube>URNO8yvqWHc</youtube>
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.


= Switch-Fightstick Fork - Use your New 3DS as a Switch Controller =
This is a fork of ebith's Switch-Fightstick (originally by shinyquagsire23), 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 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.


* 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).
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.
* NodeMCU
* USB micro-b 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.


== Usage ==
===Tutorial===


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.
* Download [https://github.com/CTurt/3DSController 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.


== Setup ==
* 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.


# Download this repository.
* Next, to flash the NodeMCU, you will need to set up the Arduino environment if you already haven't.  
# 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.
** 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].
# 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.
** 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.
# 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 ==
* 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.
* 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 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.
See also [https://scrapbox.io/mizdra/ebith%2FSwitch-Fightstick this guide] (a step by step guide for ebith's Switch-Fightstick in 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==
* GitHub - https://github.com/cluckclock/Switch-Fightstick

Latest revision as of 11:52, 22 Haziran 2024

Switch-Fightstick
3ds.png
General
Authorcluckclock
TypeOther Apps
Version2020
LicenseMixed
Last Updated2020/05/13
Links
Download
Website
Source

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.

Installation

Requirements

  • 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.

Tutorial

  • 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).

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: