[PR #269] [CLOSED] Add Switch 2 Pro controller compatibility #265

Closed
opened 2026-10-22 05:08:29 +00:00 by roman · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/safijari/openpuck/pull/269
Author: @ixelyth
Created: 9/3/2026
Status: ❌ Closed

Base: main ← Head: switch2pro


📝 Commits (6)

  • 8a696af Add Switch 2 Pro controller compatibility
  • b9a9332 Fixing stale identities
  • 5409ebc Fixing input bindings
  • 9ef6d8d Changing default bindings
  • ecce8e7 Fix Switch 2 Pro clang-format whitespace
  • cafaba6 Merge upstream main into Switch 2 Pro branch

📊 Changes

18 files changed (+1400 additions, -39 deletions)

View changed files

📝 Makefile (+1 -1)
📝 OpenPuck/OpenPuck.ino (+21 -8)
📝 OpenPuck/config.cpp (+30 -3)
📝 OpenPuck/config.h (+15 -2)
📝 OpenPuck/controllers.cpp (+3 -0)
📝 OpenPuck/haptics.cpp (+10 -1)
➕ OpenPuck/mode_switch2_pro.cpp (+1191 -0)
➕ OpenPuck/mode_switch2_pro.h (+22 -0)
📝 OpenPuck/mode_switch_pro.cpp (+16 -15)
📝 OpenPuck/serial_console.cpp (+1 -1)
📝 OpenPuck/steam_commands.h (+2 -0)
📝 OpenPuck/triton.h (+3 -0)
📝 OpenPuck/usb_app_drivers.cpp (+1 -0)
📝 OpenPuck/usb_app_drivers.h (+1 -0)
📝 OpenPuck/usb_tx.cpp (+14 -0)
📝 OpenPuck/usb_tx.h (+3 -0)
📝 OpenPuck/webusb_config.cpp (+26 -2)
📝 docs/index.html (+40 -6)

📄 Description

Addresses #255

Adds Switch 2 Pro controller emulation support and hardens the existing Nintendo input path, including controller reports, rumble behavior, mapping/configuration support, and Switch Pro state-stream handling.

You can map the GL, GR, C, Home, and View buttons like on the actual Switch 2 Pro Controller via WebUSB.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/safijari/openpuck/pull/269 **Author:** [@ixelyth](https://github.com/ixelyth) **Created:** 9/3/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `switch2pro` --- ### 📝 Commits (6) - [`8a696af`](https://github.com/safijari/openpuck/commit/8a696af61750a31172a3884368409bbad5c2fa86) Add Switch 2 Pro controller compatibility - [`b9a9332`](https://github.com/safijari/openpuck/commit/b9a9332a9789bdf1ec2fe4b2b4e4220b47bb3540) Fixing stale identities - [`5409ebc`](https://github.com/safijari/openpuck/commit/5409ebc2273365a6f2409c3a332acd65468352b5) Fixing input bindings - [`9ef6d8d`](https://github.com/safijari/openpuck/commit/9ef6d8df231a8d99eb8d836b7065fe1301312f7d) Changing default bindings - [`ecce8e7`](https://github.com/safijari/openpuck/commit/ecce8e7b8816fd8d54b3255a11c3664fc077db5f) Fix Switch 2 Pro clang-format whitespace - [`cafaba6`](https://github.com/safijari/openpuck/commit/cafaba6eae52b997c685eecbaea97eb7dadfb050) Merge upstream main into Switch 2 Pro branch ### 📊 Changes **18 files changed** (+1400 additions, -39 deletions) <details> <summary>View changed files</summary> 📝 `Makefile` (+1 -1) 📝 `OpenPuck/OpenPuck.ino` (+21 -8) 📝 `OpenPuck/config.cpp` (+30 -3) 📝 `OpenPuck/config.h` (+15 -2) 📝 `OpenPuck/controllers.cpp` (+3 -0) 📝 `OpenPuck/haptics.cpp` (+10 -1) ➕ `OpenPuck/mode_switch2_pro.cpp` (+1191 -0) ➕ `OpenPuck/mode_switch2_pro.h` (+22 -0) 📝 `OpenPuck/mode_switch_pro.cpp` (+16 -15) 📝 `OpenPuck/serial_console.cpp` (+1 -1) 📝 `OpenPuck/steam_commands.h` (+2 -0) 📝 `OpenPuck/triton.h` (+3 -0) 📝 `OpenPuck/usb_app_drivers.cpp` (+1 -0) 📝 `OpenPuck/usb_app_drivers.h` (+1 -0) 📝 `OpenPuck/usb_tx.cpp` (+14 -0) 📝 `OpenPuck/usb_tx.h` (+3 -0) 📝 `OpenPuck/webusb_config.cpp` (+26 -2) 📝 `docs/index.html` (+40 -6) </details> ### 📄 Description Addresses #255 Adds Switch 2 Pro controller emulation support and hardens the existing Nintendo input path, including controller reports, rumble behavior, mapping/configuration support, and Switch Pro state-stream handling. You can map the GL, GR, C, Home, and View buttons like on the actual Switch 2 Pro Controller via WebUSB. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
roman 2026-10-22 05:08:29 +00:00
Sign in to join this conversation.
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
safijari/openpuck#265
No description provided.