Arduino Due (Programming Port) UTFT_SdRaw fault

Hi All!

I stuck with my Arduino projeckt.
I used to Arduino R3 MEGA, with sield, an 7" tft screen. I bought it from sains smart, but I was read here, it's not the best brand but it's working fine.

II tried to change the Arduino R3 MEGA, to Arduino DUE. I bougth one, and the shield also.

It is working, exception UTFT SdRaw library. I couldn't compile the exemple sketch ...

thet is the message:

Arduino: 1.8.6 (Windows Store 1.8.14.0) (Windows 10), Board:"Arduino Due (Programming Port)"

C:\Users\resources\Documents\Arduino\libraries\UTFT\UTFT.cpp:75:63: note: #pragma message: Compiling for Arduino Due (AT91SAM3X8E)...

#pragma message("Compiling for Arduino Due (AT91SAM3X8E)...")

^

C:\Users\resources\Documents\Arduino\libraries\UTFT_SdRaw\src\UTFT_SdRaw.cpp: In member function 'int UTFT_SdRaw::loadcpld(int, int, int, int, char*, int, int, bool)':

C:\Users\resources\Documents\Arduino\libraries\UTFT_SdRaw\src\UTFT_SdRaw.cpp:368:10: error: 'class UTFT' has no member named 'setWritePage'

_UTFT->setWritePage(writepage);

^

exit status 1

Hiba a(z) Arduino Due (Programming Port) alaplapra fordításra.

Usually, I found on the furom the solutions, but this time...

Does anyone have any idea, what I do wrong?

TFT:

Shield:

example code:

// UTFT_SdRaw_800x480_Demo
// Copyright (C)2015 Graham Lawrence (GHLawrence2000). All Rights reserved.
// web: GitHub - ghlawrence2000/UTFT_SdRaw: Hi speed image loading from SD/Serial for UTFT. UTFT_tinyFAT replacement.
//
// This program is a demo of how to use the functions provided by UTFT_SdRaw.
//
// This program requires the UTFT, URTouch, UTFT_Buttons and SdFat libraries.
//
#include <SPI.h>
// SdFat lib from here :-
// https://github.com/greiman/SdFat/archive/master.zip
#include <SdFat.h>
#include <UTFT.h>
#include <URTouch.h>
#include <UTFT_Buttons.h>
#include <UTFT_SdRaw.h>
extern uint8_t SmallFont[];
extern uint8_t BigFont[];

#define SD_CHIP_SELECT 53 // SD chip select pin
// file system object
SdFat sd;
// print stream
ArduinoOutStream cout(Serial);

int wait = 2, pressed_button;

// Initialize display
// ------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : ,19,18,17,16
// Standard Arduino Mega/Due shield : ,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due : ,25,26,27,28
// Teensy 3.x TFT Test Board : ,23,22, 3, 4
// ElecHouse TFT LCD/SD Shield for Arduino Due : ,22,23,31,33
//
// Remember to change the model parameter to suit your display module!

//UTFT myGLCD(CPLD, 38, 39, 40, 41);
//UTFT myGLCD(CTE50, 38, 39, 40, 41);
UTFT myGLCD(CTE70, 25, 26, 27, 28);

// Initialize touchscreen
// ----------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : 15,10,14, 9, 8
// Standard Arduino Mega/Due shield : 6, 5, 4, 3, 2
// CTE TFT LCD/SD Shield for Arduino Due : 6, 5, 4, 3, 2
// CTE TFT LCD/SD Shield for Arduino Due (JP10): 6, 5,32, 3, 2
// Teensy 3.x TFT Test Board : 26,31,27,28,29
// ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30
//
URTouch myTouch( 6, 5, 4, 3, 2);

UTFT_SdRaw myFiles(&myGLCD);
UTFT_Buttons myButtons(&myGLCD, &myTouch);

void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for DUE & Leonardo only
}
Serial.println(F("Initialising SD card..."));
bool mysd = 0;
// see if the card is present and can be initialized:
while (!mysd)
{
if (!sd.begin(SD_CHIP_SELECT, SPI_FULL_SPEED)) {
Serial.println(F("Card failed, or not present"));
Serial.println(F("Retrying...."));
}
else
{
mysd = 1;
Serial.println(F("Card initialised."));
}
}
Serial.println(F("Initialising LCD."));
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
myButtons.setTextFont(BigFont);
int butskip = myButtons.addButton( 85, 219 , 70, 20, "Skip");
Serial.println(F("LCD initialised."));
// ////////////////////////////////////////////////////////////////////////////////
// Wait for GPS screen or skip button
///////////////////////////////////////////////////////////////////////////////////
Serial.println(F("Initialising GPS."));
long mytime = millis();
myFiles.load(0, 0, 240, 240, "wait4gps.RAW", 1 , 1);
long mytime1 = millis() - mytime;
cout << F("Time to draw 240x240 raw ") << mytime1 << F(" ms") << endl;
myButtons.drawButton(butskip);
while (wait == 2) {
pressed_button = myButtons.checkButtons();
if (pressed_button == butskip)
{
cout << F("Skip button detected (No GPS :frowning: )\n");
wait = true;
}
}
char fname440[] = "SO11/SO100100.RAW";
myGLCD.clrScr();
mytime = millis();
myFiles.load(20, 20, 440, 440, fname440, 1);
mytime1 = millis() - mytime;
cout << F("Time to draw 440x440 raw (no extra buffer) (non inverted colour) ") << mytime1 << F(" ms") << endl;
delay(5000);
myGLCD.clrScr();
mytime = millis();
myFiles.load(20, 20, 440, 440, fname440, 4, 0);
mytime1 = millis() - mytime;
cout << F("Time to draw 440x440 raw (4buffer) (non inverted colour) ") << mytime1 << F(" ms") << endl;
delay(5000);
mytime = millis();
myFiles.load(20, 20, 440, 440, fname440, 4, 1);
mytime1 = millis() - mytime;
cout << F("Time to draw 440x440 raw (4
buffer) (inverted colour) ") << mytime1 << F(" ms") << endl;
delay(5000);
myGLCD.clrScr();
mytime = millis();
myFiles.pan(20, 20, 440, 440, 0, 0, 4040, 4040, "SK45/SK45.RAW", 1);
mytime1 = millis() - mytime;
cout << F("Time to draw 440x440 portion from 4040x4040 raw image (inverted colour) ") << mytime1 << F(" ms") << endl;
delay(5000);
myGLCD.clrScr();
int xad, yad;
int xd = 0, yd = 0;
int tmpx = 0, tmpy = 0;
mytime = millis();
for (int z = 0; z < 209; z++)
{
tmpy = (z / 19);
tmpx = z - (tmpy * 19);
xd = tmpx * 42;
yd = tmpy * 42;
tmpy = (z / 22);
tmpx = z - (tmpy * 22);
yad = (tmpy * 69) + 10;
xad = (tmpx * 108) + 44;
myFiles.pan(xd, yd, 42, 42, xad, yad, 2374, 696, "icons.raw");
}
mytime1 = millis();
cout << F("Time to draw 210 42x42 icons ") << (mytime1 - mytime) << F(" ms") << endl;
delay(5000);
cout << F("Thanks for watching!") << endl;
myGLCD.clrScr();
myGLCD.setFont(BigFont);
myGLCD.setColor(VGA_GREEN);
myGLCD.print("Thanks for watching!", CENTER, 231);
}

void loop()
{
}

Thanks any tips
Thomas

This thread may help, reply #13:

https://forum.arduino.cc/index.php?topic=286567.0

Hi ard_newbie!

Thank you for your advice.

I was reading that post, that before I did start this new topic. I was checking all the items, and the UTFT, and UTFT touch parts are working well.

The SD card libaray (UTFT_SdRaw) is still couldn't compile.

Best Regards!

Thomas