SainSmart Mega2560 & TFT_320QVT

Hallo @ all,

ich habe mir den SainSmart MEGA2560 und das Shield TFT_320QVT gekauft, leider bekomme ich das nicht zum laufen,
kann mir einer von euch ein tip geben.

Ich habe mir die Lib UTFT runtergeladen und den Beispiel Code auf den MEGA2560 geladen,
leider läuft es aber nicht.

Würde mich sehr über Tips oder auch links wo ich was nachlesen kann freuen.

Gruß
Swen

Kristallkugel?

Definitiv ein Fall für die Kristallkugel. :wink: :wink: :wink:

SwenHH,
bitte link zum Beispielsketch, Kopie der Fehlermeldungen genaue Fehlerbeschreibung, verwendete Betriebssystem und Arduino - IDE Version.
Grüße Uwe

Hi,

also ich nutze (bzw. versuche zu nutzen) die "UTFT.h" mit dem Beispielcode siehe unten
ich habe die Vermutung das evtl. die Adresse "UTFT myGLCD(ITDB32S, 38,39,40,41 );"
nicht stimmt... aber mein Datenblatt sagt auch das dieses stimmt...

Hardware habe ich den
-> Mega2560
-> TFT_LCD Mega Shield V1.2
-> TFT_320QVT


Und habe folgenden Beispielcode geladen,

Code:

#include <UTFT.h>

extern uint8_t SmallFont[];

UTFT myGLCD(ITDB32S, 38,39,40,41 );// Remember to change the model parameter to suit your display module!

void setup()
{
randomSeed(analogRead(0));

// Setup the LCD
myGLCD.InitLCD();
myGLCD.setFont(SmallFont);
}

void loop()
{
int buf[318];
int x, x2;
int y, y2;
int r;

// Clear the screen and draw the frame
myGLCD.clrScr();

myGLCD.setColor(255, 0, 0);
myGLCD.fillRect(0, 0, 319, 13);
myGLCD.setColor(64, 64, 64);
myGLCD.fillRect(0, 226, 319, 239);
myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(255, 0, 0);
myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);
myGLCD.setBackColor(64, 64, 64);
myGLCD.setColor(255,255,0);
myGLCD.print("http://electronics.henningkarlsen.com", CENTER, 227);

myGLCD.setColor(0, 0, 255);
myGLCD.drawRect(0, 14, 319, 225);

// Draw crosshairs
myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(0, 0, 0);
myGLCD.drawLine(159, 15, 159, 224);
myGLCD.drawLine(1, 119, 318, 119);
for (int i=9; i<310; i+=10)
myGLCD.drawLine(i, 117, i, 121);
for (int i=19; i<220; i+=10)
myGLCD.drawLine(157, i, 161, i);

// Draw sin-, cos- and tan-lines
myGLCD.setColor(0,255,255);
myGLCD.print("Sin", 5, 15);
for (int i=1; i<318; i++)
{
myGLCD.drawPixel(i,119+(sin(((i*1.13)*3.14)/180)*95));
}

myGLCD.setColor(255,0,0);
myGLCD.print("Cos", 5, 27);
for (int i=1; i<318; i++)
{
myGLCD.drawPixel(i,119+(cos(((i*1.13)*3.14)/180)*95));
}

myGLCD.setColor(255,255,0);
myGLCD.print("Tan", 5, 39);
for (int i=1; i<318; i++)
{
myGLCD.drawPixel(i,119+(tan(((i*1.13)*3.14)/180)));
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);
myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(0, 0, 0);
myGLCD.drawLine(159, 15, 159, 224);
myGLCD.drawLine(1, 119, 318, 119);

// Draw a moving sinewave
x=1;
for (int i=1; i<(31820); i++)
{
x++;
if (x==319)
x=1;
if (i>319)
{
if ((x==159)||(buf[x-1]==119))
myGLCD.setColor(0,0,255);
else
myGLCD.setColor(0,0,0);
myGLCD.drawPixel(x,buf[x-1]);
}
myGLCD.setColor(0,255,255);
y=119+(sin(((i
1.1)3.14)/180)(90-(i / 100)));
myGLCD.drawPixel(x,y);
buf[x-1]=y;
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

// Draw some filled rectangles
for (int i=1; i<6; i++)
{
switch (i)
{
case 1:
myGLCD.setColor(255,0,255);
break;
case 2:
myGLCD.setColor(255,0,0);
break;
case 3:
myGLCD.setColor(0,255,0);
break;
case 4:
myGLCD.setColor(0,0,255);
break;
case 5:
myGLCD.setColor(255,255,0);
break;
}
myGLCD.fillRect(70+(i20), 30+(i20), 130+(i20), 90+(i20));
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

// Draw some filled, rounded rectangles
for (int i=1; i<6; i++)
{
switch (i)
{
case 1:
myGLCD.setColor(255,0,255);
break;
case 2:
myGLCD.setColor(255,0,0);
break;
case 3:
myGLCD.setColor(0,255,0);
break;
case 4:
myGLCD.setColor(0,0,255);
break;
case 5:
myGLCD.setColor(255,255,0);
break;
}
myGLCD.fillRoundRect(190-(i20), 30+(i20), 250-(i20), 90+(i20));
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

// Draw some filled circles
for (int i=1; i<6; i++)
{
switch (i)
{
case 1:
myGLCD.setColor(255,0,255);
break;
case 2:
myGLCD.setColor(255,0,0);
break;
case 3:
myGLCD.setColor(0,255,0);
break;
case 4:
myGLCD.setColor(0,0,255);
break;
case 5:
myGLCD.setColor(255,255,0);
break;
}
myGLCD.fillCircle(100+(i20),60+(i20), 30);
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

// Draw some lines in a pattern
myGLCD.setColor (255,0,0);
for (int i=15; i<224; i+=5)
{
myGLCD.drawLine(1, i, (i1.44)-10, 224);
}
myGLCD.setColor (255,0,0);
for (int i=224; i>15; i-=5)
{
myGLCD.drawLine(318, i, (i
1.44)-11, 15);
}
myGLCD.setColor (0,255,255);
for (int i=224; i>15; i-=5)
{
myGLCD.drawLine(1, i, 331-(i1.44), 15);
}
myGLCD.setColor (0,255,255);
for (int i=15; i<224; i+=5)
{
myGLCD.drawLine(318, i, 330-(i
1.44), 224);
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,225);

// Draw some random circles
for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=32+random(256);
y=45+random(146);
r=random(30);
myGLCD.drawCircle(x, y, r);
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

// Draw some random rectangles
for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=2+random(316);
y=16+random(207);
x2=2+random(316);
y2=16+random(207);
myGLCD.drawRect(x, y, x2, y2);
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

// Draw some random rounded rectangles
for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=2+random(316);
y=16+random(207);
x2=2+random(316);
y2=16+random(207);
myGLCD.drawRoundRect(x, y, x2, y2);
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

for (int i=0; i<100; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
x=2+random(316);
y=16+random(209);
x2=2+random(316);
y2=16+random(209);
myGLCD.drawLine(x, y, x2, y2);
}

delay(2000);

myGLCD.setColor(0,0,0);
myGLCD.fillRect(1,15,318,224);

for (int i=0; i<10000; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
myGLCD.drawPixel(2+random(316), 16+random(209));
}

delay(2000);

myGLCD.fillScr(0, 0, 255);
myGLCD.setColor(255, 0, 0);
myGLCD.fillRoundRect(80, 70, 239, 169);

myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(255, 0, 0);
myGLCD.print("That's it!", CENTER, 93);
myGLCD.print("Restarting in a", CENTER, 119);
myGLCD.print("few seconds...", CENTER, 132);

myGLCD.setColor(0, 255, 0);
myGLCD.setBackColor(0, 0, 255);
myGLCD.print("Runtime: (msecs)", CENTER, 210);
myGLCD.printNumI(millis(), CENTER, 225);

delay (10000);
}


Fehlermeldung:

C:\Program Files (Swen)\Arduino\arduino-1.0.1-windows\arduino-1.0.1\libraries\UTFT/UTFT.h:126: note: candidates are: UTFT::UTFT(byte, int, int, int, int, int, int)
C:\Program Files (Swen)\Arduino\arduino-1.0.1-windows\arduino-1.0.1\libraries\UTFT/UTFT.h:125: note: UTFT::UTFT()
C:\Program Files (Swen)\Arduino\arduino-1.0.1-windows\arduino-1.0.1\libraries\UTFT/UTFT.h:123: note: UTFT::UTFT(const UTFT&)


Gruß
Swen

Der UTFT-Konstruktor verlangt ja nach einem byte und sechs int, also kann deine Angabe (ohne die UTFT-header/cpp-datei zu kennen) ja so nicht funktionieren. Du solltest Dir mal das Manual zu dem Shield und dem Display genau durchlesen. Den ellenlangen Code wird hier keiner freiwillig parsen, nur um hinterher festzustellen, dass der Fehler am Konstruktor lag...

Hi Swen,

poste doch bitte mal die genaue Typenbezeichnung des Displays. Ich arbeite mit einem ähnlichen Display meines wird von UTFT.h nicht unterstützt. Daher nutzte ich die ITB02.h

Hi,

@ markbee,

folgendes steht in meinem Code:

// Uncomment the next line for Arduino 2009/Uno
//UTFT(byte model, int RS, int WR,int CS, int RST,int ALE,int SER)
UTFT myGLCD(ITDB32S,A1,A2,A0,A4,A5); // Remember to change the model parameter to suit your display module!

// Uncomment the next line for Arduino Mega
//UTFT myGLCD(ITDB32S,38,39,40,41); // Remember to change the model parameter to suit your display module!

Wenn ich die erste Variante (für Arduino 2009/Uno) nutze "UTFT myGLCD(ITDB32S,A1,A2,A0,A4,A5); "
dann habe ich das Problem das ich keine Fehelrmeldung bekomme aber der Arduino und das Display auch
nichts macht.

Nutze ich die zweite Variante "UTFT myGLCD(ITDB32S,38,39,40,41); "
dann kommt eben die Fehlermeldung gepostete Fehlermeldung

@2curious

auf dem Modul mit dem Display teht TFT_320QVT (www.sainsmart.com)

mein Aufbau entspricht dem folgenden link,

http://www.sainsmart.com/evaluation-board/sainsmart-kit/sainsmart-mega2560-board-3-5-tft-lcd-module-display-shield-kit-for-atmel-atmega-avr-16au-atmega8u2.html

Gruß
Swen

Hallo @ all,

Also weiter gehts, meine neuen erkenntnisse:

Ich habe mal geschaut auf das shield (TFT_LCD Mega Shield V1.2) zwischen dem Mega2560 und dem TFT_320QVT hier sind nur einige resistor drauf und ein poti mit dem ich die Helligkeit des Displays einstellen kann.

Auf dem TFT_320QVT ist ein Treiber mit dem Namen XPT2046 drauf und auf dem Display steht KL3375-01

Ob ich nun mit der UTFT oder ITDB02 liberary arbeiten muss weis ich nicht?
Hat jemand eine Idee?

Gruß
Swen

Hallo Swen,

habe das gleiche Probelm mit dem TFT und dem Shield. Habe es auch schon ein paar mal probiert ans laufen zu bekommen, aber bis jetzt nur Müll auf dem Display.

Vileicht sollten wir mal die Libs und Demos von der HP laden und in der 023 IDE laufen lassen.

Mfg.

Klaus

Hallo

Erstmal shuldigung für mein deutch, habe diese sprache lange nicht genutzt und bin keine deutche.

Ich habe mir auch arduino Mega R3, "TFT LCD Mega Shield V1.2" und TFT_320QVT gekauft und habe kein bild.
Was ich durch testen raus gefunden habe, ist das auf dem "Mega Shield" sind zwei pins miteinender ausgetausht:
D51 und D52 auf arduino. Nach dem ich diese pins ausgetausht habe, kann ich SD benuzen. Dafür habe ich in SD
demo zwei änderungen gemacht:
const int chipSelect = 53;
pinMode(53, OUTPUT);

Touch ding funktionierte gleich.

Was den bild an geht, ich habe es mit UTFT und ITDB02 getestet, ich habe da alles probiert
UTFT myGLCD(ITDB32S,38,39,40,41); UTFT myGLCD(TFT01_32,38,39,40,41); und so weiter und nichts.
danach habe ich den TFT direkt angeschlossen nach diese info:
http://arduino.cc/forum/index.php/topic,101029.0.html

Aber da ist geshrieben "CS(pin6) -> D40" das verstehe ich nicht - ich habe CS(pin 15) zur D40 auf arduino angeshlossen.
Und ich habe immer kein bild, alles andere funktioniert.

FUNKTIONIERT DOCH!!!!

Hallo,

hatte an Saintsmart geschrieben und die folgende Antwort bekommen:

---------schnipp-------------schnapp--------
From: Mei Ge
To: klausr-------.de
Sent: Saturday, September 08, 2012 8:59 AM
Subject: The references from sainsmart.

Hi Klaus,

Thank you for contacting us for assistance.
Plz take it easy, we would try our best to help you.

Here are the references for you.
We hope it can help you to solve the problems.

Plz make sure the code path is also correct.
The code path: arduino-0023\libraries\ITDB02_Graph16\examples\ITDB02_Graph16_Demo_Landscape
What's more, the driver and the Arduino software 0023 should be installed well.
Please do as the manual indicated.

If you need any further assistance, plz don't hesitate to contact us ON EBAY MESSAGE.
We are happy to help you and make you satisfied.

Best regards,

Sue
----------------schnipp ----------------schnapp---------------

Habe ich also gemacht:

  • IDE 023 instaliert
  • Lib entpackt und in den Libary ordner verschoben.
  • IDE gestartet
  • ITDB02_Graph16_Demo_Landscape aufgerufen und an den Mega 2560 übertragen.

und tata!!!! läuft.

Hab das ganze dann unter IDE 101 probiert aber :-(((((

Kommt die Fehlermeldung

--------------schnipp------------schnapp-----------------
In file included from ITDB02_Graph16_Demo_Landscape.cpp:21:
C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Dropbox\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:200: error: default argument given for parameter 3 of 'long unsigned int pulseIn(uint8_t, uint8_t, long unsigned int)'
C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Dropbox\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:109: error: after previous specification in 'long unsigned int pulseIn(uint8_t, uint8_t, long unsigned int)'
C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Dropbox\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/Arduino.h:202: error: default argument given for parameter 3 of 'void tone(uint8_t, unsigned int, long unsigned int)'
C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Dropbox\Arduino\arduino-1.0.1\hardware\arduino\cores\arduino/WProgram.h:24: error: after previous specification in 'void tone(uint8_t, unsigned int, long unsigned int)'
----------schnipp--------schnapp------------

Also da ist noch etwas Arbeit zu tun. Habe das auch mal an Saintsmart gesendet und warte auf Antwort.

Mfg.

Klaus

PS: Ich habe das TFT 1.0 Shield.

ITDB02_Graph16.rar (1.43 MB)

PPS: Der Beweis auf YT: SaintSmart TFT 3.2 an SaintSmart Mega 2560 Arduinoclone. - YouTube

Hallo Freunde der Nacht und des "Wunderkastens" des kleines Geldbeutels.

Nach einem "Anranzers" im Arduino Display Forums muss ich sagen das
"wer lesen kann ist klar im Vorteil" auch bei mir zutrifft.

Also jetzt mal im Klartext. Ich habe vergessen als ich die UTFT Lib von Henning Karlsen getestet hatte die Zeile, die die Pinbelegung der Lib auf den Mega ändert
---------------schnipp-------------schnapp------------------
// Uncomment the next line for Arduino 2009/Uno
UTFT myGLCD(ITDB32S,19,18,17,16); // Remember to change the model parameter to suit your display module!
// Uncomment the next line for Arduino Mega
//UTFT myGLCD(ITDB32S,38,39,40,41); // Remember to change the model parameter to suit your display module!
-------------schnipp-------------schnapp---------------
zu aktiviren.
Danach laufen auch die anderen Demos bei mir.
Man sollte ab und zu auch mal lesen, was man seinem Arduino zu "futtern" gibt bevor man meckert.

Also Display läuft auch auf IDE 101.

Habe auch mal die Demos für anderen Module probiert und wenn man die Mega Parameterzeile dort einfügt dann laufen die auch.(Wie sollte es auch anders sein.)

Mfg.

Klaus

PS: Bitte nicht vergessen die Zeile für den Uno zu deaktiviren.

Hallo @All,
habe mir das Mega2560, TFT LCD Mega Shield V2.2, und TFT_320QVT gekauft.
Bringe das teil aber irgendwie nicht richtig zum laufen !





Die Ausgabe sieht man bei Bilder 003 und 004 !

Was geht da falsch ?

IDE und Programm ist auf dem 005 zu sehen !

MfG Thomas
Der noch nicht so Top ist mit dem Arduino !!!

Hi,

I have exactly the same problem.
Did you allready solved it?

Hallo
Ich benutze die selbe Kombination und habe das Display zum laufen gebracht.
Allerdings läuft die Display Ausgabe ohne Probleme.
Überprüfe mahl die Lötstellen auf schlechte oder mangelhafte kalte Lötstellen.
Da könnte dein Problem liegen.

Ich weiß nicht in wie fern du den SD-Karten Schacht in betrieb genommen hast, damit habe ich durchaus Probleme .
Habe den Stromlaufplan kontrolliert und auf Fehler getestet.

D50 -> MISO -> SD_OUT -> 35 Display
D51 -> MOSI -> SD_IN -> 37 Display
D52 -> SCK -> SD_SCK -> 36 Display
D53 -> SS -> SD_CS -> 38 Display

D5 -> CS -> DCS -> 30 Display
Ich verstehe auch nicht warum CS/DCS Pin D5 in den Beispielen angegeben ist, da es für das Display Modul benutzt wird und mit der SD karte nichts zu tun hat.
D51 und D52 wurden in sheld Version 1.0,1.2 vertauscht, ist aber in der Version 2.2 richtig wie ich feststellen musste. Auch die Pegel Anpassung ist richtig. Kann allerdings nicht verstehen weshalb das nicht läuft.
Kann es die SD Karte an sich sein?
Habe gelesen das die ersten Bibliotheken eine Max 2GB Karte mit FAT16 und 16Kb Cluste verlangt.
Benutzen tuhe ich aber eine 32MB Karte mit MAX 4Kb Cluster Formatiert werden kann.
Währe toll wenn uns jemand mit seiner Erfahrung dabei helfen könnte die HW zum laufen zu bekommen.
MFG RGB-MISO

ThForsti:
http://www.iforen.sylcom.de/Modellbau/Arduino/Arduino_003.jpg
http://www.iforen.sylcom.de/Modellbau/Arduino/Arduino_004.jpg

Das sieht schon sehr komisch aus ... entweder falsche Lib oder kaputtes Display / kaputtes RAM oder kaputtes Shield / schlechte Lötstelle.

Wenn Du nicht noch zufällig irgendwo eine falsche UTFT-Lib rumzuliegen hast, die beim Kompilieren benutzt wird - was ich nicht glaube - kannst Du wohl von einem Defekt ausgehen.

Grüße

Ich habe auch dass gleiche problem mit zwei stuck.
Hilfe bitte.!!! :frowning:

Bei mir auch das selbe Problem, denke da haben wir schöne Produktionskrüppel bekommen. Scheinbar hat es bis jetzt niemand zum laufen gebracht, oder es wurde hier nicht mitgeteilt. Ich werde mal die Lötstellen am Display nachlöten um kalte Lötstellen aus zu schließen. Falls es nichts bringt Tonne auf und rein damit.

Beste Grüsse
reini12