I have added this OLED to libDaisy. The way the library was structured this was very easy. Kudos to Electrosmith for such a nice architecture. I have forked libDaisy and am prepared to make a pull-request.

I am currently adding this OLED.

To make a gray scale / color OLED work in the current architecture, I fix gray scale (or color). To add color will require a new template(?). My thinking is to add color as a function (e.g., SetColorFG() / SetColorBG()). This could work for both color and gray scale devices. Also, there should be a function for loading an image onto the OLED (color or b/w).

Aside: The one thing about the template architecture: it’s difficult to debug. I’m a little old-school: I use Segger Ozone for debug / test. It’s not much to look at but works great with Segger J-Link. It doesn’t look like much, but it’s the business. It’s really fast and relatively intuitive. However, it doesn’t grok templates. It doesn’t allow breakpoints in template-based expansion. This isn’t really a deal-breaker, but it is inconvenient.

I think there should be a new file in hid/display/oled_display_color.h that adds color capabilities to libDaisy and the specific drivers for these OLEDs in the dev directory. Thoughts?

To me, these changes seem obvious, and I was surprised there weren’t all kinds of OLEDs in the dev directory (color & b/w). Is there a need for this, or did I miss something?



libDaisy really needs support for more OLED displays. Thank you for sharing your drivers, much appreciated! Hopefully your PR will be merged soon.

This all sounds great, @a7v7!
Please feel free to open a PR and we’ll review and merge when we get the chance! Thank you so much for your contributions to the community!

I’m ready to do a pull-request. Before I start, I have question. What’s the best label / branch to use?
There’s a master branch and there are tags like 7.0.1. There doesn’t seem to be any releases around the tags…

Currently, I’m planning on using master.



Hey ACV!

It depends on the repository, but it’s standard to target the master branch for a PR for libDaisy.

Thanks for the note.
I have submitted the pull-request on the master branch.

The pull-request branch is new-oleds.

Thanks again,


1 Like