martinberlin / CalEPD

Epaper ESP-IDF component with GFX capabilities and multi SPI support
https://fasani.de
Apache License 2.0
94 stars 11 forks source link

Inkplate 6 #4

Closed Gearme closed 3 years ago

Gearme commented 3 years ago

I'd like to try out the library with an Inkplate 6 - if memory serves, you mentioned in CALE that you already support it, right? Any chance of hints for the necessary settings?

martinberlin commented 3 years ago

I will be checking this. But I must say not really sure if this will run out of the box. If I see this right the Inkplate guys are using a MCP23017 in the middle (As Bus IO expander) Reference: https://github.com/e-radionicacom/Inkplate-Arduino-library/blob/master/src/include/Mcp.h

And the problem is, I still didn't found the reference on how all this works, probably doing a deep code review of their Repository may do the trick.

So I'm not sure how it will be possible to make this work. Not sure if the control lines are wired directly or via the MCP data bus, so it will be tricky. REFER to: https://github.com/vroland/epdiy/blob/master/components/epd_driver/ed097oc4.h / Config Reggister Control /

define CFG_DATA GPIO_NUM_23

define CFG_CLK GPIO_NUM_18

if defined(CONFIG_EPD_BOARD_REVISION_LILYGO_T5_47)

define CFG_STR GPIO_NUM_0

else

define CFG_STR GPIO_NUM_19

endif

/ Control Lines /

define CKV GPIO_NUM_25

define STH GPIO_NUM_26

define V4_LATCH_ENABLE GPIO_NUM_15

/ Edges /

define CKH GPIO_NUM_5

A part of the 8 parallel data lines, this epapers need a Config to be sent, and for that they use another 3 lines. I don't see this reflected on the Inkplate, so I'm not really sure if it will ever wake up.

PINS

define WAKEUP 3

define PWRUP 4

define VCOM 5

CKV 01 SPH 02 LE 04 // Latch enable DATA PINS v Inkplate6 vs EPDiy pins pinMode(4, OUTPUT); // 0 33 -> Epdiy uses completely different pins, they do not have support for Inkplate PCB pinMode(5, OUTPUT); // 1 32 pinMode(18, OUTPUT);// 2 4 pinMode(19, OUTPUT);// 3 0 pinMode(23, OUTPUT);// 4 2 pinMode(25, OUTPUT);// 5 27 pinMode(26, OUTPUT);// 6 21 pinMode(27, OUTPUT);// 7 22

As a resume, if you are willing to do a deep research, we can try this out. But at first sight, does not look like an easy task (Just change PIN reference, compile, etc) And more like a research first to see how Inkplate works, how is this MCP databus implemented, and if it really has something to do with Config data lines or not, etc. Maybe I'm missing part of the picture and its just there because they don't have extra pins for the touchpad or external sensors I really don't know. Let me know what is your opinion about this.

martinberlin commented 3 years ago

By the way I just made a repository to support Inklate with Aruino-esp32 here: https://github.com/martinberlin/inkplate-platformio

That's really why I mentioned is supported. Since they have already a demo on downloading a BMP image, so you can simply use the image Url provided by cale and link it. I must say the image part is a bit weak and it just makes like 3 request to download a single image (That is an innecesary battery consumption) Just to compile it fast using Platformio. You can just uncomment this source and compile, after adding your Cale.es image URL src_dir = examples/CALE.cpp

https://github.com/martinberlin/inkplate-platformio/blob/master/platformio.ini

martinberlin commented 3 years ago

Closing this one. Just reopen if you have more questions