One thing to think about is how the display is going to be used. How big do you need it to be, and will you need touch screen support?
If it will be used outdoors where people wear polarized sunglasses, TFT LCD displays tend to have one orientation where it is hard to read the display (or impossible, depending on the polarized glasses, display, etc.
OLED displays tend to not have problems with polarization, but they tend to only be available in certain sizes. Even if they are available for the same size as a TFT display, they tend to be more expensive. The OLED 128x128 pixel displays that I have experience with have a slower refresh rate than the TFT displays. I found I needed to slow down the display in order to allow to use a Teensy 3.6 at full speed.
Finally if you only update the display occasionally but don't want the display's contents to vanish if the display loses power, you might want to look at the e-paper or e-ink displays. These displays take a bit of time to display the screen. Many black & white displays will update in a few seconds, the displays with black, red, and white colors will take at least 15 seconds to display things.
Besides the output type, another factor is whether the display needs to be refreshed from the microprocessor's memory periodically or whether the display has a built-in microprocessor that takes input in a stream from spi, i2c, or uart, and the microprocessor does the management of the screen. If the Teensy has to buffer the memory, then that limits the size of the display you can use. In addition, if you have to write out the display each time, it can dramatically slow down the frame rate. If you have a display with its own microprocessor, you can speed things up if you are only updating part of the screen (for example time of day).
Gamdunio3 is one of the companies with displays that have their own microprocessors installed:
Another is dig-ole:
Recently, Adafruit has made a set of e-paper displays that have an additional SPI port of flash memory. So as you are building up the display on the Teensy, the software writes the bits being set to the flash memory. Then when you give the command to write the screen's virtual contents to the real screen, the software then reads small segments from the flash memory and writes them in sequence to the physical display. It is logically slower than buffering the display in the teensy, but you can run it on low memory systems.
There are a few displays where Paul (creator of the Teensy) or other people using the same techniques have optimized the display to use special features on the Teensy 3.2/3.5/3.6 (using dma to write the bits to the display) that dramatically speeds up the display. In order to do this, you need to connect the display to certain pins. Paul sells tested display + touchscreen combinations in the Teensy store:
Note, if you buy the cheap displays from the ebay vendors, don't expect any support on using these displays, and also you should expect some number of failures of the displays.
Adafruit, Sparkfun, and PJRC do spend some amount of time writing modules for their displays.
There are 3 main ways to write to a display:
- SPI: You need 3 fixed pins (usually 11-13), and 1-2 pins per display (plus maybe some extra pins for things like reset);
- I2C: You need 2 fixed pins (usually A4/A5). You can have multiple displays as long as each display has a unique address. I2C tends to be a slow protocol;
- UART: You need 1-2 fixed pins that are attached to the <n> serial ports.
There are some displays that had people working on them that seem to be abandoned now. You probably should ask here first before going off on lessor known displays.
Finally for full size displays, you are probably better using something like a Raspaberry Pi, which has more memory, a much faster clock rate, an included graphics processor, and has a HDMI port directly.