Color TFT Display Recommendations

Hi Everyone,

Wondering if anyone has a some color TFT display recommendations. Screen should:

  • Function with Photon
  • Have a readily available library
  • Minimize the # of pins used

I’m specifically looking for something between 4 and 5" diagonally.

Thanks for your help,


Looked at any of these threads (and displays they refer to) yet?
Anyone got experience with >4 inch displays?
LCD / TFT / OLED Displays : What works, What Doesn't
[Submission] Adafruit HX8357 and 4-Wire-Touchscreen library
ITEADLIB_Nextion published on Particle Build

@casche, with a large display like the one you want, I recommend a display with its own display memory and ideally, be “smart”. You may want to consider the Nextion HMI displays which are intelligent and use serial communications. also has some large TFT display but I’m not sure if there are any libraries available for them. 4D Systems make great smart displays but they are quite expensive.

1 Like

I also recommend the Nextion HMI displays because they are high resolution screens with external memory and drivers which will allow you to make really nice looking interfaces without worrying about running of of memory on these small micro controllers.

Plus the Nextion software for creating the user interface is included. I have not used the software much but others on here have so at least you can ask for help if you get stuck using it.

Here is some data on the Nextion screens and software if your interested:

1 Like

The Nextion is nice for a touchscreen LCD. It works well for anything unless you want to send it dynamic images. Otherwise, it allows for primitive drawing/text, different controllable objects for numbers, text, buttons, sliders, gauges layered on a static background image, and has a sort of logic language. It kind of reminds me of a skin/theme kit. It takes a lot of small chopped images and fonts assigned to all the objects to make it look good, and that’s the bulk of the work. Just make sure you get a USB to TTL adapter to flash it from the editor.

1 Like

Hey Everyone,

thanks a lot for the quick responses!

@ScruffR I had looked at those threads for some time but I figured I would ask explicitly to see if anything has changed! Thanks, it’s a good round up for anyone searching on the topic.

@peekay123, @RWB, @CuriousTech The Nextion is one I had looked at. My concern was that without a Windows computer I would not be able to use it. However, as @CuriousTech clarified

it allows for primitive drawing/text

This will meet my requirements just fine!

Thanks everyone.

@casche, though it does allow for primitive drawing/text, you will need to use the editor to configure the display. The primitives it supports are very basic. You may want to consider other displays. If you can settle with a 2.6" display, you may want to look at Digole units.

Yeah, it needs setup first. It comes programmed with an interactive demo, with pages showing all the features which would need to be replaced with at minimum a black background, some fonts at different sizes, and probably a script to enable raw touch coordinates to be sent (although all the commands including that one can be sent over serial). It’s really designed more for taking care of drawing graphics fast while just a few bytes are transferred. Too much of that will likely be much slower than directly drawing to an LCD.

1 Like

@casche, you may want to consider this unit with an RA8875 controller. There are arduino libraries which could be ported and the controller supports a good list of graphics primitives and has an onboard microSD socket. It is available with I2C or SPI interface.

This library seems like a good candidate for porting (if necessary!) :smile:

@peekay123 Your link to the Buydisplay LCD didn’t show up.

1 Like

Hey thanks the replies @peekay123, @CuriousTech.

Ok so there’s the Nextion route and also the TFT + controller route. Have either of you tried i2C or SPI for a display of that size? how is the rendering speed?

There’s also some 16 bit serial TFT’s. Are you aware if anyone has tried one of those with a MCP23017 to extend the # of pins?

Thanks again,


The Adafruit HX8357 I linked is SPI and 320x240 BMP from SD took short of a second to “render”

@casche, when you refer to 16bit TFTs, I assume you mean PARALLEL and not SERIAL. Rendering speed is really dependent on the type of display you are using. Parallel displays are very fast BUT require a lot of GPIO pins. Using an I2C GPIO expander will limit your speed to the I2C bus speed. With I2C running at 400KHz and roughly 8 clock cycles per byte, that will yeild about 50KB/s. SPI running at 4.5MHz (could be higher) will provide 562.5KB/s.

The real question is what do you plan to do with the display? For menus, simple GUI animations and data presentation, the Nextion is great. It can handle a decent data update speed and offload a lot of the processing from the Photon.

This is excellent!

The display will be used for the following:

  • PID control/input of 2 circuits (temperature)
  • Readout of 4 DS18B20’s
  • on/off of 4 other circuits

I cannot foresee the necessity of updating more than one per second. I’m not quite sure how the text is represented in memory, but assuming it’s just 1 word per character we’re not really talking about a lot of data.

There are displays that have builtin text rendering and others where text is just treated as graphics, requiring to “draw each pixel” in the text area.

So the chosen display also impacts the amount of data you’d be transfering.

@casche, the Nextion is perfectly suited to that application. You can also use a non-HMI display. If you don’t need touch capability, any display using the GFX or mfGFX library will work very well over SPI. However, (and as @ScruffR pointed out) these libraries are pixel based so rendering time is affected by how much display information you are updating. In your case, I don’t foresee any problems.