Read the 66 pages again. Search for MEGA AND e-paper. Don't power on before you have understood about 5V Arduino pins to not connect directly. Note that the Waveshare demo uses different pins than GxEPD and GxEPD2.
Pay attention to where SPI pins are on MEGA.
Arduino MEGA users get on my nerves, trying to use these e-paper displays.
ZinggJM:
Read the 66 pages again. Search for MEGA AND e-paper. Don't power on before you have understood about 5V Arduino pins to not connect directly. Note that the Waveshare demo uses different pins than GxEPD and GxEPD2.
Pay attention to where SPI pins are on MEGA.
Arduino MEGA users get on my nerves, trying to use these e-paper displays.
Hy ZingglM
I do understand that my knowledge regarding arduino is as my status indicates 'newbie'
That's why iam here for, to find Edison Members like you that may have had alike problems and can give helpful advise.
"Pay attention to where SPI pins are on MEGA." Thanks for that info, I will look in to it.
Building a voltage divider should be manageable. I will look in to the pinning
ZinggJM: Connecting these e-papers to Arduino MEGA
You can use the e-papers with the same mapping suggestion as for Arduino UNO, but CLK(SCK) and DIN(MOSI) need to be connected either to the corresponding pin on the 6 pin ICSP header, or to the SPI pins on the double row header, 52, 51.
Connect the power line to 3.3V and protect the data lines either with level converters or voltage dividers.
Simple series resistors will not work or not work reliable! I use 2/3 voltage dividers with 4k7 to 10k resistors, see picture.
Sry for my late response.
It's a little bit hard for me to follow the red wires on your board.
How are the connections on the backside of your prototype expansion board?
I've figured out the following connections.
Can you telle me, if correct or wrong?
you nearly got it, for your Arduino MEGA 2560 (in bold for other readers).
DIN is to MOSI, either on ICSP MOSI or 36 pin header D51 (same pin of MEGA)
CLK is to SCK, either on ICSP SCK or 36 pin header D52 (same pin of MEGA)
CS is to SS, on36 pin header D53 for default parameter SS
BUSY is to D7 for default parameter, can be any other pin, if you change the constructor parameter
CS can be to any other pin, if you change the constructor parameter.
My board also works with UNO, therefore I chose D10.
Your voltage dividers are correct. BUSY doesn't need a divider, but also works with one.
I use the series resistor on BUSY, in case the pin could be set as output be a previously loaded program.
On my proto board I have also connected ISCP MISO, for the connector for a SD card reader.
I use simple solder bridges where I need to connect neighbour points, on the backside.
CS is not on ICSP is correct. Sorry, I didn't check. DC not needed? is wrong. RST not needed? is not wrong, but use is recommended.
Edit:
Can you post the backside please?
I could, but don't want to, as Arduino MEGA users get on my nerves and I spend too much time for this.
In my humble opinion it should be enough to tell Arduino MEGA users, they need voltage dividers for data lines, and need to look up where the SPI pins are on Arduino MEGA.
All other pins can be used as suggested for AVR, Arduino UNO.
In the post by TenchiMuyo1984 four posts ago, there is a diagram to use resistors to drive a 3.3v e-paper display from a 5v Arduino. I tried driving the WaveShare 2.13" tri-color display using GxEPD2_Example with the following connections and changes:
I have got the Adafruit Feather Huzzah ESP 8266 working now with the Waveshare 2.9 Inch E-Paper display. I had tried the previously suggested pin setup but that was giving me a espcomm sync error whenever i tried to do an upload:
Hello,
I have problems doing partial update.
My intention is to do something like a clock, however I am not able to do the partial update.
My display is the 1.54inch B or 3 colors.
I already activated the partial mode in the library and the fast partial, I do not notice difference when doing the update.
And with my code, it does not update only part of the screen makes full update.
For example with your library, I am using this code.
Can you help me?
example my code.{
for (int i = 0; i <= 10; i++) {
display.setRotation(1);
display.setFont(&FreeMonoBold9pt7b);
display.setTextColor(GxEPD_BLACK);
display.setPartialWindow(50, 50, 60, 60);
display.setCursor(60, 60); //display.fillScreen(GxEPD_WHITE);//When I use this function it clears the entire window
display.println(i);
display.nextPage();
}
}
And in your library I changed the following fields:{
void refresh(bool partial_update_mode = true);
static const bool hasPartialUpdate = true;
static const bool hasFastPartialUpdate = false; or true Because my screen is three colors ...
}
Yes, all other small 3-color e-paper displays supported by GxEPD or GxEPD2 have partial update support, but no 3-color has fast partial update, also known as differential update.
BTW, the 1.54" 3-color 154x154 has partial update support, but is only supported by GxEPD, not by GxEPD2, as I don't have it.
As your "display has faded", it seems SPI has worked, at least partly.
You should observe diagnostic output in serial monitor; post it using code brackets.
I use the IDE's built in serial monitor. The baud rate in the Serial.begin(9600) is apparently overridden by the display.init(115200) so that is the rate I use.
It is apparently timing out waiting for the busy line. Am I correct in thinking that this line is from the display to the Arduino? Is it safe to connect this signal directly to the 5v Arduino? I'm thinking that it is because the e-paper outputs 3.3v and this is above the threshold for the Arduino to accept it as a HIGH signal.
Post a link to your e-paper display. It may be different from the one I have and the code is for.
I bought it from eBay, but because I don't know how long a link to that will stick around it is the same as this one from Amazon.
Okay, I put in a bi-directional level-shifter on the BUSY line and now that doesn't time out. The display still doesn't update but I get the following text:
I uncommented the Serial.print and Serial.println in the original code which is why there is additional information in the output.
On my breadboard I checked the resistor connections with a multimeter. The resistors are connected as in the schematic above (a few posts ago).
I even went to using all level-shifters, making sure that the BUSY line is still on a bi-directional line. Are there any other lines that need to be bi-directional?
It could be that I applied some wrong voltage and burned out the display (or it arrived with a problem). What else should I try to make sure that it works? I already verified that the Arduino's SPI interface works by attaching another SPI peripheral, but not at the same time.