ILI9488 MCUfriend 3,95" & hardware SPI

Hey allemaal,

ik heb een leuk, startersschermpje binnengekregen van MCUfriend, een 3,95inch TFT-tje

Het werkt op een UNO & op MEGA2560 als een shield...maar...
het standaardfont is niet je dat - zeer hoekig, en bij een grotere fontkeuze, is het gewoon een nog hoekiger uitvergroting van het basisfont.

het SD slot krijg ik ook niet aan de praat, het touchscreen is momenteel van minder belang

Het werkt ook niet supersnel, tragere refresh rate dan gehoopt...

nu heb ik een bibliotheek gevonden met vrij leuke, afgronde fonts - de maker van de library heeft best wel mooi werk geleverd en aanpassingen gedaan ten bate van snelheid en gebruiksvriendelijkheid.

hieronder heb ik een afbeelding geplaatst van een gelijkaardig shieldje.

hoe kan ik een dergelijk shieldje op hardware SPI krijgen met bekabeling ipv als shield te gebruiken?

ik heb er in één beweging ook de bedoelde bibliotheek bij gezet.

is er toevallig iemand die een fritzing wire diagram heeft voor mijn probleempje?
of gewoon textueel kan uitleggen hoe ik één en ander dien te doen...

Thanks in advance !!

Grtz,
Yves

Libraries_v7.zip (66.5 KB)

zoals je ziet gebruikt het display best veel pinnen, dus ik zou bijna een uno er vast onder zetten, en die dan laten praten met rest

Hey Shooter,

dat is precies wat ik nu doe, maar met een MEGA (voordien met een UNO)

maar jammer genoeg kan ik dan die bib niet gebruiken met die mooie fonts :cry:

de aansluitingen voor de touchscreen (die kennelijk ook voor een stuk gedeeld worden met de LCD) heb ik niet van doen, de SD aansluitingen eigenlijk ook niet ogenblikkelijk

maar ik heb totaal geen benul van hoe ik het shieldje in hardware SPI moet bedraden

het kan kennelijk, maar de persoon gaf geen omschrijving hoe en welke pinnen ik dien aan te sluiten op een UNO of een MEGA

Grtz,
Yves

Je bent inderdaad niet de eerste :slight_smile:
https://forum.arduino.cc/index.php?topic=337952.0

Hey Nico :wink:
alweer eens bedankt voor je vlotte reply (ge komt wat tegen hé, met die newbee's als ik :sweat_smile: )

kweet het, maar het is een goedkoop alternatief, en het werkt ook aardig hoor met de lib van diger67

maar ik zou willen leren hoe ik dit shieldje als hardware SPI kan bekabelen naar een UNO of een MEGA

ik kan dan wat draadjes aan het schildje voorzien om dan in de arduino's te prikken...

maar daar ken ik niet genoeg van... ik lees die codes op de ommezijde van het bordje, en tjah... een aantal ken is, maar de meesten niet natuurlijk, dan loop ik natuurlijk wat vast hé

ik was eigenlijk op zoek naar een schema of een tekstuele uitleg welke draadjes is aan welk punt op het TFT shield moet solderen en waar die dan mogen komen op een MEGA

Grtz,
Yves

Ik ken deze dingen niet.
Maar als ik naar de opdruk op de print kijk, dan is wat je vraagt niet mogelijk.
Er is een 8 bits brede poort, plus 5 stuursignalen zichtbaar.
Daarmee is het heel waarschijnlijk dat die aders van de print met de display verbonden zijn, en dat de niet gebruikte pinnen van de display (als die er zijn) die gaan ook nergens heen zo te zien.
De 2 chips in het midden van het boardje zijn buffers (74HC245), die er voor zorgen dat er niets mis gaat met 5 volt van de Arduino en 3.3 volt die je LCD gebruikt.
Als je er heel goed naar kijkt, zie je ook dat de 3.3 volt van de Arduino naar die 2 chipjes gaat (het draadje duikt wel even naar de andere kant van de print).
Die bouwen niet een I2C of SPI signaal om naar een ander systeem, mocht je dat denken.

Het zou best wel kunnen zijn dat het display wel overweg kan met SPI of I2C, maar men heeft er in dat geval niet voor gekozen voor dit shieldje.

Nog een link : ili9488 with tuoch screen - Displays - Arduino Forum

Ik vermoed trouwens dat de SPI alleen voor de SD kaart is.....

Hey,

denkt er iemand dan dat het mogelijk zou zijn om het "standard font" te vervangen door een mooier (ronder) font??

ik heb hier gisteren zo'n progje gevonden waarmee je fonts en bitmaps kan omzetten in C code
lcd-image-converter

wie weet kan ik het zo mogelijks oplossen

Grtz,
Yves

Edit : progje werkt niet zoals gehoopt :frowning:

Ligt het aan mij of mis ik een aantal posts??????
Eerst hebben we het over het gebruiken via de SPI. En nug heb jij het over de fonts????? zou je niet eerst dat scherm aan de praat gaan krijgen?

Hey Nico,

maar het scherm werkt hoor, geen enkel probleem - zowel op een UNO als een MEGA
sorry ik heb dat dan in de eerdere posts waarschijnlijk niet duidelijk genoeg aangegeven, sorry daarvoor

ik kan simpel via serial monitor of via een andere arduino uitvoer krijgen op het scherm, da's helemaal geen probleem

ook de kleuren zijn helder en mooi

het is enkel een ongelooflijk trage bedoening, alléé naar mij gevoel :slight_smile:

het font dat met de MCUfriend_kbv en de adafruit bibliotheken komt is echt aardslelijk :wink:

dus ja, ik kan mensen helpen om dit scherm aan de praat te krijgen (heb ik ook gemeld in de laatste topic die je doorgaf)

maar mijn kennis is VEEL te beperkt om dieper op technische dingen in te gaan (je weet wel die hex codes enzo)

dus ik wou eigenlijk eens horen hoe je zo'n font kan veranderen...mocht het inderdaad niet mogelijk zijn om dit scherm op SPI te krijgen...

Grtz,
Yves

Tja dat trage is vrij logisch. De CPU is gewoon te traag om een beetje plaat neer te zetten. Vanaf een SD is het byte voor byte naar het scherm. DMA wordt hier niet ondersteund en een plaatje is gewoon heeeeeel veeeeel bytes. Los van het font wat je gebruikt. Er zijn alternatieven waarbij een TFT scherm een eigen processor heeft. Ik ben zelf nu aan het experimenteren met Nextion. Dit heeft veel weg van het concept zoals SCADA (bekend bij de Engineering). Hier wordt alle data gelijk in de TFT processor geladen en praat je met het scherm via de Serial op 115kbaud.

Hey Nico,

laat eens weten hoe het zit met die Nextion als je zover bent

ik had dat als eens zitten bekijken (een 3.2") maar heb een beetje schrik van de HMI, allemaal zéér mooi, maar krijg je er ook gemakkelijk je eigen data in weergegeven via een UART met de arduino?

of heb jij al ergens voorbeeld code zien voorbij komen met een datainput vanuit de arduino's

ik voel het al aankomen, ik ga weer kosten moeten maken binnenkort :slight_smile:

Grtz,
Yves

Ik heb ooit ff die button click voorbeeld gedaan waarbij er een tellertje ophoogt op de buton zelf. Dat werkte prima. Verder ben ik er mee bezig geweest met de nodeMCU. Hier nog wat andere info: The most easy to use TFT LCD for Arduino - Products and Services - Arduino Forum

hey allemaal,

ik ben eens met mijn beperkte kennis aan het proberen om zelf een font toe te voegen aan een bibliotheek, wat copy paste tussen verschillende bibliotheken dacht ik, maar da's wel even anders :frowning:

ik krijg nu de volgende compiler fouten :

C:\Users\Yves\Documents\Arduino\libraries\Mcufriend_kbv\MCUFRIEND_kbv.cpp:840:42: error: 

no 'void MCUFRIEND_kbv::setFont(uint8_t*)' member function declared in class 'MCUFRIEND_kbv'

void MCUFRIEND_kbv::setFont(uint8_t* font)

^

C:\Users\Yves\Documents\Arduino\libraries\Mcufriend_kbv\MCUFRIEND_kbv.cpp:849:33: error: no 'uint8_t* MCUFRIEND_kbv::getFont()' member function declared in class 'MCUFRIEND_kbv'

 uint8_t* MCUFRIEND_kbv::getFont()

                                 ^

C:\Users\Yves\Documents\Arduino\libraries\Mcufriend_kbv\MCUFRIEND_kbv.cpp:854:37: error: no 'uint8_t MCUFRIEND_kbv::getFontXsize()' member function declared in class 'MCUFRIEND_kbv'

 uint8_t MCUFRIEND_kbv::getFontXsize()

                                     ^

C:\Users\Yves\Documents\Arduino\libraries\Mcufriend_kbv\MCUFRIEND_kbv.cpp:859:37: error: no 'uint8_t MCUFRIEND_kbv::getFontYsize()' member function declared in class 'MCUFRIEND_kbv'

 uint8_t MCUFRIEND_kbv::getFontYsize()

iemand die me even op weg kan helpen?

Grtz,
Yves

Dit komt omdat je in de MCUFRIEND_kbv.h deze functies niet hebt gedeclareerd in het public gedeelte. Een class bestaat uit 2 gedeelten:
a) de definities (meestal in de .h bestand). Die ziet er meestal als volgt uit:

class xxxx {
   public: 
      functie1....);
      functie2(...);
   private:
      variabele1;
      variabele2;
}

Dan heb je de feitelijke class code in de .cpp

xxxx::functie1(...){
}
ccc::functie2(....){
}

Het 2e heb je al gedaan. Het eerste niet. De keuze tussen private en public betekent of een functie van buiten de class toegankelijk is of alleen voor de functies binnen de class. Variabelen worden meestal als private aangemerkt (ook wel data encapsulatie genoemd).