Skip to content
 
 

Repository files navigation

GP-Combine

GP-Combine

基于 GP2040-CE 的新时代全彩无线格斗手柄固件 · v0.1.0


简介

GP-Combine 是在 GP2040-CE 基础上深度定制的手柄固件,面向“平民向”玩家:把原版需要电脑/网页才能完成的配置,直接搬到手柄上的一块彩色屏幕里,全程中文引导。项目分为正式版(ESP32-S3 + Pico 双芯)与 Lite 版(单 Pico)两个版本。

正式版:相比 GP2040-CE 原版新增

  • 双芯架构:Pico 负责手柄输入与 WS2812B 灯效,ESP32-S3 负责 240×135 全彩屏幕与菜单,两者以 921600 高速 UART 互联

  • 全彩滑动菜单:6 大页面(设置 / 电池 / 灯光 / 背景 / 休眠 / 无线),程序绘制图标 + 内置中文字库

  • 按键布局可视化:街机 / HITBOX / WASD / 自定义四套布局,按键按下实时高亮,支持输入历史记录

  • 背景图系统:5 档透明度、水平/垂直翻转、反色,可自由更换背景

  • 屏保与彩蛋:新增了嘉豪必备的字母雨,更新了原屏保,支持自定义gif作屏保

  • 无线手柄模式:nRF24L01 固定信道 + 固定地址,接收端插电脑即用,配对后自动切换输入模式

  • 电池检测:Pico 侧 VSYS 采样,屏幕实时显示电量/USB 状态

  • 菜单静音:进入菜单自动停止 USB 手柄输出,防止对战时误触 配置助手(PC):引导式定制——背景图自动转分辨率、按键布局可视化编辑、热键/灯序配置、GIF 压缩、配置备份导入导出.支持windows与linux双平台

    彩蛋:菜单两个选项之中还有一个选项...这里有个男人...

Lite 版:相比 GP2040-CE 原版新增

  • 128×64 单色 I2C 屏幕 + 中文滑动菜单(设置 / 显示 / 灯光 / 休眠 / 系统)
  • 移植正式版滑动菜单交互:上下滑动动画、滚动条、滑块调节、保存确认弹窗
  • 屏保(含 MATRIX)与流水灯效
  • 菜单静音:进菜单停止 USB 输出
  • 保留原版全部输入能力、RGB 灯效与 Web 配置

滑动菜单(正式版)

  • 长按 S2 3 秒进入菜单,十字键 / 左摇杆左右滑动页面,A 确定、B 返回
  • 6 大页面:设置 / 电池 / 灯光 / 背景 / 休眠 / 无线,底部缩略方块同步指示当前位置
  • 子页面支持上下滑动 + 滚动条 + 丝滑动画;滑块选项按 A 进入调节、B 退出,右侧实时显示数值
  • 修改后按 B 返回会弹出「是否立即保存」确认框
  • 彩蛋:菜单内右-左交替 12 连击触发

输入延迟

有线延迟采用 GP2040-CE 官方实测数据(v0.7.12,默认 1000 Hz 轮询)。GP-Combine 保留原版完整输入路径,有线延迟与原版一致。

有线连接

输入模式 轮询率 最小 最大 平均
XInput 1000 Hz 0.45 ms 1.28 ms 0.76 ms
Switch 1000 Hz 0.41 ms 1.22 ms 0.72 ms
HID 1000 Hz 0.42 ms 1.25 ms 0.73 ms
PS3 1000 Hz 0.52 ms 1.46 ms 0.83 ms
PS4 1000 Hz 0.55 ms 2.33 ms 0.90 ms
PS5 1000 Hz 0.55 ms 2.38 ms 0.91 ms

无线连接(nRF24L01,估算)

无线链路:Pico → UART(921600) → ESP32-S3 → nRF24(2 Mbps) → 接收端 Pico → USB。按键按下时立即发送,无需等待心跳周期,链路附加延迟约 1 ms。

输入模式 有线平均 无线附加(估算) 无线总延迟(估算)
XInput 0.76 ms ≈1 ms ≈1.8 ms
Switch 0.72 ms ≈1 ms ≈1.7 ms
HID 0.73 ms ≈1 ms ≈1.7 ms
PS3 0.83 ms ≈1 ms ≈1.8 ms
PS4 0.90 ms ≈1 ms ≈1.9 ms
PS5 0.91 ms ≈1 ms ≈1.9 ms

说明:无线延迟为链路估算(UART 帧约 0.2 ms + nRF24 传输/ACK 约 0.4–0.6 ms + 接收端一个轮询周期内上报),实际以使用环境为准。心跳档位(50 / 20 / 10 ms)只影响静止状态的刷新频率,不影响按键按下时的即时发送。

引脚占用

ESP32-S3(正式版 · 显示 / 菜单 / 无线主机)

引脚 功能 说明
GPIO8 屏幕 RST ST7789 复位
GPIO9 屏幕 DC ST7789 数据/命令
GPIO10 屏幕 CS ST7789 片选
GPIO11 SPI MOSI 屏幕数据(写)
GPIO12 SPI SCK 屏幕时钟
GPIO13 屏幕背光 BL PWM 调光
GPIO43 UART0 TX → Pico RX(GPIO1)
GPIO44 UART0 RX ← Pico TX(GPIO0)
GPIO14 nRF24 CSN 无线片选
GPIO15 nRF24 CE 无线使能
GPIO16 nRF24 SCK 无线时钟
GPIO17 nRF24 MOSI 无线数据(写)
GPIO18 nRF24 MISO 无线数据(读)
GPIO48 板载活动指示 板载 WS2812 数据脚,固件按普通 LED 驱动

Pico(正式版 · 手柄端)

引脚 功能 说明
GPIO0 UART0 TX → ESP32 RX(GPIO44)
GPIO1 UART0 RX ← ESP32 TX(GPIO43)
GPIO2–5 十字键 UP / DOWN / RIGHT / LEFT
GPIO6–13 动作键 B1 / B2 / R2 / L2 / B3 / B4 / R1 / L1
GPIO15 保留 addon 占用
GPIO16–21 功能键 S1 / S2 / L3 / R3 / A1 / A2
GPIO25 链路指示灯 UART ACK 时点亮
GPIO28 WS2812B 数据 RGB 灯带
GPIO29 电池检测 ADC(VSYS/3)
USB 手柄输出 连接电脑/主机

Pico(无线接收端)

引脚 功能 说明
GPIO2 nRF24 SCK 无线时钟
GPIO3 nRF24 MOSI 无线数据(写)
GPIO4 nRF24 MISO 无线数据(读)
GPIO5 nRF24 CSN 无线片选
GPIO6 nRF24 CE 无线使能
GPIO25 链路/配对指示灯 状态指示
USB 手柄输出 连接电脑/主机

Pico(Lite 版 · 单 Pico + 单色屏)

引脚 功能 说明
GPIO0 / GPIO1 I2C 屏幕 SDA / SCL(128×64 单色屏)
GPIO2–5 十字键 UP / DOWN / RIGHT / LEFT
GPIO6–13 动作键 B1 / B2 / R2 / L2 / B3 / B4 / R1 / L1
GPIO14 TURBO 连发键
GPIO15 TURBO LED 连发指示灯
GPIO16–21 功能键 S1 / S2 / L3 / R3 / A1 / A2
GPIO28 WS2812B 数据 RGB 灯带
USB 手柄输出 连接电脑/主机(保留 Web 配置)

About

基于GP-2040CE的新时代无线全彩屏幕固件 Full-color screen firmware for next-generation wireless controllers based on the GP-2040CE.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages