Skip to content

psdscsv/esp32_usb_over_ip

Repository files navigation

ESP32 usb over ip

license device

一个基于开源项目 usbipdcpp_esp32 的增强版本,专注于优化和稳定 USB/IP 协议在 ESP32S3 上的数据传输。

原项目实现了基础框架。本项目着重解决了在实际应用中遇到的数据传输稳定性、兼容性和性能瓶颈问题,旨在提供一个可用于更稳定场景的生产力工具或开发基础。

📑 目录


✨ 主要特性

  • 设备兼容性:测试支持U盘(可能失败,写入大于60kb的文件会直接出错),有线鼠标/键盘,usb串口工具,STlink
  • 连接速度:u盘连接后需要30s才能完成,STlink烧录需要30s左右。
  • PCB尺寸:22mm*28mm,无按钮,1个LED用于指示

🚀 快速开始

  1. 硬件准备:一个esp32s3,我使用的型号是N16R8,只有IO18、19是必须使用的,其余引脚只是用于LED指示和按钮检测。
  2. 软件准备:安装ESP-IDF V5.5.1。
  3. 获取代码git clone https://github.com/psdscsv/esp32_usb_over_ip.git
  4. 配置项目:进入目录,运行 idf.py set-target esp32s3选择开发板。
  5. 编译与烧录:编译烧录...
  6. 网络连接:可以设置设备连接电脑的热点(速度稍慢),也可以直接连接设备的热点(名称:“登录-192.168.4.1”,速度最快)
  7. 客户端连接:往设备插入一个usb设备,在 windows的usbip_win2 客户端连接 ESP32-S3 的 IP 地址(如果是设备连接电脑热点,可以在电脑的热点设置找到设备的ip;如果是电脑连接设备热点,输入192.168.4.1即可)。

📊 更新日志

[v0.2.2] - 2026-3-31

速率提升plus

  • tcp间隔从10ms改为1ms,以传输速率优先。目前因内存不足attach大容量存储设备有可能失败
  • stlink烧录f1芯片需要31秒
  • 现在可以向大容量存储设备写入,但由于内存不足,写入大文件必定失败
  • 更换了普通的led灯,取消了按钮

[v0.2.1] - 2026-3-18

传输修复

  • 修复了Bulk OUT 传输长度默认为0的问题
  • 实现了STlink的连接,可以在keil5检测并烧录,f103烧录简单的LED灯需要90s
  • 测试了有线鼠标、串口模块,可以正常使用,但会卡顿

[v0.2.0] - 2026-3-7

速率提升

  • 提升了传输的速率,
  • tcp间隔从250ms修改为10ms,传输延迟大幅降低
  • esp32连接u盘,服务端从开始连接到显示u盘文件目录,需要30秒
  • u盘中的文件表现仍为只读,修改等操作会卡死
  • 增大了数据传输量,可以达到247kb/s(两台电脑进行同样的操作,得到的传输数据量是499kb/s)

[v0.1.1] - 2026-1-31

交互增强

  • 增加了灯光指示,增加了WiFi连接界面
  • led-红色:尝试连接wifi;黄色:启动热点,用户可以连接“登录-192.168.4.1”,并打开浏览器输入192.168.4.1进入配网界面,输入wifi名和密码;蓝色:开始共享设备(另外配网模式会等待30秒,之后无论有没有连接都会开始共享)
  • esp32连接u盘,服务端从开始连接到显示u盘文件目录,需要160秒
  • u盘中的文件表现为只读,修改等操作会卡死
  • 增大了数据传输量,可以达到15kb/s

[v0.1.0] - 2026-1-28

首次发布

  • 从原项目 usbipdcpp_esp32 分叉并进行增强
  • 修复了因数据传输包大于设备缓冲区导致的卡死

📝 许可证与致谢

许可证

  • 本项目基于 Apache License Version 2.0 开源。

致谢

  • 衷心感谢原项目作者 yunsmall 及的工作。
  • 感谢 USB/IP 协议的开源社区及 Espressif 提供的 ESP-IDF 框架。

💡 开发透明度声明

本项目在开发过程中,使用了 AI 编程助手进行部分代码的构思、重构和文档撰写,以提高开发效率。项目的核心逻辑、关键优化及最终实现均由开发者验证、测试并负责。 这段话也是AI生成的

About

使用esp32s3实现usbip服务器

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors