A simple Nintendo Switch homebrew app that puts original Joy-Con controllers into shipment low-power mode and disconnects them, ready for long-term shelf storage. No PC required.
- Automatic detection of connected wireless Joy-Con L/R controllers.
- Individual controller colors, connection states, and operation results.
- Multiple controller pages with a miniature Joy-Con legend, L/R navigation, and touch swipes.
- Turn off all ready controllers across every page with one confirmation.
- Touch controls remain available after the controllers disconnect.
- Optional TXT diagnostics saved to
sdmc:/joyoff-debug.txt; logging is off by default.
- A Nintendo Switch running custom firmware and firmware 13.0.0 or newer.
- Original Joy-Con L/R controllers connected wirelessly.
- Homebrew Menu in full application mode (title override).
MissionControl is not required. Pro Controllers, Joy-Con 2, and third-party controllers are outside the scope of this app.
- Extract the release ZIP to the SD card root (it contains only
switch/JoyOff.nro) and launch JoyOff through the Homebrew Menu. - Detach your Joy-Cons and connect them wirelessly. Detection refreshes automatically.
- Press Minus (-) or tap Turn Off All, then confirm.
- Check the per-controller results. Use the touchscreen to exit after the controllers disconnect.
Saved Bluetooth pairing will be cleared. JoyOff resets pairing, enables shipment low-power mode, and disconnects the controllers. Attach them to a Switch to wake and pair again. If an operation fails partway through, pairing may already have been cleared; check each controller's result.
| Control | Action |
|---|---|
| Minus (-) | Open the Turn Off All confirmation / confirm |
| B / Plus (+) | Cancel, return, or exit |
| X | Refresh detection |
| Y | Open diagnostics |
| ZL | Open About |
| Minus (-), in Diagnostics | Enable / disable TXT logging while idle |
| L / R | Previous / next controller page |
| Touch | Buttons, miniature page legend, and horizontal page swipes |
Controller pages group left and right devices for display; they do not establish controller pairs. Colors come from stored HID color information and may differ from replacement shells.
TXT logging is off at each launch. Open Diagnostics, press Minus or tap the logging toggle to enable it, then use X / Refresh to capture discovery. Disabling logging leaves existing log files intact.
Requires devkitPro/devkitA64, libnx, deko3d, GLM headers, and uam. The NanoVG/deko3d renderer is included.
make -j4 releaseThe output includes JoyOff.nro, JoyOff-1.0.0.zip containing only switch/JoyOff.nro, and JoyOff-1.0.0-source.zip with the corresponding sources and license notices. See the technical README for implementation details and diagnostic information.
The Switch application is distributed under LGPLv3, with the accompanying GPLv3 terms. Graphics initialization and UI helpers are adapted from Switch 90DNS Tester by Nexrem and contributors. Bundled NanoVG/deko3d code retains its original notices and credits Adubbz, Mikko Mononen, and fincs.
Joy-Con illustrations are adapted from 0 Noctis 0's Wikimedia illustration, licensed CC BY-SA 4.0. See art attribution.
Protocol and implementation references include jc_toolkit, dekuNukem's reverse-engineering notes, libnx, and MissionControl.
If you find this project useful, please consider supporting me by buying me a coffee!
