MCUFRIEND_kbv Library for Uno 2.4, 2.8, 3.5, 3.6, 3.95 inch mcufriend Shields

@leonardojc,

Please run this sketch:

#include <Adafruit_GFX.h> // Hardware-specific library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

// Assign human-readable names to some common 16-bit color values:
#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

void drawboxatxy(int x, int y, int w, int h, uint16_t color)
{
    tft.drawRect(x, y, w, h, WHITE);
    tft.fillRect(x + 1, y + 1, w - 2, h - 2, color);
    tft.setTextSize(1);
    tft.setCursor(x + 3, y + 3);
    tft.print(x);
    tft.print(",");
    tft.print(y);
    tft.setTextSize(4);
    tft.setCursor(x + 3, y + 12);
    tft.print("F");
}

void setmadctl(uint8_t val, const char *msg)
{
    tft.pushCommand(0x36, &val, 1);
    tft.println(msg);
    delay(5000);
}

void setup()
{
    uint8_t pixfmt = 0x55;
    Serial.begin(9600);
    uint16_t ID = tft.readID();
    //    tft.begin(0x6814);
    tft.begin(ID);
    if (ID != 0x6814) tft.pushCommand(0x3A, &pixfmt, 1);
    tft.setTextColor(WHITE);
}

int aspect = 0;
const char *aspectname[] = {
    "PORTRAIT", "LANDSCAPE", "PORTRAIT_REV", "LANDSCAPE_REV"
};

void loop()
{
    if (++aspect > 3) aspect = 0;
    tft.setRotation(aspect);
    uint8_t current = tft.readReg(0x0B);   //RDMADCTL
    uint8_t a[6];   //buffer for data arguments
    int wid = tft.width();
    int ht = tft.height();
    tft.fillScreen(BLACK);
    drawboxatxy(0 + 48, 0 + 48, 48, 48, RED);   //tlhc
    drawboxatxy(wid - 96, 0 + 48, 48, 48, GREEN);   //trhc
    drawboxatxy(0 + 48, ht - 96, 48, 48, BLUE);   //blhc
    drawboxatxy(wid - 96, ht - 96, 48, 48, MAGENTA);   //brhc
    tft.setTextSize(2);
    tft.setCursor(0, 100);
    tft.println(aspectname[aspect]);
    delay(5000);
    setmadctl(current | 0x01, "Vertical Flip");
    setmadctl(current | 0x02, "Horizontal Flip");
    setmadctl(current ^ 0x40, "Invert MX");
    setmadctl(current ^ 0x80, "Invert MY");
}

You should either see coloured boxes move and/or text appear mirrored.
If you can take video it would be helpful but JPEGs are ok. If you do a video, you can reduce the delays down to a few milliseconds to make a "short" video. I can single step the video on the PC.

Please understand that I do not own a readable RM68140. So any code can only be written with the help of a remote owner.

David.