It seems like many (but not all) of the displays from Waveshare are "spi" interface according to the table. There's often a driver board associated with it, but it's not clear why that's required.
The [7.5inch ePaper HAT Manual](https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT_Manual#Resources) includes some interesting bits about waveforms, which I've heard about. Seems like each batch of panels has slightly different patterns of electricity involved in driving the display. Sometimes these are burned into a driver chip associated with the panel, other times they are stored in a `wbf` file. May be related to LUT
The [6in HD e-Paper HAT](https://www.waveshare.com/wiki/6inch_HD_e-Paper_HAT) apparently uses a parallel interface and needs the `IT8951` chip to drive it.
The IT8951 can do SPI and I2C and another thing. I80, or Intel 8080 parallel. See https://www.displaymodule.com/blogs/knowledge/the-interface-of-8080 for a bit more info.
The wiki page links to this [epaper mode declaration PDF](https://cdn.tahnok.ca/u/E-paper-mode-declaration.pdf), which seems interesting in that it describes the format of the flash device on the display with the waveforms and various modes.
VCom is a voltage that's specific to some panels?
Apparently the 6" HD version is from 2014. [Waveshare datasheet](https://files.waveshare.com/upload/e/e9/6inch_HD_e-Paper_Specification.pdf), and [IT8951E](https://files.waveshare.com/upload/1/18/IT8951_D_V0.2.4.3_20170728.pdf) datasheets and [schematic](https://files.waveshare.com/upload/b/be/E-Paper-IT8951-Driver-HAT-B-Schematic.pdf)
Here's a [blog post with some details about EInk waveforms](https://goodereader.com/blog/e-paper/e-ink-waveforms-are-a-closely-guarded-secret) that talks about the "Regal Waveform Controller", which is apparently used in a lot of modern ereaders. Also mentions that many use "IMX.6 Solo Lite or IMX.7 dual core processor", which is a good indication to keep looking into those. the [HN comments](https://news.ycombinator.com/item?id=17993174) have some good links. For example, [here are E Ink Corp's patents](https://patents.google.com/?assignee=E+Ink+Corp). Here's an [EEVBlog forum post](https://www.eevblog.com/forum/microcontrollers/interfacing-epd-(e-ink)-display-from-kindle-anyone-tried/)
Oh, [Applied Science has an E-Paper hacking video](https://www.youtube.com/watch?v=MsbiO8EAsGw), and a [blog post](https://benkrasnow.blogspot.com/2017/10/fast-partial-refresh-on-42-e-paper.html)
[This Essential Scap site](https://essentialscrap.com/eink/), seems to have a good in depth dive.
Waveshare also has a 7.5"HD screen. [Datasheet](https://files.waveshare.com/upload/2/27/7inch_HD_e-Paper_Specification.pdf)
Switching gears to dig into the Openbook a bit more.
Original BOM calls for this [GDEW042T2](https://buy-lcd.com/products/42inch-e-inkanel-spi-interface-buy-eaper-display), which is no longer for sale. Replacement is this [GDEY042T81](https://buy-lcd.com/products/42-inch-e-paper-display-morochrome-spi-e-ink-for-digital-price-tags-gdey042t91-578), which has a different driver. There's also a variant with back light and touch screen, the [GDEY0421T81-FT02](https://buy-lcd.com/products/42-inch-e-paper-display-fast-update-morochrome-spi-e-ink-with-touch-and-front-light-gdey042t81-ft02), which is what I'd be interested in. Looks like AliExpress has larger GDEY screens.
There's an "HD" screen that's 5.76 inches that seems interesting with a SPI interface. Here's the [GDEH0576T81 datasheet](https://cdn.tahnok.ca/u/GDEH0576T81.pdf), this one looks like it might be worth ordering, along with a GDEY screen too.
[Driver ICs for EPD](https://cursedhardware.github.io/epd-driver-ic/), lists a bunch of different chips capable of driving EPD, along with mirrored datasheets. Also an awesome looking repo of datasheet and driver details and buses. eg: [24pin SPI](https://github.com/CursedHardware/epd-datasheet/blob/main/PINOUT/SPI-24PIN.md), which seems to match some of the pinouts from GooDisplay.
Anyway, that implies that if I used this GooDisplay screens, which probably include a driver chip of some kind, you can interface with them using only SPI, so basically anything can talk to them. Unclear what the bandwidth necessary to drive it would look like, or what gets sent over SPI. It must be like a fully bitmap to render.
[Here's a kernel patch that seems abandoned](https://lore.kernel.org/all/
[email protected]/) to add epdc driver support to the linux kernel for the RK3566/RK3568 rockchip SoC.
This [patch series is for the i.MX6SL and i.MX6SLL](https://lore.kernel.org/lkml/
[email protected]/T/) is also of interest since I think something from that family is my top contender for an SoC. Also not merged though.
[i.MX6SL](https://www.nxp.com/products/i.MX6SL) vs [i.MX6SLL](https://www.nxp.com/products/i.MX6SLL). Both are ARM A9, but I think adding the extra L makes it more recent and maybe more upgraded. Sadly only one has a [0.65mm pitch BGA](https://www.nxp.com/part/MCIMX6V2CVM08AB#/), which is a bit scary... 0.8mm is what is in this [embedded linux SoC overview](https://jaycarlson.net/embedded-linux/#imx6). That said, it seems like the [i.MX6S](https://www.nxp.com/part/MCIMX6U8DVM10AD#/) and [i.MX6DL](https://www.nxp.com/products/i.MX6DL) are available in 0.8mm and the second one is the DUAL core variant of the i.MX6SL which seems handy, but it's $27 / chip in quantities of $100! According to the parametric search [those are the only 2 i.MX](https://www.nxp.com/products/product-selector:PRODUCT-SELECTOR?category=c731_c380_c127&page=1&nrnd=false&query=%7B%22h645%22%3A%7B%22operator%22%3A%22OR%22%2C%22values%22%3A%5B%220.8%22%5D%2C%22name%22%3A%22Package%20Pitch%20(mm)%22%7D%2C%22h356%22%3A%7B%22operator%22%3A%22OR%22%2C%22values%22%3A%5B%22E-paper%20display%22%5D%2C%22name%22%3A%22Video%2FDisplay%20features%22%7D%7D) in 0.8mm pitch with an EPDC. But what is the EPDC?
The [i.MX6S i.MX6DL reference manual](https://cdn.tahnok.ca/u/IMX6SDLRM.pdf) has a chapter on EPDC.
> The EPDC is designed to directly drive EPD panels which typically expose the source
and gate driver IC interfaces
This checks out as there's a lot of pins in a table. 16 data lines + 10 "Source Driver-Chip" lines, and many other interupt, power, etc.. pins
Requires waveform data to be in memory.
Supports multiple pixel depths (2bit, 4bit)
LVDS is a possible way to drive panels?
Also there's "dual scan" modes where some high refresh panels have 2 sets of source drivers.
Pretty low level. Using this peripheral seems to be in the [IMX Linux reference manual](https://www.nxp.com/docs/en/reference-manual/IMX_REFERENCE_MANUAL.pdf). Uses a framebuffer to draw into, but there's a custom "refresh" command. Lives in `/dev/fb0`. `drivers/video/fbdev/mxc/mxc_epdc_fb.c`. Also refers to the linux kernel docs on [framebuffers](https://www.kernel.org/doc/Documentation/fb/framebuffer.txt). They use `ioctls` from `include/linux/mxcfb_epdc.h` as a way to enable partial updates, and waiting to know when a refresh is done.
There's an [i.MX 7 saber dev board](https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/sabre-board-for-smart-devices-based-on-the-i-mx-7dual-applications-processors:MCIMX7SABRE) which has an epaper connector...