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

I'd like to buy a cheap (around or less than 15$ including shipping) touchscreen 3.5'' TFT display, working on SPI, which I can use with the TFT_eSPI library. Does anyone know any good reference?
I searched Aliex**ss but only found one reference...

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

  1. RaspberryPi shields. (with a parallel ILI9486 driven by a shift register)
  2. BuyDisplay ILI9488 board.
  3. ILI9488 board
  4. R61581 board with access to IM# pins
  5. RM68140 board
  6. Adafruit HX8357D 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 R61581 or RM68140.
(6) is expensive.

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

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

David.

Thanks David
I don't know what a "kludge" is, but "horrible" is sufficient to understand :slight_smile:
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. 8080-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 ILI9341 boards. The ILI9488 always uses 3 bytes per pixel. The ILI9341 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 ILI9341, ST7735, ...

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 ILI9488 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 ILI9341. You should disable the SPIREAD_EN bit (7) after you have used SPIREAD_CMD (0xFB) to read an internal register.
The ILI9341 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.

It should be easy enough to read the ID of the ILI9488 on the Red board. Or to do some write-only diagnostics to distinguish it from RM68140, R61581, ILI9481, ILI9486, ...

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 ILI9488 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 ILI9488 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 ILI9488 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 ILI9488.
If I use the wrong SPI_READCMD I get a similar result to you. Except that your report has an inconsistency:

...
Register 0x04: 0x548066
...
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 ILI9481, ILI9486, ILI9488, R61581, RM68140.
Which intrigues me.

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

David.

Thanks to both of you. I'll go for the RPi display that bodmer mentions and follow the discussion on github. Do you think it will work with an ESP32?

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 ESP8266.
And it will plug straight into a RPi (if you have a RPi)

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

David.

Yes I agree with you, my favorite was the red one as it plugs immediately in a breadboard. So as soon as it works with the library, I'll buy one

  1. microSD holder would be more convenient than SD.

  2. It seems crazy to provide different pins when you have 3 SPI devices that can go onto the same hardware bus. (with pullups to disable all the CS pins).

  3. I am quite happy with a single row header. Easy to solder or use with a breadboard.

  4. GND, VCC, LED, TFT_CS, SD_CS, T_CS, T_IRQ, TFT_DC, TFT_RESET, MOSI, MISO, SCK. i.e. 12 pins

  5. 12-pins would mean the header fits between the mounting holes on 2.4, 2.8, 3.2, 3.5 inch screens.

Hey-ho. Many Arduino users are determined to use 5V GPIO with 3.3V displays (which will not work). The civilised world uses 3.3V GPIO.

David.

Sorry I don't understand what you mean...

I was just expressing my personal opinion. i.e. a better design of the Red boards.

We live in the real world. If a Chinese company designs and makes Red SPI display boards, many people buy them. They are not going to change anything because of my opinion.

I also expressed my opinion on RPi display.

David.

Ok I understand better now, and agree with your points.

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 ILI9341_DRIVER

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

// For ESP32 Dev board (only tested with ILI9341 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  40000000 // Maximum to use SPIFFS
// #define SPI_FREQUENCY  80000000

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

Thanks for your help.

That looks pretty clear to me. Connect TFT_MOSI to GPIO23 on the ESP32 module.

The Display pcb (or RaspberryPi docs) will tell you which pin is MOSI, SCK, CS, ..., 3.3V, GND, ...

Incidentally, the Red ILI9488 board that I ordered on the 4 September has arrived in the UK. Pretty impressive service !!
Of course it still has to clear Customs and get delivered to my door.

David.

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.

Well my EastRising ILI9488 works fine. So I would expect the Red board to work fine too.

I presume that Bodmer accounts for frequencies. The ShiftRegister abortion can't go very fast. I would start with 10MHz or 5MHz

David.