简介
使用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显示驱动可否分享一下。
B站上有esp32 s2单片机做的usb idd显示屏。idd显示驱动已在github上开源。链接在一些视频置顶评论上找。可以参考。
离线
直接搞成USB显示屏,能用480*272RGB屏吗,再也不用走HDMI了
理论上可以用480屏。但是要自己动手移植
离线
好想法,之前简单研究了下,linux下的usb 显示屏,整个源码树里面,就一个驱动,没形成气候,window下,没有免驱方案吗?或者通用驱动
Window应该是没有免驱,有免驱也会不支持。
自有驱动自由。又不是商业开发。
离线
666,有demo视频吗?
离线
楼主的驱动好像存在内存泄漏问题,还需要继续填坑啊。
是的,有内存泄露。你是怎么测出来的?怎么搞的设备端?
泄露的bug已经修了,准备和f1c200一起发。最近公司事多,没空整发布代码,也不想修bug了。
离线
666,这项目软件硬件开源不?开源的话,可以推广一下
最近编辑记录 pcj203 (2023-06-28 17:00:57)
离线
H264理论上可以上,但是没有人搞。必须上硬解,不然太慢。
我不做硬件,都是用货架品,焊接费事。esp32方案倒是有2个小伙伴立创上开源做了硬件板。
最近编辑记录 pcj203 (2023-06-28 23:14:14)
离线
倒是想找人帮忙设计个3d打印的外壳。这样像成品。大家自己买配件组装。
最近编辑记录 pcj203 (2023-06-28 23:16:48)
离线
可以做局部刷新,我用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)
离线
按这个驱动的说写法, 说是编码桌面, 这样只能同屏, 不能扩展显示吧?
一般是扩展使用,各显示各的, 也都可以copy。在显示设置一下就好了。
离线