@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. Buydisplay.com 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.
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.
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.
@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
@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.
@casche, you may want to consider this BuyDisplay.com 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!)
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?
@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.
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.