Help converting from a 16Bit Touchscreen to a 8Bit version

My apologies for NOT following (or Knowing) how to use this forum properly!
I am looking for someone to help me with a unique situation. I have an application that was developed a long time ago, using a 3.5" Touchscreen 16Bit Mega2560 Version. It uses the UTFT & UrTouch libraries. All was well until I could no longer find
the same 3.5". So I found a 3.95" Touchscreen and it worked great using the ILI9481 driver. Fast fwd. This screen is no longer available in the 16Bit Version. Even though it is advertised on Aliexpress

as well as Amazon. My question is, What changes are necessary to modify this application for using a 8Bit version of this screen?
Original Perfect working


Distorted when using same type screen except (8Bit Version).

My apologies to David_Prentice for not posting in public forum!!

Your photo shows the 16-bit interface. i.e. R5 = 0L

From mcufriend_how_to.txt

17. If you do not have a standard Uno Shield, you can add a SPECIAL to the mcufriend_special.h
    Edit mcufriend_shield.h:  #define USE_SPECIAL
    Edit mcufriend_special.h: e.g. #define USE_MEGA_16BIT_SHIELD
    If your "special" is write-only,  the library can not read the ID.  It always returns 0xD3D3

Since you are using UTFTGLUE.h you need to specify ID for a write-only display e.g. from
C:\Users\ ... \Documents\Arduino\libraries\Mcufriend_kbv\UTFTGLUE.h

    void InitLCD(byte orientation=LANDSCAPE) {
        MCUFRIEND_kbv::reset();
        uint16_t ID = MCUFRIEND_kbv::readID();
//       if (ID == 0) ID = 0x9341;        //DealExtreme with EXTC=0
//       if (ID == 0x8989) ID = 0x1289;
//       if (ID == 0xD3D3) ID = 0x9481;   //write-only controller
//       if (ID == 0xD3D3) ID = 0x9486;   //write-only controller
       if (ID == 0xD3D3) ID = 0x9488;   //write-only controller
//         if (ID == 0xD3D3) ID = 0x9090;   //write-only controller HX8357-D
//         if (ID == 0x9327 && orientation == LANDSCAPE) orientation = 3;
        MCUFRIEND_kbv::begin(ID);
        MCUFRIEND_kbv::setRotation(_orient = orientation);
        _radius = 4;
    }

The photo shows 16-bit.
If you want to use 8-bit (as it arrives from Amazon)

#define USE_MEGA_8BIT_PORTC_SHIELD

David.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.