# Nintendo Switch 逆向工程笔记

> 由 dekuNukem 于 2017 年发起、众多贡献者陆续补充的笔记，记录 Joy-Con、Pro 手柄以及 Switch 主机与底座部分硬件的工作方式，依据来自拆机、逻辑分析仪抓取和数据包记录。各 Markdown 文件涵盖 Joy-Con 电路板测试点与滑轨接口引脚定义、带 CRC-8 校验的有线串口握手、蓝牙 HID 输入与输出报告及其中记录的 32 个子命令、Pro 手柄与充电握把的 USB HID 命令、含摇杆与六轴校准数据的 SPI 闪存布局、IMU 换算公式以及振动编码表。仓库还保存了在滑轨接口上扮演主机或 Joy-Con 的 STM32 测试固件、用于解析蓝牙流量的 Wireshark 解析器，以及笔记所依据的抓取数据。

- 类型：学习资源
- 目标：固件 · 协议
- 类别：学习资源
- 关联：学习资源
- 来源复核于：2026-10-19
- 收录于：2026-10-27
- 原始资源：<https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering>
- 一手来源：<https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/nintendo-switch-joycon-re-notes/>
- 记录 JSON：<https://awesomerea.org/resources/nintendo-switch-joycon-re-notes/record.json>
- 英文版：[English](https://awesomerea.org/resources/nintendo-switch-joycon-re-notes/index.md)

## 使用条件与局限

- 审阅提交为 b354f21（2026-08-21）。全部 277 个提交中有 228 个来自 2017 年，其余大多在 2018–2021 年；2026 年的修改补充了主机对摇杆校准数据所做的合理性检查。笔记针对初代 Joy-Con 和 Pro 手柄，列出的最新手柄固件为 3.89，且仍有若干字段标为未知，因此较新的固件和手柄需另行核实。
- 照着笔记操作需要自己的手柄。有线协议部分需要拆开 Joy-Con，将其滑轨接口（1.8 V 逻辑电平）接到逻辑分析仪或单片机上；蓝牙与 USB 部分假定主机能收发原始 HID 报告，示例 C 代码使用 hidapi 风格的调用。仓库不含任何手柄或底座固件：README 称已制作底座固件转储，但并未发布。
- joycon_reader 和 joycon_spoofer 两个项目面向 STM32F072，由 STM32CubeMX 生成并使用 Keil MDK-ARM 构建，构建产物与源码一同提交。nxbt 解析器需要在 Wireshark 源码构建中作为插件编译；另有一个 Lua 脚本用于解析经 USB 抓取的蓝牙流量，几个小型 Python 脚本用于解析抓取数据和计算串口校验和。.logicdata 抓取文件需要能读取该格式的逻辑分析仪软件。
- 蓝牙笔记还记录了 SPI 闪存写入、扇区擦除和固件更新命令，并提醒擦除会作用于整个扇区；各字段含义来自贡献者自己的抓取与测试。
- GitHub 未检测到许可证，仓库也没有许可证文件，因此笔记未声明复用条款；datasheets 文件夹存放第三方芯片数据手册的副本，Lua 解析器注明不附带许可证。README 致谢了众多贡献者。

## 一手来源

1. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/README.md>
2. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/bluetooth_hid_notes.md>
3. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/bluetooth_hid_subcommands_notes.md>
4. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/spi_flash_notes.md>
5. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/USB-HID-Notes.md>
6. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/imu_sensor_notes.md>
7. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/rumble_data_table.md>
8. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/joycon_reader/README.md>
9. <https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/b354f21ae81f7b0d1d060b2b61e66ad0d9bc1756/packet_parse/nxbt/README.md>

## 同分区更多条目：文档与学习资源

- [Android 应用逆向工程 101](https://awesomerea.org/zh/resources/android-app-re-101/index.md) · 学习资源
- [iOS 应用逆向工程课程](https://awesomerea.org/zh/resources/re-ios-apps-course/index.md) · 学习资源
- [tiny-dec 教学用反编译器](https://awesomerea.org/zh/resources/tiny-dec/index.md) · 学习资源
- [逆向工程阅读清单（onethawt）](https://awesomerea.org/zh/resources/onethawt-re-reading-list/index.md) · 学习资源
- [Decomp Academy 一致性反编译课程](https://awesomerea.org/zh/resources/decomp-academy/index.md) · 学习资源
- [OWASP 固件安全测试方法论（FSTM）](https://awesomerea.org/zh/resources/owasp-fstm/index.md) · 学习资源

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
