This tool allows you to completely shut down Nintendo Switch controllers (Joy-Cons, Pro Controller, etc.) to a factory state. This is useful for storing controllers for long periods without battery drain.
This program writes to the SPI flash of your Nintendo Switch controller. While the operations performed are safe when used correctly, any mistakes in the process could potentially brick your controller. Use at your own risk!
-
Puts the controller into low power mode (factory state)
-
Removes pairing information
-
Works with:
- Joy-Cons
- Pro Controller
- NES Joy-Cons
- SNES Controller
- N64 Controller
*after porting it to macOS/SteamOS, I only tested it myself with Joy-Cons and a Pro Controller, but it should work with other listed controllers as well
You need to have the following installed:
- Xcode Command Line Tools
- HIDAPI library
- Install prerequisites using Homebrew:
# Install the required packages
brew install hidapi
# If it says that 'brew' is unknown command, install Homebrew first:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Make sure your controller is connected via Bluetooth
- To pair a new controller, press and hold the sync button (small round button) until the LEDs start flashing
- Use macOS Bluetooth settings to complete the pairing
-
Run the downloaded program with:
./jcoff
- Follow the on-screen instructions carefully
- Clone this repository:
git clone https://github.com/manefunction/joycon-turnoff-ports.git
cd joycon-turnoff-ports
- Run the build script:
chmod +x build-mac.sh
./build-mac.sh
The script will install required dependencies and build the project. After successful build, the binary will be available at build/jcoff
.
-
Controller not detected
- Make sure the controller is connected via Bluetooth
- Try disconnecting and reconnecting the controller
- Ensure you have the necessary permissions to access HID devices
-
Build fails
- Make sure all prerequisites are installed
- Try running
brew update && brew upgrade
- Check if HIDAPI is properly installed with
brew info hidapi
You need to have the following packages installed:
- HIDAPI library
- libusb
These will be installed automatically by the installer or build script.
- Download and extract the latest release
- Switch to Desktop Mode on your Steam Deck
- Open Konsole (terminal)
- Navigate to the extracted folder
- Run the installer:
chmod +x deck-install.sh
./deck-install.sh
- Switch to Desktop Mode on your Steam Deck
- Open Konsole (terminal)
- Clone and build the project:
git clone https://github.com/manefunction/joycon-turnoff-ports.git
cd joycon-turnoff-ports
chmod +x build-deck.sh
./build-deck.sh
The script will install required dependencies and build the project. After successful build, the binary will be available at build/jcoff
.
To install the built binary:
chmod +x deck-install.sh
./deck-install.sh
- Make sure you're in Desktop Mode
- Either:
- Find "Joy-Con Shutdown Tool" in your applications menu, or
- Open Konsole and type
jcoff
- Follow the on-screen instructions
The first time you run the tool, it will ask for your password to set up device permissions. This is normal and only needs to be done once.
If the controller is not detected:
- Make sure you're in Desktop Mode
- Make sure the controller is connected via Bluetooth
- To pair: hold the sync button (small round button) until LEDs flash
- Use Steam Deck's Bluetooth settings to complete pairing
- Try disconnecting and reconnecting the controller
Run the uninstaller, provided in the release you downloaded:
chmod +x deck-uninstall.sh
./deck-uninstall.sh
To wake up the controller after shutdown:
- Connect it to the Switch with a USB cable, or
- Perform Bluetooth pairing again by holding the sync button
This project is licensed under the MIT License - see the LICENSE file for details.
This is a macOS/Steam Deck port of the original Windows tool. The core functionality and protocol implementation remain the same.
For more info about the original tool, see: https://github.com/Sopsy/joycon-turnoff