简介
使用f1c200s tiny200s货架板+1024*600RGB屏,实现一个win10 USB显示屏。
方案原理:
host: win10加载手撸的IDD显示驱动,编码桌面成jpg,然后usb发送给f1c200s.
dev: f1c200s,接收到完整一帧jpg数据,硬解码yuv,然后软件转成rgb输出给/dev/fb0映射的ram.
b站视频链接
https://b23.tv/UDaOqCa
性能:
1. 黑白模式20pfs.
2. 彩色10fps
已知bug:
1. 似乎f1c200s硬解jpg和usb传输有小概率性冲突。表现就是0.5%的帧解出来会花掉。
开源情况:
1. 开发未完成。预计农历新年github上开源。
参考:
*1.github.com/microsoft/Windows-driver-samples/tree/master/video/IndirectDisplay
*2.git://github.com/roshkins/IddSampleDriver.git
*3.https://whycan.com/t_8114.html baremetal hardware JPEG-decoder example (F1C100S)
*4.https://github.com/aodzip/buildroot-tiny200
已经github上开源: https://github.com/chuanjinpang/win10_idd_xfz1986_usb_graphic_driver_display
最近编辑记录 pcj203 (2023-06-26 10:04:38)
离线
赞啊!我之前也想做这个,无奈没有win的驱动开发能力。楼主的IDD显示驱动可否分享一下。
离线
直接搞成USB显示屏,能用480*272RGB屏吗,再也不用走HDMI了
离线
把F1C200S搞成USB接口转换专用芯片✌
离线
赞啊!我之前也想做这个,无奈没有win的驱动开发能力。楼主的IDD显示驱动可否分享一下。
B站上有esp32 s2单片机做的usb idd显示屏。idd显示驱动已在github上开源。链接在一些视频置顶评论上找。可以参考。
离线
直接搞成USB显示屏,能用480*272RGB屏吗,再也不用走HDMI了
理论上可以用480屏。但是要自己动手移植
离线
好想法,之前简单研究了下,linux下的usb 显示屏,整个源码树里面,就一个驱动,没形成气候,window下,没有免驱方案吗?或者通用驱动
离线
好想法,之前简单研究了下,linux下的usb 显示屏,整个源码树里面,就一个驱动,没形成气候,window下,没有免驱方案吗?或者通用驱动
Window应该是没有免驱,有免驱也会不支持。
自有驱动自由。又不是商业开发。
离线
离线
楼主的驱动好像存在内存泄漏问题,还需要继续填坑啊。
离线
666,有demo视频吗?
离线
离线
楼主的驱动好像存在内存泄漏问题,还需要继续填坑啊。
是的,有内存泄露。你是怎么测出来的?怎么搞的设备端?
泄露的bug已经修了,准备和f1c200一起发。最近公司事多,没空整发布代码,也不想修bug了。
离线
666,这项目软件硬件开源不?开源的话,可以推广一下
最近编辑记录 pcj203 (2023-06-28 17:00:57)
离线
这个项目软件呢,开源了没~~~ 只看到硬件相关~
离线
t123yh 说:666,这项目软件硬件开源不?开源的话,可以推广一下
软件之前是基于 tinyusb 做的,用了 Linux 的 gud 驱动,不过源码找不到了,当时效果也不是特别好。GitHub 仓库的里面的硬件文件可以随意使用,你有兴趣的话可以打板做一套,搭配你写的软件。
离线
话说如果能支持用 h264 传输码流就好了
离线
H264理论上可以上,但是没有人搞。必须上硬解,不然太慢。
我不做硬件,都是用货架品,焊接费事。esp32方案倒是有2个小伙伴立创上开源做了硬件板。
最近编辑记录 pcj203 (2023-06-28 23:14:14)
离线
倒是想找人帮忙设计个3d打印的外壳。这样像成品。大家自己买配件组装。
最近编辑记录 pcj203 (2023-06-28 23:16:48)
离线
480x272 16位色,传未压缩原图,已在F1C100s上实现,达到了60帧,唯一的问题就是驱动存在内存泄漏,每次USB传输的缓冲区不会释放,一秒钟十几MB的内存消耗。
离线
@pcj203
我用之前stm32f070做的aida64小屏幕改的代码,直接传原图的,USBFS 320x240能达到6fps吧。刚刚又在F1C100s上测试了480x272和800x480,效果不错,16bit原图分别能到60帧和20帧。我是Keil跑的裸机。480x272,60帧下几乎没有延迟的。
离线
牛了个神,这个能作为USB副屏用吗?那岂不是树莓派的福音了
480x272 16位色,传未压缩原图,已在F1C100s上实现,达到了60帧,唯一的问题就是驱动存在内存泄漏,每次USB传输的缓冲区不会释放,一秒钟十几MB的内存消耗。
离线
480x272 16位色,传未压缩原图,已在F1C100s上实现,达到了60帧,唯一的问题就是驱动存在内存泄漏,每次USB传输的缓冲区不会释放,一秒钟十几MB的内存消耗。
大佬,这个开源 不~ 当时你的windows驱动也是自己手撸?
离线
可以做局部刷新,我用CH552 USB CDC 刷320*480屏幕,一整张刷下来1秒,如果做局部刷新基本上看不出来抖动,
离线
可以做局部刷新,我用CH552 USB CDC 刷320*480屏幕,一整张刷下来1秒,如果做局部刷新基本上看不出来抖动,
如果cdc的话,还要配一个上位机,去做应用层的桌面捉取。通用性和复杂性就不好了。还是副屏这种高大上~·
离线
可以做局部刷新,我用CH552 USB CDC 刷320*480屏幕,一整张刷下来1秒,如果做局部刷新基本上看不出来抖动,
1秒一帧刷480*320 性能弱了些。
走cdc也古怪了,应该是没有解决window驱动,才走cdc串口通道。
网上有通用USB框架,做专用USB驱动应该能大幅提高性能。
离线
【【开源,粉丝团福利】【arm9单片机自制USB显示屏】阶段4:粉丝团优先体验版发布-哔哩哔哩】 https://b23.tv/Z7w0dB0
[置顶]1. 性能参数1024*600屏,彩色11fps,黑白20fps.
支持运动时切换颜色模式
2.Win10 idd驱动源码
https://github.com/chuanjinpang/win10_idd_xfz1986_usb_display_drv_f1c200s
3.f1c200s usb显示屏源码,基于Linux实现.
https://github.com/chuanjinpang/buildroot-tiny200-qemu
目前是粉丝福利期,粉丝团优先体验,仅对粉丝开源。有一个patch加密了,需解密后编译生成img。readme.md开头就讲了怎么解密patch。感兴趣的可以私信我拿到密码。
4.后期还会有小的修改。非粉丝应该要到明年春节开源。[吃瓜]
最近编辑记录 pcj203 (2023-07-06 08:26:16)
离线
那只是通过USB换显示数据给显示屏而已,如果能做到投屏功能的话多好呀。
离线
按这个驱动的说写法, 说是编码桌面, 这样只能同屏, 不能扩展显示吧?
离线
@香酥肉饼
按照这样算起来:480*272*2*60大约要15MB/S的传输速度呀,是这样吗?如果每一帧压缩成jpg,那么到F1C100s这头要解码后显示,会节省带宽,但会增加延时并影响帧率,是吗?
离线
按这个驱动的说写法, 说是编码桌面, 这样只能同屏, 不能扩展显示吧?
一般是扩展使用,各显示各的, 也都可以copy。在显示设置一下就好了。
离线