Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

E-Ink Studio Demo

PC → Wi-Fi → ESP32-S3 → SSD1677 墨水屏:在桌面程序里选图、 调参数、预览 800×480 黑白效果,一键推到墨水屏显示。

独立项目——不依赖 InkSight 的后端/数据库/账号体系;仅复用其已验证的 SSD1677 底层驱动(firmware/src/display/ssd1677.cpp,真机验证 + 双 agent 审查)。

硬件

件 说明
ESP32-S3 N16R8(16MB flash + 8MB PSRAM) PlatformIO esp32-s3-devkitc-1
Waveshare 4.26" e-Paper(SSD1677,800×480 黑白)
手机充电器 / 独立 5V 电源 ⚠️ 必需!电脑 USB 供电不足会让 WiFi 启动棕出复位

接线(MOSI=11 SCK=12 CS=10 DC=9 RST=8 BUSY=7 PWR=6):见 wiring.md。

目录

eink-studio/
├── pc/                  # Python PySide6 桌面端
│   ├── main.py          #   入口
│   ├── ui/              #   界面
│   ├── image/           #   处理管线 (fit→gray→threshold→invert→pack1bpp)
│   │                    #   预留 dither() 抖动接口
│   ├── protocol/        #   24B header + CRC32 打包
│   └── transport/       #   HTTP 客户端(QNetworkAccessManager)
├── firmware/            # PlatformIO + Arduino
│   └── src/
│       ├── main.cpp     # WiFi→屏显IP(splash)→mDNS→HTTP待命
│       ├── display/     # SSD1677 驱动(原样抽自已验证代码)
│       ├── net/         # 手写最小 HTTP 服务(D3, 二进制安全)
│       └── protocol/    # 包解析 + CRC32
├── protocol/protocol.md # ★ 线协议文档(双端对齐的唯一事实源)
└── docs/DEVIATIONS.md   # 方案偏离记录(D1 mDNS / D2 屏显IP / D3 弃WebServer)

使用步骤

0. 环境(PC)

cd pc 对应仓库根(eink-studio/)
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt

1. 配置并烧录固件

编辑 firmware/include/config.h,把占位值改成你的 Wi-Fi 信息:

#define WIFI_SSID     "你的WiFi"
#define WIFI_PASSWORD "你的密码"
cd firmware
pio run -t upload            # 板子接电脑 USB(仅烧录时)
pio device monitor           # 看 IP/日志

烧录后拔掉 USB、改插充电器(必须)。开机后墨水屏会显示本机 IP, 例如 192.168.1.120(⚠️ 以开机画面为准,路由器换地址需重启设备)。 同一局域网内也可试 eink-s3.local(Windows 对 mDNS 支持时好时坏,IP 永远可用)。

2. 运行 PC 端

.venv\Scripts\python -m pc.main
  1. 输入屏幕上显示的 IP(或 eink-s3.local)
  2. Test Connection → 显示 Online
  3. Open Image 选 PNG/JPG → 调 Fit Mode / Threshold / Invert 实时预览
  4. Send → PC 提示发送成功,墨水屏 ~2 秒内刷新

协议摘要

见 protocol/protocol.md。核心:24 字节小端 Header (魔数/尺寸/格式/CRC32)+ 48000 字节黑白位图或 96000 字节 4 级灰度位图。

蓝牙状态

仓库包含 BLE GATT 固件和 PC 传输界面,Android 可发现设备广播; Windows 端扫描、连接和图片发送尚未完成真机验证。建议先使用 Wi-Fi。

已知约束(故意为之,Demo 原则)

  • WiFi 凭据写死在 config.h(无配网门户)
  • 单设备、单连接、无鉴权
  • 无 OTA / 无深度睡眠(HTTP 服务常驻)
  • 无局部刷新(每次全刷,有黑闪属正常)

故障排查

现象 排查
开机反复重启 是否用了电脑 USB 供电?换充电器。
屏幕没显示 IP WiFi 连不上(查 SSID/密码);串口 monitor 看日志。
Test Connection 失败 电脑和设备要在同一 WiFi;检查 IP;防火墙拦出站少见但可查。
Send 失败 crc mismatch 升级过协议而另一端没同步刷固件/装包。
pip PySide6 后启动报 DLL load failed 用 PySide6==6.5.3;详见 DEVIATIONS.md 外注记。

未来扩展点(已留口)

  • ImageProcessor.dither() — 抖动灰阶
  • protocol FLAGS 位 — 新图像格式
  • transport 抽象层 — USB/双设备

致谢与许可

SSD1677 驱动基于 InkSight 的 MIT 许可代码改编,原许可见 INKSIGHT_LICENSE.txt。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages