Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By Goran
#68685 Hello,

I am fighting for two days to make ESP8266-12F work with Velleman VMA412 2.8" TFT TouchScreen+SD Arduino UNO/MEGA shield using SPI. No matter which TFT library I use, I get always a white screen. What I am basically not 100% clear is wiring on the shield side at the first place (the board pinout is given in the PDF file bellow).

Some info that might be useful:
1) According to the datasheet (https://www.velleman.eu/downloads/29/vma412_a4v02.pdf), the shield's TFT part is based on ILI9341 v0.7 driver
2) the shield is OK, as originally I had it attached to Arduino UNO Wifi and it worked ok (TFT, TouchScreen and SD card); (BTW, I am switching to ESP8266-12F solution as it seems ATmega328P and ESP8266 on Arduino UNO WiFi board communicate too slow for my needs -> it's about 250 kB file transfer that takes too long)
3) The libraries for Arduino UNO/MEGA that "comes with" the shield are MCUFRIEND_kbv and TouchScreen (btw, exactly the same shield board pinout I found in a board produced by MCUFRIEND, so no wonder...)
4) funny enough, when working with Arduino,
Code: Select alltft.readID()
returns
Code: Select all0x7783
and not
Code: Select all0x9341
driver.
5) as for ESP8266-12F solution I could not compile with MCUFRIEND_kbv lib (as well as with st7783 lib), I tried others like Adafruit_ILI9341esp or currently TFT_eSPI setup for ILI9431, but result is unchanged: the white screen.

Regarding SPI wiring, I know that TFT, TouchScreen and SD card drivers must share SPI_MISO, SPI_MOSI and SPI_CLK, while each having its own CS line.

So, my best guess while wiring TFT was (ESP8266 side should be compliant with TFT_eSPI lib setup for ILI9431):

Code: Select allTFT CS: ESP8266-12F GPIO15 (D8)  to shield's LCD_CS
TFT RST: ESP8266-12FGPIO02 (D4) to  shield's LCD_RST
TFT D/C: ESP8266-12F GPIO00 (D3) to  shield's LCD_RS
SCLK: ESP8266-12F GPIO14 (D5)  to shield's SD_SCK (!? the best I knew)
MISO: ESP8266-12FGPIO12 (D6) to  shield's LCD_RD  (!? the best I knew)
MOSI: ESP8266-12F GPIO13 (D7) to shield's LCD_WR  (!? the best I knew)


Next, I guess SD card CS should go from an ESP GPIO pin to shield's SD_SS pin, right?
And where is TouchScreen CS on the shield?

Thanks for your attention in advance.
User avatar
By QuickFix
#68715 The Velleman board you're using uses (according to the PDF) SPI for the SD-card and 8-bit parallel for the LCD.
The LCD chip itself can be configured to use SPI, but this can't be set by the user with this board (the jumpers for this are on the LCD, not the PCB).
Touch screen functionatily normally uses 2 (or 4) analog pins on these kinds of displays.

The ESP hasn't got enough GPIO-pins to handle these boards unfortunately (I'm having the same problem and have bought a couple of wrong boards a couple of weeks ago). :(

If you want SPI for display, touch screen and SD-card, you'll need a display like this:
Image
Don't forget to solder/close J1 on the board, to let it work correctly on 3.3V. :idea:
User avatar
By Goran
#68734 Thanks QuickFix for opening my eyes, I cannot agree more on the saying regarding the assumptions ... :oops: (it is one of my favorite sayings, too; the thing is it comes to my mind only when I assume something wrong, not before :) ). I've just concentrated under system interface specs to "3-line / 4-line serial interface" line and that was it.

I've already ordered the suggested SPI TFT (only the 2.8" version).

Do you know what approximate slow-down factor can I expect due to using SPI instead of 8-bit parallel interface?
Or, if you tried rendering 240x320x24 BMP image, what was the absolute rendering time in sec?