Can't refresh Arduino TFT after first write.

Hey Guys,

I've been struggling for a while to get my Arduino TFT display to work. It's this exact one

Purchased it here if you need to confirm item
http://www.robotmesh.com/arduino/arduino-tft-lcd-screen

I wired up per this page (has an error I think)

Ran the sample sketch TFTDisplayText. All I'd get are black and lighter black bars across the screen. I found I could change the color of every other bar by adjusting the values in TFTscreen.background(0, 0, 0); so I had it partially working.

Eventually out of sheer frustration I started swapping wires around and after a long time I found if I swapped pin 9 & 10 around (D/C and LCD/CS) the screen would light up normal and display my text. This is rather odd because the code defines
#define cs 10
#define dc 9
yet I'm wiring what is marked as CS on the circuit board to pin 9 and what's marked as DC on the circuit board to pin 10. Yet the display works (sort of). I don't see how there could be a miss print on the circuit board and the Arduino website show it wrong too. There has to be more to it that I'm missing.

Now the strange problem. I upload the sketch and it displays my text. That's it. If I change the display text in the sketch and re-upload it, the screen blanks and comes back as the Arduino resets but the old text displays. It's like the screen never gets the new instruction. If I power the whole thing off and back on the screen is just a weird fuzz like a TV with no antenna. I can keep reloading my sketch and nothing.
However. I found if I swap pins 9 & 10 again and upload my sketch I get the black bars again but this also resets something. I swap the pins back and now my new sketch with new text will upload and display. Once again stuck with only that text till I flip 9 & 10, upload, get the bars, flip them back reupload etc.

I'm sure I'm missing something simple but just not seeing it. Any ideas guys?

Thanks
Malcolm

This looks a lot like the problem with an other display module: Crius CO-16 (a 0.96 " OLED).
The hardware of that module is crappy, meaning Crius didn't care for any reset circuitry and just tied that pin to VCC.
Because of that, the display isn't reset correctly and it's buffer is not available to write to.
So if you want to display something, it will read from the (quasi) random filled buffer, and display that.
It will however handle that random data correctly, for instance when it's been told to invert the screen or scroll it horizontal or vertical.
The Crius also doesn't answer any inquiries, because the TX line isn't connected on those modules.

So, have a look at the initialisation part and compare it to the datasheet for your display (look for timing issues).
If that seems to be OK in your sketch, suspect some hardware error, like the shifted pins you already found.

After following tutorial after tutorial last night I realized there's nothing wrong I'm doing. It got to the point where I know all the pins layout by heart and could look at online diagrams and spot differences or similarities instantly. Terrible lol. After trying many persons demo code online I figured I must have bad hardware.

Then on one of the Arduino forums in Italian I believe it was it said the displays had been updated and new drivers were needed. At least that's the rough translation I got from google. I was already using IDE 1.0.5 so I went and downloaded their latest nighty build which would be 1.5.x something and put all the wires back the way they should be per the tutorials and wow loan behold everything works. So clearly there's been a hardware updates of sorts needing a new version of either SPI or TFT libraries. I wish there was some sort of communication of this. I spent so many hours bashing in my head yesterday trying to figure this out.

Hopefully this helps someone else.

Hey! I'm dealing with this exact problem right now. Trying to upload the arduino-provided TFT graph function, and i'm getting three bars across the screen and partial response. I will try to upload the drivers for the screen like you mentioned and I'll see if that works. Do you remember where you acquired those TFT screen drivers?

I just downloaded the latest version of the Arduino IDE. Drivers are included with it.