Warning: series resistors may not be enough for some e-paper displays to work with 5V Arduinos!Usually I test for AVR Arduinos with a 3.3V Arduino Pro Mini. But recently I made a proto board for Arduino UNO with series resistors of 4k7 ohms on data lines. I successfully used it with a Nucleo-64 board.
Now I tried to use it with Arduino UNO and a 4.2" b/w board from Waveshare. This did not work, no reaction on the display. The test with the 1.54" b/w board was successful.
I measured the voltage on the 3.3V supply pin on the Arduino that should be supplied from the series regulator on the Arduino board, the resulting voltage was about 4.4V.
The series resistors are enough to back-feed through the protection diodes of the controller to the display, as long as the display is not powered up by command ("high voltage" +-15V generation inactive).
This because the Arduino UNO has no load on the 3.3V supply. The resulting 4.4V is just above the maximum spec of the e-paper controller.
A
2k load on the 3.3V supply reduced the voltage to ~3.4V, but the 4.2" display still did not work.
With the 2k load the 1.54" also no longer works correctly. I then added 10k pull-down resistors to the data lines, resulting in 2/3 voltage dividers.
With this the 4.2" display worked, except for the partial update test part of the GxEPD2_Example.
The reason was the RST signal was not low enough to wake up the controller. There may be a pull-up resistor on that line, I have not yet measured.
Measured: has no pull-up.Using a 4k7 pull-down on RST instead of the 10k fixed this.
Reason unclear, 2k load?My recommendation to use at least series resistors with 5V Arduinos is not sufficient!Additions 23.11.2018:
For 1.54" b/w I recommend to add a 1k resistor between 3.3V and ground, to protect against too high supply voltage caused by back-feed through the 4.7 series resistors on the data lines, and a 10k resistor to gnd on the CLK line to the display. This combination worked on my test, see picture.
For the 4.2" b/w an additional 10k resistor from DIN to gnd made it work.
For Arduino MEGA I had to add another 10k to CS to make it work with the 4.2" b/w
Conclusion: for reliable operation voltage dividers should be used on all input data lines to the e-paper for 5V Arduinos, e.g. 4k7 to 10k to get 3.3V levels, or true level converters.
