VedantParanjape / esp-epaper-display

ESP-IDF component for waveshare epaper displays
Other
23 stars 14 forks source link

Waveshare 2.9 inch ePaper #8

Open dr-glenn opened 2 months ago

dr-glenn commented 2 months ago

Add code for Waveshare 2.9 inch ePaper display module. I don't know which version I have, probably V1 (it has no version designation on it). I am hoping that I can adapt the code you already have for the 2.7 inch display. I asked Waveshare support to send me code, but you might know better how to get the code.

VedantParanjape commented 2 months ago

Sure, go ahead. I will review and merge if you submit a PR. Unfortunately, I don't have hardware for adding support now, as I stopped working on this long time ago.

Husenbeth commented 1 month ago

@dr-glenn did you find out more? how did the contact with Waveshare go? I would also be interested in the code and support working towards it.

dr-glenn commented 1 month ago

I just solved the problem two days ago. I have not posted the code to Github yet, but the fix is simple and I'll explain here. The Arduino IDE version of the Waveshare examples probably calls gpio_config() from ESP-IDF APIs. That step is buried within Arduino IDE code and therefore it took me a while to understand why I couldn't get the example to work in ESP-IDF within Visual Studio Code. Here is the quick rundown:

  1. Delete any includes of Arduino.h and Wire.h
  2. Only use gpio_set_direction, gpio_set_level and gpio_get_level functions. There are some #define (don't remember where, not at my work computer now) that perform the functions direction, get and set, but they use Arduino functions. I expected those two steps would work, and indeed the code will then compile in VS Code. But the example does nothing at all on the ePaper display.
  3. You must call gpio_pin_reset() for each of the pins that are used for the display - and you must call this before gpio_set_direction. Now it works!

Why gpio_pin_reset? Some of the pins default to type of IOMUX and they must be GPIO. gpio_pin_reset changes each pin to GPIO. Instead of gpio_pin_reset(), you can use the more complicated gpio_config().

These code changes are really trivial and you should be able to get the examples to compile and run in VS Code with ESP-IDF in less than 1/2 hour.

On Wed, Jul 17, 2024 at 5:18 AM AlexTheDeveloper @.***> wrote:

@dr-glenn https://github.com/dr-glenn did you find out more? how did the contact with Waveshare go? I would also be interested in the code and support working towards it.

— Reply to this email directly, view it on GitHub https://github.com/VedantParanjape/esp-epaper-display/issues/8#issuecomment-2233183260, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACHQDVLG6HUWBZGL6DG7VNDZMZOHTAVCNFSM6AAAAABKANXF3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZTGE4DGMRWGA . You are receiving this because you were mentioned.Message ID: @.***>

Husenbeth commented 1 month ago

great! @dr-glenn so you are using the original waveshare code from there? Waveshare code: https://www.waveshare.com/wiki/2.9inch_e-Paper_Module_(B)_Manual#Working_With_Arduino

Download link for the code from "Run The Demo": https://files.waveshare.com/upload/7/71/E-Paper_code.zip

Thanks a lot for your support!

dr-glenn commented 1 month ago

I'm not sure which code I'm using, but the link was emailed to me by your support team. I also got the same code for 2.7" V2, modified it in the same way and it works. It seems to me that if you mod the code as I've described, it should compile in either Arduino IDE or VS Code with ESP-IDF - as I said, "Arduino.h" and "Wire.h" will not be needed. There is one difference: Arduino IDE is an INO file with setup() and loop() and VS Code is main.cpp with app_main() - but the code inside setup() or app_main() will be identical!

Some of your Wiki links for ESP32 don't go anywhere. For example, on the page you refer to: https://www.waveshare.com/wiki/2.9inch_e-Paper_Module_(B)_Manual#Working_With_Arduino, "ESP32-8266" does go to to correct info, but the submenus of ESP32 and ESP8266 go nowhere. [image: image.png]

On Thu, Jul 18, 2024 at 7:41 AM AlexTheDeveloper @.***> wrote:

great! @dr-glenn https://github.com/dr-glenn so you are using the original waveshare code from there? Waveshare code:

https://www.waveshare.com/wiki/2.9inch_e-Paper_Module_(B)_Manual#Working_With_Arduino

Download link for the code from "Run The Demo": https://files.waveshare.com/upload/7/71/E-Paper_code.zip

Thanks a lot for your support!

— Reply to this email directly, view it on GitHub https://github.com/VedantParanjape/esp-epaper-display/issues/8#issuecomment-2236755264, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACHQDVLZ5ZLU7TICHYE274TZM7HZXAVCNFSM6AAAAABKANXF3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZWG42TKMRWGQ . You are receiving this because you were mentioned.Message ID: @.***>

Husenbeth commented 1 month ago

I am not from waveshare @dr-glenn Just a person developing a bit in my life.

dr-glenn commented 1 month ago

Oops, I've been receiving emails from Waveshare support and thought this thread was from them.

Husenbeth commented 1 month ago

Hi @dr-glenn it would be awesome if you could provide your code here in the chat of the esp-epaper-display repository. Unfortunately, I can not compile the code which I found in your repository here https://github.com/dr-glenn/esp32_wave29

I myself plan to test more displays such as pervasive displays, also in different sizes.

dr-glenn commented 1 month ago

I've updated the code, it is in my repo under branch "esp-idf-example". I plan to alter the code to use ESP-IDF SPI API instead of he crude bit-banger.

On Fri, Jul 19, 2024 at 4:39 AM AlexTheDeveloper @.***> wrote:

Hi @dr-glenn https://github.com/dr-glenn it would be awesome if you could provide your code here in the chat of the esp-epaper-display repository. Unfortunately, I can not compile the code which I found in your repository here https://github.com/dr-glenn/esp32_wave29

I myself plan to test more displays such as pervasive displays, also in different sizes.

— Reply to this email directly, view it on GitHub https://github.com/VedantParanjape/esp-epaper-display/issues/8#issuecomment-2238957495, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACHQDVPAADBZATCK5XKNUOTZND3FNAVCNFSM6AAAAABKANXF3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZYHE2TONBZGU . You are receiving this because you were mentioned.Message ID: @.***>