I see that the maix boards have connections for lcd output. I’d like to know if this mode could be used to clock data into an eink display. THe eink display i use needs has 8 pins for data and a pin for clock.
I’m currently working on my custom board with Sipeed M1 module and ED060XC3 6" (1024x758) parallel e-paper display.
It will be released probably next month on GitHub as an open firmware project.
I’ve done some tests and the results are very promissing.
The board also has an ESP32 used for WiFi (over SPI interface) and the power management with <10 uA deep sleep mode.
Display refresh times are very good, 0.1 - 0.6 seconds …
HI thanks for reply.
That sounds really good, so you are using the LCD output pins to send the data to the display?
Have you heard of the epdiy project? he made an eink controller board which has a esp32-wrover, and he is also integrating the vendor waveform for some displays. I made a screen mirroring application that uses that board and driver to use displays like the ED060XC3 as pc monitors. It’s pretty fast, for monochrome, but to do greyscale the 20mbps of the wifi transfer are not really enough. So we were looking for some other way to transfer the data faster, hence i was looking into the maix boards.
If you would like you can join us in slack:
this is the link for my eink pc monitor application:
Yes, the K210 LCD pins are used (in 8-bit spi mode).
My project is inspired by Epdiy project (which is probably inspired by some much earlier works, like http://essentialscrap.com/eink/ and http://spritesmods.com/?art=einkdisplay).
The hardware part is slightly different. I’m testing two different approaches for generating the needed voltages, the first similar to the Epdiy (but with digital potentiometer for Vcom) and second with the specialized chip, TPS65185RGZR. The second one is probably better (and it is even cheaper).
Yes i’ve heard about the TPS65185RGZR, seems like a good choice. So you are writing the software side in C++? I don’t think the python framework could give enough freedom for driving an eink display. Do you know if the Sipeed M1 has any way to get data fast from the pc to it? Something maybe in 8 bit parallel mode? I was wondering if we could use the camera input to get the data in from the pc using an ft232h in 245 fifo mode which can go up to 40mb/s
I tried the ft232h in 245 sync mode to send data directly to the display but since we can only send 300 bytes at a time since that’s the size of a row of pixels in the display we were testing, each call to the function to start a transfer added too much delay. It would seem that that mode is made to transfer larger amounts of data. On the other hand if we could send the data to the sipeed m1 we could send an entire framebuffer in one go, and write it to the display with the lcd pins
K210 camera inputs (DVP pins) could be used for input from th PC but you should be able to generate all the signals which are expected by DVP peripheral (XCLK, HSYNC, VSYNC). I’ve done some testing trying to use it as a simple paralel input port (generaating clock and sync signals by K210) and it can work.
I’m using my own (heavily modified) K210 FreeRTOS SDK. All e-paper drivers are written in plain C.
It is mostly intended to be part of my own port of MicroPython for K210, but it can also be used as standalone library.
If you need a standalone ED060XC3 (or similar) controller board to be connected to the PC you can also try IT8951 controller (ProgrammingGuide), it has SPI and USB interfaces and the price is not to high (10 - 15 US$).
M5Stack has a nice product based on it, the M5Paper. There are some schematicss (m5paper, waveshare) which can be useful for designing the standalone board.
K210 SPI slave peripheral could be also used for PC comunication. It only works in 1-bit half duplex mode, up to ~26 MHz clock. It works very well (with my modified driver), so ~3 MB can be transfered per second, which could be enough for e-paper images…
If I may ask - what did you modify/improve in your FreeRTOS SDK?