Join Us

Your Name:(required)

Your Password:(required)

Join Us

Your Name:(required)

Your Email:(required)

Your Message :

0/2000

5 Things to Know Before Buying uart tft display

Author: Steve

Mar. 31, 2025

3 0

Any advice for buying a cheap touchscreen TFT 3.5"" display?

Read Bodmer's posts. After all, TFT_eSPI library was written by Bodmer.

If you want to learn more, please visit our website ORIC Electronics.

  1. RaspberryPi shields. (with a parallel ILI driven by a shift register)
  2. BuyDisplay ILI board.
  3. ILI board
  4. R board with access to IM# pins
  5. RM board
  6. Adafruit HXD breakout

(1) is a horrible kludge.
(2) is out of your price range by the time you have added all the "extras"

(4) and (5) have no photos of the pcb. I would like to see what access there is for IM# pins.
Bodmer does not support R or RM.
(6) is expensive.

If you want to go for bare TFT modules, there will be several on AliExpress.

Quite honestly. Most cheap boards are -16 or -8 without any access to IM# pins.

David.

Thanks David
I don't know what a "kludge" is, but "horrible" is sufficient to understand
I had found link #3 already, I was wondering if there was any alternative. BTW, there is no connector for the SD part, do you think it will be functionning if I solder one ?


Another option: should I go for a Nextion, for almost twice the price? Is it supported by TFT_eSPI ?

What are the "IM#" pins?

IM# pins select the interface type e.g. -16 Parallel or 4-wire SPI.
Most modules are hard-wired at manufacture. Punters can not access the pins or change the interface.

(3) looks like the popular Red ILI boards. The ILI always uses 3 bytes per pixel. The ILI uses 2 bytes (but it can also use 3 bytes)
It should fit directly into any headers wired for the Red SPI boards.
The SD should work fine. Just add to the hardware SPI pins on your ESP. Like you would with the Red ILI, ST, ...

I only own (2) which is excellent.

David.

The RPi board and BuyDisplay board David mentions are the only 3.5" SPI displays that I know will work with TFT_eSPI.

The RPi board does have a touch controller that TFT_eSPI supports. You must make sure you order a board that looks exactly like the photo link to be sure it will work. This is one on eBay. These RPi boards work OK but the circuit design limits the SPI rate.

The touch controller on the BuyDisplay board is not supported by TFT_eSPI but there are other touch libraries that may work. The BuyDisplay board must be selected with the 4 wire SPI interface.

The 3.5" display here claims to be an ILI but currently does not work with TFT_eSPI as noted in the issue here.

@Bodmer,

Surely the TFT_MISO line will tri-state properly. After all, it works fine on ILI. You should disable the SPIREAD_EN bit (7) after you have used SPIREAD_CMD (0xFB) to read an internal register.
The ILI has different SPIREAD_CMD (0xD9) and SPIREAD_EN (4).

However you don't need to do anything special when reading the GRAM memory.

From distant memory, you can turn MISO on and off in software. Most programs never use readGRAM() anyway.

Want more information on uart tft display? Feel free to contact us.

It should be easy enough to read the ID of the ILI on the Red board. Or to do some write-only diagnostics to distinguish it from RM, R, ILI, ILI, ...

It will be interesting to hear how you get on with the Red board when it arrives.

Meanwhile, perhaps lesept or Super169 can run some test sketches.

My EastRising ILI board has a Capacitive Touch. But I can always try the microSD card.

David.

I can buy the ebay (using Bodmer's link) and the red board displays, and run tests with the latter if it helps. No problem. The only limitation wil be the delivery time. If I buy them next week, there is almost one month to wait before they arrive in France. I'll also need help to run the tests...

@david_prentice I have no explanation for the permanently enabled TFT SDO line on the ILI board I have. It is not what I would expect but is alluded to in the data sheet for command 0xB0 as the line is not shown going Hi-z.

@lesept I have one of those red boards on order so can test. A user on Github has one of the boards so is running some tests.

I have to sort out access to the microSD on my EastRising ILI display.
But it is currently displaying a BMP image from an SPI Flash chip.
So the MISO line must be ok.

I can read registers from my ILI.
If I use the wrong SPI_READCMD I get a similar result to you. Except that your report has an inconsistency:

...
Register 0x04: 0x
...
Register 0xDA: 0x56            //I get 0x54.   It should match reg(0x04)
Register 0xDB: 0x80
Register 0xDC: 0x66

I do not recognise super169's readreg report. It does not match ILI, ILI, ILI, R, RM.
Which intrigues me.

I am not brave enough to buy from super169's shop.
I have just ordered a Red ILI board from my link in #1

David.

That seems a good idea. Make sure that you get the exact display that Bodmer has linked.

Yes, I am sure that Bodmer's TFT_eSPI will work on ESP32 and ESP.
And it will plug straight into a RPi (if you have a RPi)

I rather like the idea of the Red ILI board. It will plug into any of my Protoshields that are wired for Serial ILI, ST, ILI, ILI, ...
I just have to wait for it to arrive.

David.

Hi
Looking into my stock, it appears I already had the RPi display Bodmer suggested. I'm ready to try it, but... What are the parameters I should use in the User_Setup.h file?
For now I have this :

#define ILI_DRIVER

// ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP32 SETUP   ######

// For ESP32 Dev board (only tested with ILI display)
// The hardware SPI can be mapped to any pins

#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS    5  // Chip select control pin (15)
#define TFT_DC    2  // Data Command control pin
#define TFT_RST   4  // Reset pin (could connect to RST pin)
//#define TFT_RST  -1  // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST

#define TOUCH_CS 8     // Chip select pin (T_CS) of touch screen

#define SPI_FREQUENCY   // Maximum to use SPIFFS
// #define SPI_FREQUENCY  

// The XPT requires a lower SPI clock rate of 2.5MHz so we define that here:
#define SPI_TOUCH_FREQUENCY  

Thanks for your help.

Thanks David. I know the ESP pins and Bodmer's link provides the display pinout. What I need is the other lines: what driver, and are the SPI and SPI_TOUCH frequencies correct?

If you manage to have the red display work with TFT_eSPI, I'm interested to know.

Contact us to discuss your requirements of 0 95 inch amoled display. Our experienced sales team can help you identify the options that best suit your needs.

LCD/TFT display: Recommendation of technical Specs?

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:
  • https://excamera.com/sphinx/store.html

Another is dig-ole:
  • http://www.digole.com/index.php?categoryID=153

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:
  • https://www.pjrc.com/store/display_ili_touch.html

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 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.

Comments

0/2000

Guest Posts

If you are interested in sending in a Guest Blogger Submission,welcome to write for us!

Your Name: (required)

Your Email: (required)

Subject

Your Message: (required)

0/2000