Files
MCUFRIEND_kbv/extras/mcufriend_how_to.txt

118 lines
5.9 KiB
Plaintext
Raw Normal View History

2017-01-30 20:51:35 +00:00
1. The Arduino Library Manager should find and install MCUFRIEND_kbv library
2017-01-30 20:51:35 +00:00
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.
2017-01-30 20:51:35 +00:00
4. Build any of the Examples from the File->Examples->Mcufriend_kbv menu. e.g. graphictest_kbv.ino
2017-01-30 20:51:35 +00:00
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 ***
2016-05-05 16:11:16 +01:00
HX8347-D 240x320 ID=0x4747 #define SUPPORT_8347D
HX8347-G 240x320 ID=0x7575 #define SUPPORT_8347D
2016-05-05 16:11:16 +01:00
HX8347-I 240x320 ID=0x9595 #define SUPPORT_8347D
HX8352-A 240x400 ID=0x5252 #define SUPPORT_8352A
2018-04-08 15:42:31 +01:00
HX8352-B 240x400 ID=0x0065 #define SUPPORT_8352B
2017-05-16 13:52:56 +01:00
HX8357-B 320x480 ID=0x8357 (shares init with 8357-D)
2018-04-08 15:42:31 +01:00
HX8357-C 320x480 ID=0x9090 (ID has changed from 0x8357)
HX8357-D 320x480 ID=0x0099 #define SUPPORT_8357D_GAMMA
2017-01-26 11:19:42 +00:00
HX8367-A 240x320 ID=0x6767 #define SUPPORT_8347D
2017-09-17 23:07:36 +01:00
ILI9225 176x220 ID=0x9225 #define SUPPORT_9225
ILI9226 176x220 ID=0x9226 #define SUPPORT_9225
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
2017-02-03 22:38:50 +00:00
ILI9340 240x320 ID=0x9340
ILI9341 240x320 ID=0x9341
2017-05-23 16:35:11 +01:00
ILI9342 320x240 ID=0x9342 #define SUPPORT_9342
ILI9481 320x480 ID=0x9481
ILI9486 320x480 ID=0x9486
2017-05-23 16:35:11 +01:00
ILI9487 320x480 ID=0x9487
2017-05-16 13:52:56 +01:00
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
2017-03-22 22:34:27 +00:00
NT35310 320x480 ID=0x5310 (hardware must be set for 8-bit parallel)
2017-09-17 23:07:36 +01:00
R61505 240x320 ID=0x1505 works like an ILI9320
R61505V 240x320 ID=0xB505
R61505W 240x320 ID=0xC505
R61509V 240x400 ID=0xB509 #define SUPPORT_B509_7793
2017-01-26 11:19:42 +00:00
R61520 240x320 ID=0x1520 (no Vertical Scroll)
R61526A 240x320 ID=0x1526 (no Vertical Scroll) configure NVM with sketch
2017-03-22 22:34:27 +00:00
R61580 240x320 ID=0x1580 #define SUPPORT_1580 *** Untested ***
R61581 320x480 ID=0x1581
RM68090 240x320 ID=0x6809
RM68140 320x480 ID=0x6814 #define SUPPORT_68140
2018-04-30 18:32:39 +01:00
S6D0139 240x320 ID=0x0139 #define SUPPORT_0139 (no Band Scroll)
S6D0154 240x320 ID=0x0154 #define SUPPORT_0154
SPFD5408 240x320 ID=0x5408
SPFD5420 240x400 ID=0x5420 #define SUPPORT_9326_5420
2016-04-16 20:37:48 +01:00
SSD1963 800x480 ID=0x1963
2016-05-05 16:11:16 +01:00
SSD1289 240x320 ID=0x1289 #define SUPPORT_1289
2017-01-26 11:19:42 +00:00
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
2017-01-30 15:00:52 +00:00
UC8230 240x320 ID=0x8230 #define SUPPORT_8230
2017-01-26 11:19:42 +00:00
UNKNOWN 320x480 ID=0x1511 (scroll directions not correct)
UNKNOWN 240x320 ID=0x1602
UNKNOWN 240x320 ID=0xAC11
UNKNOWN 240x320 ID=0x2053 weird controller from BangGood (was ID=0x0000)
2018-04-08 15:42:31 +01:00
UNKNOWN 240x320 ID=0x8031 (no Vertical Scroll)
Most of these controllers are #define SUPPORT_xxxx by default.
2017-05-14 14:34:32 +01:00
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.
The TouchScreen_Calibr_native.ino sketch wiil diagnose Touch Pins, do Calibration, report to Serial Terminal.
The Calibration should work with the TouchScreen.h library from Adafruit.
You can always copy the local TouchScreen_kbv.h library from sketch to the global user libraries folder.
2017-05-14 14:34:32 +01:00
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.
2017-04-19 22:22:56 +01:00
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.
2018-05-09 15:30:17 +01:00
19. OPEN-SMART Shields have different wiring to regular Uno Shields:
Edit mcufriend_shield.h: #define USE_SPECIAL
Edit mcufriend_special.h: #define USE_OPENSMART_SHIELD_PINOUT
Edit MCUFRIEND_kbv.cpp: #define SUPPORT_8352B
CHANGE HISTORY: is now in "mcufriend_history.txt"