LCD / TFT / OLED Displays : What works, What Doesn't

Hey guys,

In my other thread “Using an I2C / SPI LCD on the Spark Core” a lot of good info changes hands about displays. I thought it might be nice to look at what ones we have working and keep a master list of hints / tips.

So far, I have the three listed below on my short list. You are all welcome to add / correct.


This thread mentions a working Digole library port. As almost all Digole displays within a family are compatible - this should signal a significant number of options. The specific screen mentioned is the 1.3" OLED White. There is hope that the Color OLED will also work.

Adafruit: Monochrome 128x32 I2C OLED graphic display #931 - NEEDS PORT

I2C compatible, library needs to be ported.

Adafruit: I2C / SPI character LCD backpack #292 - UNSTABLE

I2C / SPI compatible. I am using it paired with the RGB backlight negative LCD 16x2 + extras - RGB on black and it is unfortunately unstable. My test code (thanks @BDub) is here.

It is unclear if the issue is the LCD or the backpack, but both test units work finr on an Arduino Uno.


Hey I wrote a port of the Arduino code that was available for this OLED display:

My code is here:

I hope that is helpful, the OLED only cost me $19 and its contrast is fantastic.

1 Like

I have the Adafruit SSD1351 library now running on the core. Works with Adafruits original OLED breakout board and the colour breakout board from Ilsoft.

@TimB - In December you mentioned working on an extensible TFT and LCD “library” and generic drawing library for Spark. I see you released the Digole library - what’s the status on the more extensible version? I am happy to try add support for the SDD1351.

Kitard, Digole displays have on-board PIC processors that handle all display primitives and use text commands over UART, I2C or SPI. So that library is very specific to those displays.

Yes saw that when I reviewed the code, hence looking for something more generic. I had assumed when Tim made the original comment that there was something in the pipe that would allow for a driver library to be written to interface to the display, and then display primitives to handle drawing.

For the digole display this works out to be pretty simple, and thus a fairly small implementation. For others (like the SSD1351) we obviously need to be able to provide the basic drawing primitives (point, hline, vline etc).

If nothing is planned then I will stick to what I have (it works) but would have been happy to help extend a generic library.


Kitard, I was considering porting UTFT or ug8lib. It may be useful depending on the type of display you are using. Any thoughts?

Hi Peekay - ug8lib was actually something I was considering. I have no real preference - just struck me that there must be a better way to implement these libraries by splitting the display specifics from the graphical primitives so we can easily adapt on the :spark:.

Nice demo here of UTFT on the 1351.

I find the u8glib to be more flexible and universal, especially with fonts and display orientation. However, its bigger, uses more RAM and probably won’t be easy to setup on the web IDE. Digole uses an adapted version of that library on their PIC controllers I believe. What’s nice about u8glib is that is supports a LOT of displays and its fast. I will give a shot at putting it together to see how many resources it takes. :smile:

Hi Kitard.

I’m working on a project that uses the spark and the Adafruit 1351.

I’ve been having some difficulty in porting the SSD1351 library for use with the spark over SPI. Specifically, I am uncertain of how to replace the various Arduino only functions that are included in the library.

You mention that you have the library running on the core. I am curious if you could offer direction on how you accomplished this, and if possible, it would be extremely helpful to get a look at the ported library.

@asav, if @Kitard doesn’t get back to you, I can help you with the library. :smile:

Hi asav - want to PM me you email address and I will zip and send the code I have. Its a little large for the forum.


1 Like

@peekay - could you please send the lib for Adafruit SSD 1351. Also let me know if ported libs are available for Adafruit GFX.


@peekay123 Would the work with this library?

@clay, absolutely!

@peekay123, have you heard of/used pixels/UTFT with pixelmeister? I would like to use this for the ILI9341 TFT’s. This library supports anti aliasing and full color bmp pictures.

1 Like

@wesner0019, never heard of it but porting the Pixels library to Particle looks feasible. :grinning:

1 Like


It looks like UTFT has all the fun functionality Type Font and multicolor bitmaps.Do you know of any ported UTFT libraries too?

@peekay123, after looking into the code some more the Pixels library seems to support true type and multicolor bitmaps. It even has a function to within pixelmeister to create compressed bitmaps to reduce size.

What would it take to port this library over for just the ILI3941 driver?

@wesner0019, time!

1 Like

@peekay123, I am wondering if this is something that can be undertaken by you or if one my team members (@hine) can help you with? He knows programming fairly well but not sure if he’s ported libraries before.

We would really like to experiment with this library so that our graphic designer can make some nice looking graphics and font for our display in our product.

Any help would be tremendously helpful!! We are receiving our first 250 run of prototypes mid January.