Anyone used a Good Display e-ink 2.13"?

I am looking to try and accelerate development - with this model GDEW0213Z16. This is tri-colour. Thanks

@armor, I just made a mesh weather project with the Waveshare 2.9b and have a 2.9 two-colour display on order. What exactly are you looking for?

1 Like

I just received 4 Good Display brand 2.13" e-ink screens (212 x 104 pixels) tri-colour with a SPI interface board. I would like to use a proven library (with Adafruit GFX support?). Thanks

@armor, you might want to check out this library. I’ll be testing it on my Waveshare display in the next few days.

1 Like

@peekay123 Thanks - I didn’t look further than Arduino in the Github it has support for all the Good Display e-paper displays.

1 Like

Fair warning! The tri-color eInk displays are extremely slow to update, particularly the second color. This had a low user-acceptance factor for me.


The monochrome Waveshare 2.9b has a good update speed and supports partial refresh, which I haven’t tested yet. I have a three-colour unit on order so I can’t speak to its update speed.

@peekay123 I had a look at ZinggJM’s GxEPD on Github. Actually GxEPD2 appears to be more suitable. I have never seen anything as complicated with support for +10 displays and numerous boards/processors. I would appreciate some guidance with getting this translated from Arduino into the Particle world.

@armor that is a u8glib-esque library with a varied folder structure. I will need to test compiling it with Workbench to see how much porting is needed.

@peekay123 I thought u8glib was for OLED displays? There are definitely references to Adafruit_GFX in this and it proposes to support Arduino devices? The build errors I am getting show that there are no functions to support setCursor(), drawChar(), println() and others but not all GFX primitives. That is why I am a bit confused. The library you first mentioned appeared to be even less portable.

@armor, I called it u8glib-“esque” as it reminds me of the same configuration methods. To be honest, I don’t worry about Arduino portability but if that’s important to you then there may be lots of work to do to make it work with Particle devices. I am testing it with Workbench to gauge how much work.

1 Like

Happy to share where I have got to - maybe you can see through what I am missing?

1 Like

Looking for help/advice about how to get this to compile - gxepd2.ino to be able to test a GoodDisplay 2.13" b/w/r e-paper display.

I am now getting 3 errors

Error 1 - not sure how I can get into this community library and why does it have a fault - wrong version?
Error 2 - this is the code snippet

I don’t understand what line 351 is doing.
Error 3 - I understand that display.setFont(&FreeMonoBold9pt7b); is called and that setFont is not defined in the header file, the creation of the class is the bit I am confused about.

I think to remember seeing similar issues with other libraries that declare their own version of swap().
Try #undef swap before defining your own.

I’d usually write lines 351 & 352 this way

template <typename T>
static inline void swap(T & a, T & b)

Maybe this clears up some of the confusion, and only leaves the template line for discussion.
I’m not sure how adept you are with C++, but that is a feature to allow writing one implementation of a function that can deal with multiple different datatypes instead of writing multiple ones for each thinkable datatype.

1 Like

@ScruffR Thanks Adafruit_GFX.h contains this #define swap(a, b) { int16_t t = a; a = b; b = t; } so the change you suggested has cleared 2 errors. I am not that adept with C++ vs. C - thanks for the explanation which is clear.

I am just left now with a mystery about why the Adafruit_GFX library does not contain a method setFont - I bet that is in Adafruit_mfGFX! Or rather why Adafruit_GFX is included rather than Adafruit_mfGFX.

1 Like

@armor, I would suggest you use the Adafruit_GFX_RK library which is the newer Adafruit_GFX library adapted by @rickkas7. It has both the setFont() function and the FreeMonoBold9pt7b font as well.


Thanks all!


@armor, can you share your adapted library? It would save me a lot of time :wink:

Sure - I have hacked the libraries for a 2.13" colour display so you would need to replace for you display. There is still a lot of unused code .h and .cpp files - I will try and tidy it up.

I need to understand how these work - the black text takes a couple of flashes to settle and red takes longer - something to do with writing pages to the screen.

1 Like

Do you have any free samples for the community to try out and share on here with others?

1 Like