Help with 3-color SSD1680 controller

Hi,
This is my first try with EPD displays. Got that Lolin 3-color display and driving it with ESP32 board.

First, in arduino I can't get it running using GxEPD2. Would appreciate help how to configure it. GxEPD2 seems to be the better library. I'd like to understand if it supports partial update and refresh with reduced flicker (when used on this driver/panel combo).

The display runs using Lolin's own library, but flickers like crazy during update. I understand this is the waveform which could be tweaked and allow smoother update. Any hints how to get smoother update with this driver?

Thanks

@gdanov

Hi, welcome to the forum! Thank you for providing links, already with your first post!

And thank you for the link to this e-paper display; I was not aware that this manufacturer (one of my favorites) provides an e-paper display.

The e-paper display most likely has this e-paper panel:
2.13 inch color eink 250x122 HD e-paper display module, GDEY0213Z98.

No, it doesn't support partial refresh, see also on the Good Display page. The controller has partial window addressing capability, but no partial window refresh. It supports differential refresh with b/w panels, so it supports partial update on b/w panels (you don't notice that the whole display is refreshed).

All 3-color displays (of the technology used) need waveforms that produce heavy flicker, to move the black and the red particles to the front or back, depending on their size and dependence on electric field. The black particles need be pulled back when pulling the red to the front, in a repetitive sequence.

The Lolin's library doesn't have a waveform table to load to registers, so it uses a waveform table programmed in OTP. The waveform table can't be read out afaik, so it can't be modified easily.
I tried to modify a waveform table for a different 3-color display, but could not reduce flicker time much, and the result was considerably less good.

This e-paper panel is not supported by GxEPD2. But I just ordered the Lolin e-paper display.

Jean-Marc

Thanks a lot!

I actually managed to have decent success (after long night) and right now use it as b/w display with differential update, flicker free. I could use it as b/w/Red as well with what I have but some transitions are very hard to clean-up (require several screen updates) and frankly red is not that big of priority ATM.

Somewhere in some thread (sorry, don't remember which) it was advised to check GxEPD2_290_T94_V2 for SSD1680 waveforms. I stole the LUT from there, tweaked it a bit with lots of guessing and ATM I have differential refresh that takes 5secs. If I forget about Red I would bring down the time to <2 secs I guess.

The biggest kick (for me) is that I implemented this using Espruino :slight_smile:
But your library has been very important reference for me, also for the init codes and the rest of the logic. The 122 point width gave me lots of headache until I figured out the padding.

If someone's interested I can send reference to the waveforms. I wish I could fetch the original ones, but as you say there seems to be no way to do this.

Any idea what voltages need to be applied for each pigment to go back or forth? My reading & experimenting shows that VS=0b11 brings out the red, 0b01 black, 0b10 white. 0b00 seems to do nothing?

Table 6-6 : VS[nX-LUTm] settings for Source voltage and VCOM voltage
VS[nX-LUTm] Source voltage VCOM voltage
00 VSS DCVCOM
01 VSH1 VSH1 + DCVCOM
10 VSL VSL + DCVCOM
11 VSH2 N/A

I did not look in detail at the format and coding of the wavetable of SSD controllers.

Yes, this clearly is the coding for the low positive voltage phase for pulling (preferably) the red particles to the front. VSH1 is the higher positive voltage phase for pulling black to the front, VSL the higher negative voltage phase for pulling either particles to the back.

Thanks once again.

I'll stay away from the red for now. Bought the display for $10 and that's already good enough deal even if I use it b/w. Thanks to the waveforms I copied from your code the panel behaves perfectly.

hello. i was very happy to see that you added the lolin 2.13 tricolor eink display. could you share how the wiring should be done and/or the settings in the display selection new style file? i tried the wiring from your documentation for wemos d1 mini, but i dont get it to work :pensive: any help would be appreciated. maybe i was doing something wrong in the display selection new style file... the display class i chose 3c, display driver GxEPD2_DRIVER_CLASS GxEPD2_213_Z98c and for esp8622 i chose MAX_DISPLAY_BUFFER_SIZE 34000ul. i also tried different pins but never got it to work.

@denization, Hi, welcome to the forum!

Please read How to get the best out of this forum if you haven't done yet.

Did you try with GxEPD2_Example with these selections and the suggested wiring?
Did you take a look at diagnostic output in Serial Monitor? You could post this in a code window, please.

I don't know of any esp8622. I think you mean ESP8266. I am sure I tested with Wemos D1 mini.

Jean-Marc

hey jm

thanks for your reply. yes, i meant the esp8266 the wemos d1 mini uses. i was a bit in a hurry. i should have taken my time to structure the post better.

im sorry, im a novice when it comes to arduino (hardware and programming). therefore, i dont always understand what i exactly do and do a lot of trial and error :face_with_open_eyes_and_hand_over_mouth: im currently workign on my first project. yesterday, i tried the GxEPD2_MinimumExample and couldnt get it to run. i thought it should display "hello world".

now i tried the GxEPD2_Example and i think it worked all fine! the display showed a lot of different texts / images. took about 10 minutes and ended with "setup done" in the serial monitor.

very happy now to explore your library a bit more. i hope it offers a lot more flexibility than the lolin_epd library :slightly_smiling_face:

thanks for your support! regards