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

User avatar
By alguti2000
#81928 This shouldn't be difficult. I've done it using a Arduino Uno, or using my own board designed around an Atmega328p. Having a TFT LCD with a controlled such as the ILI9341, and have it share the SPI with an SD card, has been a no-brainer. But, trying to accomplish the same thing with an ESP8266, such as the 12-E, seems like an impossible mission.

I've read several posts regarding this problem, but nobody has offered a solution -- maybe there is none. Most would just use the internal Flash in the ESP8266. The problem with that is that flash has a limited write cycle lifespan. Thus, using a SD card when writing is frequent, makes a lot more sense -- you can easily replace a SD card.

I've tried some many things to try to make the SD card and the TFT play nice, from using pull-up resistors, to having a separate power source for the ESP and the card and TFT (connected only by Ground), to trying Voodoo. Nothing has worked so far. Some say that it is because the SD card and the TFT have a conflct on how they communicated on SPI. But, if this were the case, the same issue would exist in Arduino UNO. But, it doesn't.

I must mention, as well, that I've tried to solve this problem using Lua in ESPlorer, as well as C in Arduino, and even MircoPython. I have also analyze the signals using a digital analyzer. But, so far, I have come up empty.

I wonder if any one else has run into this and has found a solution for it...Or, is it just impossible?
User avatar
By QuickFix
#81954 It is perfectly possible: about a year ago I tried to combine a TFT with touch and an SD-card and experienced no problems, other than I had to modify the board a bit to run exclusively on 3.3V.

TFT_Touch_SD.jpg


In above picture, you can see a (malformed) image of the country I live in (The Netherlands) which is read from the SD card put into the on-board cardreader and working touchscreen all using a shared SPI and three CS-lines for each "Device" (screen, touch and SD).

But as said, before I got it working, I had to remove/bridge resistor-positions R1, R2 and R3 and bridge jumper J1, so all worked on 3.3V.
(Don't mind my bad solder job, but those tiny SMD patches just didn't want to play along) :evil:

Bridges.jpg
You do not have the required permissions to view the files attached to this post.