ESP32S31_Windows桌面副屏

基于ESP32-S31的Windows桌面副屏

把 ESP32-S31-Korvo-1 开发板变成一块 USB 扩展屏

一根 USB 线插到电脑上,Windows 就多出一块 800 × 480 @ 60 FPS 的显示器,并且同时自带五点触摸屏和 48 kHz 声卡。不需要 HDMI 采集卡,不需要额外供电。

特性

  • 显示:800 × 480 RGB565 面板,最高 60 FPS
  • 触摸:GT1151 五点电容触摸,以 HID 多点触摸设备回报给主机,可直接操作电脑
  • 音频:UAC 声卡:扬声器 + 麦克风,48 kHz / 16 bit / 立体声
  • 连接:单根 USB 线(板载 OTG High-Speed PHY,480 Mbps)
  • 依赖:全部组件已离线内置,编译不需要联网
  • 主机端:Windows 10 / 11,驱动已签名,无需测试模式

工作原理

板子被识别为USB显示设备。Windows IDD 间接显示驱动把桌面画面编码成JPEG通过USB Bulk端点推送给板子;板子使用硬件JPEG解码器解码,直接写入面板帧缓冲。
全程不经过LVGL、不依赖网络栈,流程:收包 → 解码 → 刷屏。触摸、音频分别通过HID、UAC通道传输,三条通路共用一根USB线。
JPEG编码大幅降低传输带宽,解码和刷屏都走硬件通路,所以可以稳定跑到60FPS。帧缓冲、帧池全部放在PSRAM,不占用芯片内部RAM。

上手教程

硬件准备

  • ESP32-S31-Korvo-1 开发板(板载800×480 RGB屏、GT1151触摸、ES8389音频Codec)
  • 高速USB数据线(非纯充电线),连接板子高速OTG口,不要接调试串口
  • Windows 10 / 11 x64 电脑
调试串口和副屏USB是两套独立外设,插上副屏线的同时依然可以查看串口日志。

1. 准备 ESP-IDF 环境

项目基于 ESP-IDF v6.1 验证,推荐使用 EIM 工具安装管理环境。
安装完成后,打开激活好的 IDF 终端。

2. 获取源码

git clone git@github.com:xkk6663/uext_screen.git
cd uext_screen

3. 编译与烧录

idf.py build
idf.py -p COM5 flash monitor

项目sdkconfig已经固化芯片、Flash、分区、PSRAM配置,不需要额外设置。
烧录重启后串口打印 USB Mount 以及帧率信息代表固件正常运行。

4. 安装 Windows 显示驱动

项目使用IDD间接显示驱动实现虚拟显示器,仓库自带已签名驱动包,无需开启系统测试模式。

  1. 板子上电并连接高速USB口
  2. 运行驱动安装程序,按向导完成安装
  3. 打开设备管理器,在显示适配器中确认新设备加载成功
  4. 进入Windows显示设置,即可看到800×480的扩展显示器

如果自动安装失败,可以手动解压驱动包,在设备管理器里指定inf文件路径安装。

5. 扩展屏配置

在Windows显示设置里,选中新增显示器,多显示器模式选择扩展这些显示器,缩放设置为100%,拖动调整屏幕位置。
正常效果:副屏正常显示桌面画面,触摸可以直接操控电脑。

日常使用与调参

  • 触摸:Windows原生识别多点触摸,可在系统触摸设置里校准,支持单指点击拖拽、五点触控
  • 音频:在声音设置里,把输出、输入设备切换为该声卡,即可使用板载扬声器和麦克风
  • 可调参数(menuconfig内配置)
面板为RGB565接口,画质主要由JPEG质量决定:画质越高,单帧数据越大,更容易触发丢帧。

FAQ

  • 找不到新显示器:确认插对高速OTG口、数据线支持数据传输、串口有USB挂载日志、驱动正常安装
  • 帧率偏低:确认电脑是USB2.0及以上接口,JPEG画质不要设置过高;静态画面画面无更新时帧率会自然下降,拖动窗口再测试
  • 触摸偏移:在Windows触摸设置里重新校准触摸
  • 编译报错:使用ESP-IDF v6.1,执行 idf.py fullclean 清理后重新编译
  • 能否免驱动:不能,使用自定义USB厂商协议,需要配套IDD驱动
  • 固件是否会覆盖其他程序:项目使用独立分区表,仅使用factory分区,注意和已有固件分区不冲突

许可与致谢

项目基于 Apache License 2.0 开源。
基于乐鑫官方usb_extend_screen示例改造,重构为独立工程,离线内置全部依赖组件;配套Windows IDD驱动使用社区已签名编译版本;硬件平台为ESP32-S31-Korvo-1开发板。

评论 (0)

评论

登录后即可评论

暂无数据
暂无数据