Glider 开源墨水屏显示器

一款开源墨水屏显示器,支持75 Hz刷新率、低延迟、支持33pin、34pin、39pin、50pin多种屏幕

Glider 开源墨水屏显示器封面
dianzi_01012026-02-03 10:54:44CERN Open Hardware License
369
Star

PCBA
该项目存在多块PCBA,可切换查看

主控板
屏幕转接板

设计文件

KiCad图标mainboard.zip6.85MB

其他附件

EDA查看器

复制嵌入代码

详细介绍

项目概述

Glider 几乎包含了制作一台开放硬件电子纸显示器所需的一切,具备快速的75 Hz刷新率、低延迟、多种屏幕更新配置、多种图像模式和灵活抖动选项。它可以通过microHDMI或TYPE-C连接,并且支持Linux、macOS和Windows。我们提供6英寸和13英寸单色套件,均由同一显示屏控制器驱动,也可与其他面板使用。

我们为墨水屏驱动控制器单独设计一款开源的基于FPGA的电泳屏显示控制器Caster EPDC,专为低延迟性能打造,能够驱动电子纸屏幕实现高达 60 Hz 的刷新率。通过将屏幕划分为多个更新区域,Caster 能够即时处理并显示新的图像或文本,无需等待前序更新完成。由于每个像素均受独立管理,结合早期取消技术 (Early Cancellation),确保了像素在接收到新数据时能立即做出响应。最终,该墨水屏驱动控制器在呈现动态内容和流畅交互时,能提供丝滑的响应速度、高帧率以及卓越的对比度。

手里有闲置吃灰的电子纸屏幕,还是想为你的项目找个显示方案?我们的墨水屏驱动控制器让这一切变得简单。该控制器具有极强的兼容性,支持从 6 英寸到 13.3 英寸、涵盖黑白及彩色的多种屏幕,让你轻松连接并复用手头的显示资源。配合我们提供的显示器外壳设计文件,你还可以打造出一款完美契合项目需求的定制化外壳。

功能特性

  • 低延迟/高刷新率墨水屏(EPD)显示器完整解决方案

  • 广泛的面板支持: 支持采用并行接口(Parallel I/F)的电泳显示面板(包括 EInk®、OED 和 DES)。

  • 兼容黑白与彩色: 同时支持纯黑白屏幕及基于彩色滤光片阵列(如 Kaleido™)的彩色屏幕。

  • 极致低延迟: 内部处理延迟低于 20 μs(微秒)。

  • 多种灰度输出模式: 支持2阶、4 阶、 16 阶灰度输出模式。

  • 延迟优化驱动模式: 针对2阶、4 阶灰度驱动模式进行了延迟优化。

  • 混合自动驱动模式: 支持2阶和16 阶灰度自动切换的混合驱动模式。

  • 灵活控制: 主机端软件可在运行时实时控制局部更新与模式切换。

  • 硬件级抖动算法: 内置硬件级拜耳抖动(Bayer)、蓝噪声抖动(Blue-noise)及误差扩散抖动(Error-diffusion),且不产生额外延迟。

  • 标准信号输入: 控制器采用标准 HVsync 信号输入。

  • 丰富的接口设计: 支持 TYPE-C 及 DVI(microHDMI) 输入。

硬件

  • FPGA 主控: 搭载运行 Caster 的 Xilinx® Spartan-6 LX16 FPGA

  • 显存: DDR3-800 帧缓冲内存(Framebuffer)

  • 视频输入 1: 支持 Type-C DisplayPort Alt-Mode,板载 PTN3460 DP-LVDS 桥接芯片

  • 视频输入 2: 支持 DVI(通过 microHDMI 接口),板载 ADV7611 解码器

  • 供电系统: 专用的电子纸电源,+/-15V电压,支持高达 1A 的峰值电流,可驱动大尺寸面板

  • 电压调优: 带 VCOM 回扫电压检测功能

  • 辅助微控制器: 板载 STM32H750 MCU,用于 USB 通信及固件升级

  • 处理速率: 开启抖动算法时高达 133MP/s,关闭时超过 200MP/s

  • 开发环境: 硬件工程基于 KiCad 设计。您可能需要最新稳定版本的 KiCad 来打开源文件。

pcb

本项目使用KiCAD 8.0 设计了 PCB,为了获得最佳效果,使用了1080 PP的 4 层叠层结构设计,但 2313 或 3313 叠层也是可以接受的。

兼容屏幕

Modos Dev Kit 提供两种屏幕选项:13.3 英寸 1600x1200 和 6 英寸 1404x1072。不过,该板还可以驱动其他面板。有关不同屏幕面板类型之间的差异,请参见 屏幕面板

不同的屏幕面板配备不同的连接器,若在主板上集成所有类型的屏幕连接器会占用大量空间。因此我们设计了一款多引脚定义的屏幕转接板,以适配更多屏幕。


主板采用 50 针 + 16 针连接器组合方案。单 50 针连接器即可适配 8 位 / 16 位屏幕,16 针连接器则额外拓展了对 LVDS 屏幕及 32 位 / 64 位屏幕的支持。


Mega 适配器 1:最常见的屏幕

  • 33P-A: ED097OC1-4/TC1

  • 34P-A: ED060XC3/XD4/XG1 etc.
    34P-A:ED060XC3/XD4/XG1 等

  • 39P-A: ED133UT1-3 ED050SU3 etc.
    39P-A:ED133UT1-3 ED050SU3 等

  • 40P-A/B: ED078KC1 ED103TC2 etc. (A inserts with contact facing down, B inserts with contact facing up)
    40P-A/B:ED078KC1 ED103TC2 等。(A 插头的接触面朝下,B 插头的接触面朝上)

  • 50P-A: ED113TC1

要查看哪款适配器可能适合您的屏幕,请参阅 附录 1 - 屏幕列表

MCU 固件

构建MCU固件:

安装 STM32CubeIDE

该软件可在ST官网免费获取:https://www.st.com/en/development-tools/stm32cubeide.html。它支持所有三大主要作系统。

克隆Glider仓库

该仓库可以通过以下方式克隆:

git clone --recursive https://gitlab.com/zephray/Glider.git

确保用递归标志来克隆子模块。

构建MCU固件

  1. 打开 STM32CubeIDE,用任意工作区路径启动(默认即可)

  2. 在菜单中,点击File -> Open projects from file systems

  3. 点击按钮然后选择,点击Directory...Glider/fwOpen

  4. 它应该扫描文件夹并识别为项目,点击Finish

  5. 在左侧的窗格中,点击项目高亮Project Explorerglider_ec_rtos

  6. 点击工具栏中的建造图标(或菜单中,Project -> Build Project)

  7. 它应该能正确构建。如果它抱怨缺少 tusb.h,说明子模块没有被克隆(可能是因为缺少了标志,或者是从网页下载的)。输出是--recursiveGlider/fw/Debug/glider_ec_rtos.bin

固件烧录

刷固件的方法:

  • 安装dfu-util(例如,或apt install dfu-utilbrew install dfu-util)

  • 把按钮靠近USB接口,插上USB线

  • 使用两种方法中的一种来完成烧录过程

方法1:使用提供的烧录工具

  • 确保你有一个 Python 3 环境,并且可以安装包

  • 通过运行安装 Python 包hidapipip3 install hidapi

  • 将目录更改到已编译的比特流和固件中并复制utils/flash_toolfpga.bitglider_ec_rtos.bin

  • 运行这个工具python3 flash.py

方法二:手动烧录

  • 执行命令,系统应检测到 2 个 DFU 设备: sudo dfu-util -l

  • 执行以下命令进行烧录: sudo dfu-util -a 0 -i 0 -s 0x08000000:leave -D glider_ec_rtos.bin

  • 随后应显示: File downloaded successfully(文件下载成功)。

  • 重新插拔 USB 线缆,以重启并进入新固件。

  • 此时板卡应被识别为一个 USB 串口设备: (请检查 /dev/tty*。在 macOS 上通常类似于 /dev/tty.usbmodem...;在 Linux 上通常为 /dev/ttyACM0)。

  • 使用串口终端软件连接板卡: (推荐:Linux 使用 minicom,macOS 使用 coolterm,Windows 使用 Tera Term)。

  • 现在您已进入 Glider 的 Shell 环境。 按下回车键应显示 # 提示符。输入 ver 命令,系统应返回新的构建日期与时间。

  • 使用 Shell 更新 FPGA 的位流文件(Bitstream): 在 Shell 中输入命令 recv fpga.bit

    recv 是通过 XMODEM 协议接收文件的命令;fpga.bit 是保存的文件名,文件将保存至板载闪存中)。

  • 随后板卡将进入等待传输状态:

    • Minicom (Linux): 按下 Meta-S(Ctrl-A,然后按 S)打开上传菜单。选择 xmodem,接着选择 top.bit 文件进行传输。建立连接可能需要约 2 秒。

    • 注意: 若 10 秒内未开始传输则会超时,如发生超时,只需重新执行 recv 命令即可。

    • 其他软件: 同样使用其内置的 Xmodem 传输功能发送文件。

  • 位流文件传输完成后,固件升级即告完成。

  • 如果是首次安装: 请使用与传输位流文件相同的方法,传输字体文件 (font_24x40.bin)。

License

硬件设计 CERN-OHL-S

固件代码 MIT license

仓库 & 下载

https://github.com/Modos-Labs/Glider