Go Down

Topic: Good Dispay ePaper for Arduino (Read 75181 times) previous topic - next topic

gchart

@ZinggJM  Firstly, thank you for this great library.  It is immensely helpful!

I think there is a bug in the GxEPD2_213_B72 and GxEPD2_213_B73 definitions.  You have them as being 250x128 pixels.  But according to GoodDisplay (and my testing with the B73) they are actually 250x122 pixels.

References:
http://www.e-paper-display.com/products_detail/productId=423.html
http://www.e-paper-display.com/products_detail/productId=458.html

ZinggJM

@ZinggJM  Firstly, thank you for this great library.  It is immensely helpful!

I think there is a bug in the GxEPD2_213_B72 and GxEPD2_213_B73 definitions.  You have them as being 250x128 pixels.  But according to GoodDisplay (and my testing with the B73) they are actually 250x122 pixels.

References:
http://www.e-paper-display.com/products_detail/productId=423.html
http://www.e-paper-display.com/products_detail/productId=458.html
You are correct. But this is not a bug, it is a design decision. The width in the controller buffer is 128, which is a multiple of 8, but only 122 pixels are visible. Width of 128 is easier to handle.

GDE0213B1 is handled with width of 122 in the library GxEPD.

Jean-Marc
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

gchart

Ahh, ok.  I'll just make sure to be careful with positioning and the usage of display.height().  Thanks for the quick reply!

strange_v

Hello.
I've just noticed that good-display sells some displays with touch-screen, e.g. GDEW027W3-T.

@ZinggJM do you know something about how to use that touch-screen or maybe what controller they use?

On the GDEW027W3-T datasheet, I found only pinout:
1 - GND
2 - INT
3 - RST
4 - VDD
5 - SCL
6 - SDA

ZinggJM

@strange_v,

I don't know, but you could just ask Good Display sales support, they are willing to help.

Maybe you find a clue in the demo code:

demo code for 2.7'' touch panel
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

strange_v

@ZinggJM, thank you!

I haven't noticed this demo code. Based on it I could say that they use FocalTech FT6336(G) capacitive touch panel controller. The datasheet is available, so now I can try to use this display.

ZweiEuro

@ZinggJM

I have been trying to get the GDEW0213Z16 to run. You list your library as supporting so I assume i am not at the completely wrong address.
I am just very very confused on the pins ?
I am using a nodeMCU V1.0 so essentially i am using an ESP8266
so i assume this line is the one i am looking for:
Code: [Select]
``` GxEPD2_BW<GxEPD2_213_flex, GxEPD2_213_flex::HEIGHT> display(GxEPD2_213_flex(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEW0213I5F ```

But then again I am really not sure as the last view characters don't match up, I have found the full name of the display used in the library but couldn't backtrack what pins to use from that point.

I am trying to run the whole thing via the GDE021/DESTM32-S2 display driver, for which you have made a small text with the pinout (and jumper position) and marked the display down as "usable" with this driver.
Though when it comes to connecting i am completely lost:


This is your message i am tralking about:
 DESTM32-S2 pinout (top, component side view):
      |-------------------------------------------------
      |  VCC  |o o| VCC 5V
      |  GND  |o o| GND
      |  3.3  |o o| 3.3V
      |  nc   |o o| nc
      |  nc   |o o| nc
      |  nc   |o o| nc
      |  MOSI |o o| CLK
      |  DC   |o o| D/C
      |  RST  |o o| BUSY
      |  nc   |o o| BS
      |-------------------------------------------------

CS = D8    ... What CS?
From what i could gather there is no CS? (chip select), or did the name change?  Can't find anything with the instructions from good displays either. CS from the NodeMCU? but what does D8 stand for ?

CD=D3, ok
3,3 to 3.3 and GND to GND, ok
RST = D4, OK
BUSY=D2 ,OK
BS = GND , you mentioned this somewhere, can't find it right now though
.... and the others? as it stands MOSI, CLK, D/C

If i try falling back onto some other instructions from waveshare or similar products, i don'T really know what to connect stuff to either because of this section:
Code: [Select]
```
// mapping suggestion from Waveshare SPI e-Paper to generic ESP8266
// BUSY -> GPIO4, RST -> GPIO2, DC -> GPIO0, CS -> GPIO15, CLK -> GPIO14, DIN -> GPIO13, GND -> GND, 3.3V -> 3.3V
// NOTE: connect 4.7k pull-down from GPIO15 to GND if your board or shield has level converters
// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, use different pin in case, or 4k7 pull-down

// mapping of Waveshare e-Paper ESP8266 Driver Board
// BUSY -> GPIO16, RST -> GPIO5, DC -> GPIO4, CS -> GPIO15, CLK -> GPIO14, DIN -> GPIO13, GND -> GND, 3.3V -> 3.3V
// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, use different pin in case
```

As i don't have GPIO and do not know the D# equivalent i am not sure what to do here.

:/ I love your library and have tried reading into it more and the lib from Adafruit, but i can't even get the demo example (GxEPD2_Example.ino) to run anyways so playing around with it is nearly impossible.

Regards,
Zwei

ZinggJM

#292
Oct 02, 2019, 02:03 pm Last Edit: Oct 02, 2019, 02:24 pm by ZinggJM
@ZweiEuro,

I have read your post, and I will answer soon, but right now I don't have the time.

In the meantime please read the post How to use this forum - please read.

If you provide clickable links to the products you can get an answer faster.

Do preview before post, and put text in code tags that would not be presented correctly.

Code: [Select]
DESTM32-S2 pinout (top, component side view):

         |-------------------------------------------------

         |  VCC  |o o| VCC 5V  not needed

         |  GND  |o o| GND     GND

         |  3.3  |o o| 3.3     3.3V

         |  nc   |o o| nc

         |  nc   |o o| nc

         |  nc   |o o| nc

   MOSI  |  DIN  |o o| CLK     SCK

   SS    |  CS   |o o| DC      e.g. D3

   D4    |  RST  |o o| BUSY    e.g. D2

         |  nc   |o o| BS      GND

         |-------------------------------------------------


Same recommendation for me: remove the extra line breaks! should look like the board.
Code: [Select]
   connection to the e-Paper display is through DESTM32-S2 connection board, available from Good Display

   DESTM32-S2 pinout (top, component side view):

         |-------------------------------------------------
         |  VCC  |o o| VCC 5V  not needed
         |  GND  |o o| GND     GND
         |  3.3  |o o| 3.3     3.3V
         |  nc   |o o| nc
         |  nc   |o o| nc
         |  nc   |o o| nc
   MOSI  |  DIN  |o o| CLK     SCK
   SS    |  CS   |o o| DC      e.g. D3
   D4    |  RST  |o o| BUSY    e.g. D2
         |  nc   |o o| BS      GND
         |-------------------------------------------------
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

ZweiEuro

@ZinggJM

Oh, I read them but i thought the preview was fine since i just copied it from when you posted the same thing earlier.

Thanks for the fast reply. But so others can also find what I mean:
This is the display i am tralking about:
https://www.good-display.com/products_detail/productId=310.html
GDEW0213Z16

With the driver I mentioned:
https://www.good-display.com/products_detail/productId%3D362.html
GDE021/029 DESTM32-S2

My Breakout board for an ESP8266:
NodeMCU Amica
https://roboindia.com/tutorials/nodemcu-amica-esp8266-board-installation/

Which runs the NodeMCU-V1.0 Dev kit:
https://github.com/nodemcu/nodemcu-devkit-v1.0

As far as i can gather the pinouts are quasi exact for the nodeMCU boards




As far as I have understood it, using the above connection names for the nodeMCU i am still unsure where to connect what since it's not really 100% exact:
Code: [Select]

         |-------------------------------------------------
         |  VCC  |o o| VCC 5V  not needed                //ok
         |  GND  |o o| GND     GND                       //ok
         |  3.3  |o o| 3.3     3.3V                      //ok
         |  nc   |o o| nc                                //ok
         |  nc   |o o| nc                                //ok
         |  nc   |o o| nc                                //ok
   MOSI  |  DIN  |o o| CLK     SCK                       //suspect MOSI = MOSI (PIN SD1)  |o o| unclear SCK as in SCLK (PIN CLK) ?
   SS    |  CS   |o o| DC      e.g. D3                   // What is SS supposed to mean? Don't know which pin has that purpose.
   D4    |  RST  |o o| BUSY    e.g. D2                   //ok
         |  nc   |o o| BS      GND                       //ok
         |-------------------------------------------------



I am most lost on SS which without which the board will not turn on (which is clear, but I don't know what SS stands for and what pin may have that purpose?

Sorry for not providing enough context the first time around.



ZinggJM

#294
Oct 02, 2019, 02:56 pm Last Edit: Oct 02, 2019, 03:13 pm by ZinggJM
@ZweiEuro,

First, I need to understand what you have:

GDEW0213Z16 3-color display.

Connection Adapter Board DESTM32-S2-12(Discontinued)

And you want to connect it to a NodeMCU V1.0 (link not searched for).

The NodeMCU V1.0 has the same Dx kind of inking of the pins like the Wemos D1 mini I use.

And I provide a suggested wiring for it in my examples ConnectingHardware.md:

Code: [Select]
#### mapping suggestion from Waveshare SPI e-Paper to ESP8266 NodeMCU:
- BUSY -> D2, RST -> D4, DC -> D3, CS -> D8, CLK -> D5, DIN -> D7, GND -> GND, 3.3V -> 3.3V

its the same as for Wemos D1 mini.

If you need to find the mapping from Dx inking to GPIO numbers, you consult pins_arduino.h of your board:
C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\variants\nodemcu\pins_arduino.h:
Code: [Select]
static const uint8_t D0   = 16;
static const uint8_t D1   = 5;
static const uint8_t D2   = 4;
static const uint8_t D3   = 0;
static const uint8_t D4   = 2;
static const uint8_t D5   = 14;
static const uint8_t D6   = 12;
static const uint8_t D7   = 13;
static const uint8_t D8   = 15;
static const uint8_t D9   = 3;
static const uint8_t D10  = 1;

#include "../generic/common.h"

And in ../generic/common.h you find the SPI pins:

Code: [Select]
#define PIN_SPI_SS   (15)
#define PIN_SPI_MOSI (13)
#define PIN_SPI_MISO (12)
#define PIN_SPI_SCK  (14)

static const uint8_t SS    = PIN_SPI_SS;
static const uint8_t MOSI  = PIN_SPI_MOSI;
static const uint8_t MISO  = PIN_SPI_MISO;
static const uint8_t SCK   = PIN_SPI_SCK;


Now you only need to select/uncomment the correct constructor for your 3-color e-paper:
Code: [Select]
//GxEPD2_3C<GxEPD2_213c, GxEPD2_213c::HEIGHT> display(GxEPD2_213c(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4));


I hope this helps!

Don't send me two Euros, but you could increase my Karma points.

Jean-Marc

Added:

SS and CS are used alternatively for Slave Select or Chip Select.

You can use any free GPIO pin for the CS pin of the e-paper, but there is a pre-defined SS pin for SPI, which is usually used, as it can't be used for anything else if HW SPI is used (on most processors).

The pin you use for e-paper CS must be used as parameter in the constructor, like DC, RST and BUSY.

Quote
//suspect MOSI = MOSI (PIN SD1)  |o o| unclear SCK as in SCLK (PIN CLK) ?
on NodeMCU you need to connect to the HSPI pins, the SDIO pins can't be used (internal sram/flash).
Use HSCLK, HMOSI, HCS.
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

ZweiEuro

#295
Oct 02, 2019, 03:32 pm Last Edit: Oct 02, 2019, 03:38 pm by ZweiEuro
@ZinggJM
Thank you for all the useful information!
I actually wasn't aware that GPIO# are ultimately the numbers used in programming thank you for clearing that up.

I've tried your hardware configuration from the mini before and hoped that if i swapped the class it would function ,sadly no such luck.
I will play around with it some more and will get something soldered together because i do not trust these connections.

Are there any drivers (Dev boards) you recommend in order to try the e ink displays or develop ?
Since you said that the one i was using is not being continued. What are your personal recommendation since you have worked with a lot of them.

Hope the karma is helping :)

Sincerely,
Zwei

EDIT: Nevermind i figured it out:
NOTE: if anyone is trying this, be sure not to swap the two rows... I accidentally mixed them up since there is no real "UP" indicator.
For the board i was using the side where you do not plug the cables into is TOP.
So most likly it worked fine the first time i tried, just swapped the pins

ZinggJM

I now use DESPI-C02 to connect to 3.3V processor boards.

Waveshare has ESP32 and ESP8266 driver boards to connect panels directly, both have drawbacks (unable to use processor deep-sleep on ESP8266 because of BUSY pin, wrong SPI pins on ESP32).
Their Arduino driver shield would be ok, if it had a jumper from 5V to VCC pin, and a 3.3V to 3.3V jumper for use with STM32-Nucleo boards.
Their HAT has marginal e-paper VCC when connected by cable to 3.3V processors, ok through RasPi 3.3V pin.
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

zhongshanliyu

#297
Oct 21, 2019, 04:43 am Last Edit: Oct 22, 2019, 02:00 am by zhongshanliyu
hi ZinggJM, I would like to known did you any plan add GDEW075T7 7.5" b/w/r 800x480 into GxEPD.

because I notify by good display GDEW075T8 7.5" b/w was End-of-life. and i asking to use  GDEW075T7 .

I created a PCB and working good.

thank you.



ZinggJM

Hi zhongshanliyu,

GDEW075Z08 is supported by my library GxEPD2.

GDEW075Z08 is also supported by GxEPD. Version 3.0.8

GDEW075Z08 needs 2 * 800 * 480 / 8 bytes of RAM for full screen graphics buffer.
This means you need to use paged drawing on most processors.
GxEPD2 is better suited for use of paged drawing, as the page buffer size can be selected by the template class parameter page_height.

I intend to add GDEW075T7 7.5" b/w 800 * 480 to GxEPD also, it is supported by GxEPD2.

Did you mean GDEW075T7 ?

Thank you for your question; only by feedback I can know which panels are used with my libraries.

Jean-Marc

PS: if you want to add a picture and have it shown, add it as attachment, post, copy the link of the attached picture, modify the post by adding the picture using the link copied, save the post.
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

zhongshanliyu

Yes, I mean GDEW075T7 for GxEPD.

Go Up