横屏版esp32-s2做的usb迷你显示器,用于rpi,linux server很轻快

15 篇文章 2 订阅
12 篇文章 0 订阅

最近在用树莓派,然而没有配置好网络,得看下IP,才好操作。然后得抱大显示器,连上电源线,还要转换一下HDMI2VGA,如果只有一个显示器,得挪用,的确很麻烦。

于是想加一个小显示屏,显示出IP信息。后来觉得这个方案还是有点别扭。刚好esp32-s2有USB otg,做一个小尺寸的320*240的小显示器应该是可行的。

速度慢,帧率低点也行的。然后上google找了找,居然找到一个开源项目。



GitHub - robopeak/rpusbdisp: Drivers and Tools for RoboPeak Mini USB Display Project

项目做得挺早的,2013年,然后看了一下,只有上位机软件,下位机是用stm32做的,没开源下位机。

方案架构是fb kernel driver ->usb->display device

 也公布了协议。

有这个基础,省事。下位机再找几个开源项目改改应该就成了。B站上面有很多小电视,做得挺好的。

然后几周过去了,做了一个原型机,还可以,就是帧率慢,如果全屏刷新只有2.xFPS。因为fb只会更新需要的区域,所以有时候FPS会比较高。

然后一顿借鉴开源项目:目前还有几个严重的问题,方案大体上没啥大问题。我的目标是全屏8FPS,略有点卡,实际操作还能接受。

借鉴开源项目如下:

1.GitHub - robopeak/rpusbdisp: Drivers and Tools for RoboPeak Mini USB Display Project 

上位机内核模块,目前将它的RLE改为jpeg方案来获得更新的帧率。esp32s2是full speed只有12MHz的总线带宽,实现大约能到4Mbps,也就是500KByteps(通常400KBps多点,偶尔接近500KBps)。

2. git://github.com/Bodmer/TFT_eSPI.git     

借鉴DMA传SPI屏的数据。降低CPU开销,在解码jpeg时,DMA传输数据上次的解码数据,将300ms一帧减少到了120ms。提升很明显。

3. GitHub - nopnop2002/esp-idf-ili9340: SPI TFT Driver for esp-idf

借鉴SPI屏的驱动,然后裁得只剩个架子了。删除大部分。

4.git://github.com/serge-rgb/TinyJPEG.git

主机linux 内核编码jpeg,它原来是float浮点实现,我改成了整数,也让我重新认识了单位元e,1是特别的。就这个jpeg encoder我找了好几个项目,还是这个好。还能配置quality.

5. TJpgDec

esp32s2用的jpeg解码代码,很轻快。还有一个esp32专用版本。我还是改了一下。整合了DMA,觉得挺合适。

6. esp-idf + tiny USB

反正没有我要的,然后自己改改了vendor,还可以。

7. xserver

这也是挺坑的,挖了坑才用上的,估计还要挖坑。

最后:

大体上快收工了,国庆发一版本到github上,供大家参考。当然还有文档和方案架构。

有没有用esp32s3做24FPS的小伙伴?那货是双核。

 

横屏版esp32-s2做的usb迷你显示器,60块钱的原型机,还是有不小的优化空间的_哔哩哔哩_bilibili有几年没搞windows了,搭环境费事,数字签名不好搞,已经没有key了https://www.bilibili.com/video/BV1Eq4y1f7Hk?spm_id_from=333.999.0.0

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值