1. The Arduino Library Manager should find and install MCUFRIEND_kbv library

2. Install the Adafruit_GFX library if not already in your User libraries.

3. Insert your Mcufriend style display shield into UNO.   Only 28-pin shields are supported.

4. Build any of the Examples from the File->Examples->Mcufriend_kbv menu.  e.g. graphictest_kbv.ino

5. Most of them will write some text to the Serial window (9600 baud).   The BMP examples require you to copy the pictures from the bitmaps/ folder to your microSD (root directory)

6. This library is only intended for UNO and these specific Shields.   It will work on a MEGA2560 but not very fast.

7. The constructor takes no arguments (because it only works with these shields)

8. The examples are the standard Adafruit ones.   You can see my edits by searching for "kbv"

9. Any Adafruit sketch should work with the MCUFRIEND_kbv constructor() but should allow extra ID values
An Adafruit constructor(cs, rs, wr, rd, rst) IGNORES any arguments.   i.e. it only uses the shield control pins

10. It currently supports UNO shields with "mcufriend.com" pcbs with controllers:
HX8347-A 240x320  ID=0x8347 #define SUPPORT_8347A *** Untested ***
HX8347-D 240x320  ID=0x4747 #define SUPPORT_8347D
HX8347-G 240x320  ID=0x7575 #define SUPPORT_8347D
HX8347-I 240x320  ID=0x9595 #define SUPPORT_8347D
HX8352-A 240x400  ID=0x5252 #define SUPPORT_8352A
HX8357-B 320x480  ID=0x8357 (shares init with 8357-D)
HX8357-D 320x480  ID=0x9090 (ID has changed from 0x8357)
HX8367-A 240x320  ID=0x6767 #define SUPPORT_8347D
ILI9302  240x320  ID=0x9302 
ILI9320  240x320  ID=0x9320
ILI9325  240x320  ID=0x9325
ILI9326  240x400  ID=0x9326 #define SUPPORT_9326_5420
ILI9327  240x400  ID=0x9327
ILI9328  240x320  ID=0x9328 
ILI9329  240x320  ID=0x9329 
ILI9331  240x320  ID=0x9331 
ILI9335  240x320  ID=0x9335 
ILI9338  240x320  ID=0x9338 
ILI9340  240x320  ID=0x9340 
ILI9341  240x320  ID=0x9341 
ILI9481  320x480  ID=0x9481  
ILI9486  320x480  ID=0x9486
ILI9487  320x480  ID=0x9488
ILI9488  320x480  ID=0x9488 (weird 555 display :#define SUPPORT_9488_555) 
LGDP4532 240x320  ID=0x4532 #define SUPPORT_4532
LGDP4535 240x320  ID=0x4535 #define SUPPORT_4535
NT35310  320x480  ID=0x5310 (hardware must be set for 8-bit parallel)
R61505   240x320  ID=0x1505 (not working)
R61505V  240x320  ID=0xB505
R61505W  240x320  ID=0xC505 
R61509V  240x400  ID=0xB509 #define SUPPORT_B509_7793
R61520   240x320  ID=0x1520 (no Vertical Scroll)
R61526A  240x320  ID=0x1526 (no Vertical Scroll) configure NVM with sketch
R61580   240x320  ID=0x1580 #define SUPPORT_1580 *** Untested ***
R61581   320x480  ID=0x1581
RM68090  240x320  ID=0x6809
RM68140  320x480  ID=0x6814 #define SUPPORT_68140
S6D0139  240x320  ID=0x0139 #define SUPPORT_0139 *** Untested ***
S6D0154  240x320  ID=0x0154 #define SUPPORT_0154
SPFD5408 240x320  ID=0x5408
SPFD5420 240x400  ID=0x5420 #define SUPPORT_9326_5420
SSD1963  800x480  ID=0x1963
SSD1289  240x320  ID=0x1289 #define SUPPORT_1289
ST7781   240x320  ID=0x7783 #define SUPPORT_7781 (no Vertical Scroll)
ST7789V  240x320  ID=0x7789
ST7793   240x400  ID=0x7793 #define SUPPORT_B509_7793
ST7796   320x480  ID=0x7796
UC8230   240x320  ID=0x8230 #define SUPPORT_8230
UNKNOWN  320x480  ID=0x1511 (scroll directions not correct)
UNKNOWN  240x320  ID=0x1602
UNKNOWN  240x320  ID=0xAC11

Most of these controllers are #define SUPPORT_xxxx by default.
You can save Flash memory on a Uno by commenting out the macro(s) in MCUFRIEND_kbv.cpp

11. It should run on a UNO, MEGA2560, LEONARDO, DUE, ZERO, M0-PRO, 
It also runs on NUCLEO-F103 and TEENSY3.2 with Sparkfun Adapter

12. These Mcufriend-style shields tend to have a resistive TouchScreen on A1, 7, A2, 6 but are not always the same rotation of direction.
Run the diagnose_Touchpins.ino sketch to detect which pins are used
Run the TouchScreen_Calibr_kbv.ino sketch to diagnose your model and then scale the result from TouchScreen.h methods()
The Resistive TouchScreen does not work on the Due.   It seems to be upset by sharing pins.  I have discovered why.   
(You need a new Touch library.)

13. The graphictest_kbv.ino sketch runs the standard Adafruit tests and reports the execution time.
    The Scroll tests show each screen rotation, colours, scroll directions, colour inversion.
    Vertical scroll is up/down in Portrait modes.  Left/right in Landscape
    Band Scroll should just move the coloured Band.   ILI9320 style will always move the whole screen.	
    The text "SOFTWARE SCROLL" should move horizontally across the screen or report a readPixel() ERROR.
	
14. The scroll_kbv.ino sketch should scroll a window or subwindow for most chips.   Not all chips can scroll.

15. The readpixel_kbv.ino sketch should display memory in each aspect. 

16. The GLUE_Demo_320x240.ino sketch uses a "GLUE" class to display a UTFT sketch on supported mcufriend shields.   
    It is NOT perfect.   Please report any problems.    It is designed as a CONVENIENCE for legacy UTFT code.   
    Please use MCUFRIEND_kbv method()s in new code. 

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
	
18. Please run LCD_ID_readreg.ino to verify your non-standard wiring.  Paste the defines to a Forum message.

CHANGE HISTORY: is now in "mcufriend_history.txt"
