案例
Open Steam Controller:逆向工程得来的 Steam Controller 固件
记录对 Valve 初代 Steam Controller 的逆向工程:作者在修改版 pinkySim 模拟器中运行其 LPC11U37F 主处理器固件并记录硬件访问,再据此编写替代固件。不同构建选项可让手柄成为通过 USB 串口查询外设的开发板,或伪装成 PowerA 手柄、供 Nintendo Switch 使用的有线控制器。Qt 转换工具可把 MusicXML 乐曲写入官方固件同样会读取的 EEPROM 区域,作为开机和关机提示音;另有文档记录主板引脚连接和 USB 消息。
- 目标
- 固件 · 协议
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 来源复核于
- 星标
- 545
- 最近提交
- 2019-09-17
- 主要语言
- C
GitHub 数据,截至 2026-11-09
使用条件与局限
- 替代固件面向 Steam Controller 的 Luna_mainboard V000456-00 rev3 主板及其 LPC11U37F 处理器。nRF51822 蓝牙固件仍为原版。
- 运行自制固件或提示音流程需要使用该主板的 Steam Controller。重复模拟过程还需另行提供 Valve 的 vcf_wired_controller_d0g_57bf5c10.bin 固件及 LPC11U37 的 16 kB 启动 ROM 转储。
- 固件构建使用 LPCXpresso IDE v8.2.2 和随附的 NXP lpc_chip_11uxx_lib;在 fw_cfg.h 中选择 DEV_BOARD_FW 或 SWITCH_WIRED_POWERA_FW。SCJingleConverter 使用 Qt 5.12;SteamControllerConfig.py 使用 PyUSB。
- 作者的源文件带有 MIT 声明;随附的 NXP LPCOpen 库仅限与 NXP 微控制器配合使用。仓库没有许可证文件。自制固件内嵌了 Valve 固件的默认提示音数据,以及从 PowerA 手柄复制的 HID 报告描述符。
引用
BibTeX
@misc{open-steam-controller-firmware-case,
title = {{Open Steam Controller: reverse-engineered Steam Controller firmware}},
howpublished = {\url{https://github.com/greggersaurus/OpenSteamController}},
url = {https://github.com/greggersaurus/OpenSteamController},
urldate = {2026-10-19},
note = {Awesome REA entry: \url{https://awesomerea.org/zh/resources/open-steam-controller-firmware-case/}}
}纯文本
Open Steam Controller: reverse-engineered Steam Controller firmware。https://github.com/greggersaurus/OpenSteamController(访问于 2026-10-19)。Awesome REA 条目:https://awesomerea.org/zh/resources/open-steam-controller-firmware-case/
有帮助?在 GitHub 上为 Awesome REA 加星2.4k
关于此条目
说明已依据一手来源复核。
一手来源
- README.md GitHub · greggersaurus/OpenSteamController · 修订 3258015
- ReverseEngineering/README.md GitHub · greggersaurus/OpenSteamController · 修订 3258015
- ReverseEngineering/LPC11U37F_Software.md GitHub · greggersaurus/OpenSteamController · 修订 3258015
- ReverseEngineering/usbInterface.md GitHub · greggersaurus/OpenSteamController · 修订 3258015
- Firmware/README.md GitHub · greggersaurus/OpenSteamController · 修订 3258015
- Firmware/OpenSteamController/src/init.c GitHub · greggersaurus/OpenSteamController · 修订 3258015
- Firmware/OpenSteamController/src/jingle_data.c GitHub · greggersaurus/OpenSteamController · 修订 3258015
- Firmware/OpenSteamController/inc/fw_cfg.h GitHub · greggersaurus/OpenSteamController · 修订 3258015
- Firmware/lpc_chip_11uxx_lib/src/chip_11xx.c GitHub · greggersaurus/OpenSteamController · 修订 3258015
- Jingle/README.md GitHub · greggersaurus/OpenSteamController · 修订 3258015
- UsbConfiguration/README.md GitHub · greggersaurus/OpenSteamController · 修订 3258015
- UsbConfiguration/SteamControllerConfig.py GitHub · greggersaurus/OpenSteamController · 修订 3258015