Подключение LCD дисплея ILI9486/ILI9341 к ESP32

В данный момент легко купить SPI дисплей для arduino, ESP32 и т.п.
LCD экраны с разрешением 320x240 пикселей как правило управляются драйвером ILI9341, а если разрешение 480x320 то драйвером ILI9486.

Подключение дисплея

ESP 32 LCD
3.3v VCC, LED
GND GND
D15 CS
D2 DC/RS
D4 RESET
D18 SCK
D23 SDI (MOSI)

pin SDO (MISO) - подключать не нужно!


esp32-ili9341_wot.png

Схема подключения touch
ESP 32 Touch
D18 T_CLK
D19 T_DO
D21 T_CS
D23 T_DIN

esp32-ili9341 with touch_bb.png


Установка и настройка библиотеки TFT_eSPI

Для загрузки библиотеки TFT_eSPI нужно открыть Arduino IDE, перейти в Инструменты -> Управлять библиотеками....

Введите в строку фильтрации TFT_eSPI, найдите эту библиотеку в отфильтрованном списке и установите.

Теперь нужно настроить TFT_eSPI для своего дисплея. Для этого нужно перейти в папку куда была установлена библиотека, отредактировать файл User_Setup.h, где нужно оставить в не закомментированном виде только те строки которые относятся к вашему дисплею.

Как перейти в папку куда была установлена TFT_eSPI

Откройте настройки Arduino IDE, скопируйте путь из поля вводаРазмещение папки скетчей.

Вставьте путь в проводнике, перейдите в папку libraries -> TFT_eSPI.


В моем случае, раскомментированны следующие строки:

// #define ILI9341_DRIVER
#define ILI9486_DRIVER

#define TFT_HEIGHT 320 // ST7789 240 x 320

#define TFT_INVERSION_OFF

#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS   15  // Chip select control pin
#define TFT_DC    2  // Data Command control pin
#define TFT_RST   4  // Reset pin (could connect to RST pin)

#define TOUCH_CS 21     // Chip select pin (T_CS) of touch screen

#define LOAD_GLCD   // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2  // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4  // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6  // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7  // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
#define LOAD_FONT8  // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define LOAD_GFXFF  // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts

#define SMOOTH_FONT

#define SPI_FREQUENCY  27000000
#define SPI_READ_FREQUENCY  20000000
#define SPI_TOUCH_FREQUENCY  2500000



Краткая информация по использованию

Цвета

  TFT_BLACK
  TFT_BROWN
  TFT_RED
  TFT_ORANGE
  TFT_YELLOW
  TFT_GREEN
  TFT_BLUE
  TFT_PURPLE
  TFT_DARKGREY
  TFT_WHITE
  TFT_CYAN
  TFT_MAGENTA
  TFT_MAROON
  TFT_DARKGREEN
  TFT_NAVY
  TFT_PINK

Если цвета на вашем дисплеи получаются инвертированными (например: черный цвет отображается как белый), то расскоментируйте #define TFT_INVERSION_OFF и закоментируйте #define TFT_INVERSION_ON или наоборот в файле User_Setup.h

Вывод текста

drawString(Текст, x, y);

tft.drawString("Hello Blog", 10, 10);

Рисование точки

drawPixel(x, y, цвет);

tft.drawPixel(10, 10, TFT_RED);

Рисование линии

drawLine(x1, y1, x2, y2, цвет);

tft.drawLine(10, 10, 100, 100, TFT_RED);

Рисование круга

drawCircle(x, y, радиус, цвет); - только границы

fillCircle(x, y, радиус, цвет); - заполненный круг

tft.drawCircle(100, 100, 40, TFT_BLUE);

Рисование прямоугольника

drawRect(x1, y1, ширина, высота, цвет); - только границы

fillRect(x1, y1, ширина, высота, цвет); - заполненный прямоугольник

tft.drawRect(10, 10, 100, 45, TFT_MAGENTA);

Рисование треугольника

drawTriangle(x1, y1, x2, y2, x3, y3, цвет); - только границы

fillTriangle(x1, y1, x2, y2, x3, y3, цвет); - заполненный треугольник

tft.drawTriangle(10, 160, 90, 10, 170, 160, TFT_PINK);

Рисование изображения

Рассмотрим пример, где у нас есть готовый файл и изображением.

Нужно конвертировать изображение в XBM формат, можно воспользоваться онлайн конвертерами.

Теперь нужно открыть XBM файл спомощю текстового редактора, скопировать содержимое в свой скетч.

drawXBitmap(x, y, данные изображения, ширина изображения, высота изображения, цвет изображения, цвет фона);

#include <SPI.h>
#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();

#define icon_width 240
#define icon_height 101
static uint8_t icon_bits[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
  0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
  0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
  0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
  0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7,
  0x6F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x80, 0xE6, 0xF6, 0x0F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
  0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F,
  0xBF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xC0, 0x7F, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x5F, 0x7A, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
  0x0F, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xEF,
  0xFB, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xC0, 0x7E, 0xDE, 0x77, 0x01, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
  0x0F, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE7,
  0x7F, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x07, 0x00, 0xE0, 0xFF, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF7, 0xEF, 0x07, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF,
  0x03, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA,
  0xDD, 0x7B, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0x00, 0xE0, 0x7F, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x80, 0x00, 0xFC, 0xBB, 0x7B, 0x0F, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
  0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x58,
  0xFF, 0xEE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x80, 0x05, 0x70, 0xEE, 0xFF, 0x77, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0xE0,
  0x7B, 0x77, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xD8, 0x1F, 0xC0, 0xDF, 0xEF, 0xEF, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x39, 0x80,
  0xF9, 0xF6, 0x7B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x6E, 0x27, 0x80, 0xB9, 0xFF, 0xFA, 0x07, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
  0x80, 0xED, 0xDF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x44, 0x08,
  0x00, 0x00, 0x80, 0xEF, 0xF6, 0x01, 0x00, 0x7F, 0x7F, 0x0B, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x24, 0x29,
  0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xC0, 0x7F, 0xFF, 0x03,
  0x00, 0xF6, 0xE9, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
  0xBF, 0xA2, 0x28, 0x01, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
  0x00, 0x00, 0xA0, 0xF7, 0xFF, 0x01, 0x00, 0xE6, 0xFD, 0x77, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF,
  0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0xBE, 0x6D, 0x07,
  0x00, 0x7C, 0xDF, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
  0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
  0x00, 0x00, 0xF8, 0xFF, 0xF7, 0x05, 0x00, 0xFC, 0xBB, 0xEE, 0x01, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF,
  0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xB8, 0x6B, 0xDE, 0x03,
  0x00, 0xBC, 0xED, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
  0x00, 0x00, 0x9C, 0xFE, 0x7F, 0x06, 0x00, 0xE8, 0xFB, 0x7F, 0x03, 0x00,
  0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF,
  0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xDB, 0xDB, 0x07,
  0x00, 0xBC, 0xBF, 0xE6, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
  0x00, 0x80, 0xED, 0xFF, 0xDD, 0x06, 0x00, 0xBC, 0x77, 0xFD, 0x1F, 0x00,
  0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF,
  0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x80, 0xFF, 0x5A, 0xFF, 0x07,
  0x00, 0xF8, 0xEE, 0xDF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0x03, 0xFE, 0xFF, 0x0F, 0xB8, 0xFF, 0xFF, 0xED, 0x1A,
  0x00, 0xC0, 0x7F, 0xFF, 0xF6, 0x07, 0x00, 0xB8, 0xFF, 0x97, 0x79, 0x00,
  0x00, 0x00, 0x00, 0xF8, 0xFF, 0x7F, 0xFF, 0xFF, 0x5F, 0x02, 0xF8, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xF0, 0xD6, 0xBD, 0x6F, 0x1D,
  0x00, 0xE0, 0x77, 0xFD, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07,
  0xF0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0x00, 0xF0, 0xEE, 0xFF, 0xF7, 0x1B, 0x00, 0xC0, 0xEF, 0xFB, 0xFD, 0x01,
  0x00, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x9C, 0x7F, 0x99, 0xFF, 0x7E,
  0x00, 0x80, 0xFA, 0xBF, 0xBF, 0x01, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00,
  0x80, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0x00, 0xDA, 0xFF, 0xBD, 0xFE, 0xFF, 0x00, 0x80, 0xFF, 0x97, 0x5A, 0x07,
  0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xEE, 0xFF, 0x67, 0x77,
  0x60, 0x00, 0xEC, 0xFE, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
  0x00, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0x00, 0x77, 0x7F, 0x7B, 0xDD, 0x7E, 0xC0, 0x01, 0xEE, 0xDB, 0xBB, 0x0D,
  0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xC0, 0xFF, 0xE5, 0xEF, 0xF7, 0x6F,
  0xC0, 0x01, 0x7C, 0x7F, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
  0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00,
  0xA0, 0xFE, 0xFF, 0xFE, 0x7F, 0x77, 0x60, 0x05, 0xF0, 0xDF, 0xFF, 0x3F,
  0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xE0, 0x7B, 0xBB, 0x77, 0xDE, 0x7D,
  0xC0, 0x07, 0x20, 0xFC, 0x6B, 0xE6, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
  0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0xB8, 0x6B, 0xFF, 0xEF, 0xFB, 0x7F, 0xC0, 0x1D, 0x00, 0x68, 0x77, 0xDE,
  0x01, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xF8, 0xFE, 0xB9, 0xFA, 0x9F, 0x6B,
  0x40, 0x1F, 0x00, 0xF0, 0xFE, 0x7F, 0x01, 0x00, 0x00, 0xFE, 0x7F, 0x00,
  0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0x6E, 0xFF, 0x9B, 0xFF, 0xBF, 0x79, 0xC0, 0x5A, 0x00, 0xC0, 0xFF, 0xFF,
  0x03, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFC, 0xB7, 0xFF, 0xED, 0xF6, 0x7F,
  0xC0, 0x7F, 0x00, 0x80, 0x77, 0xED, 0x07, 0x00, 0x00, 0xFE, 0xFF, 0x00,
  0x80, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00,
  0xFF, 0xEE, 0xFD, 0x77, 0x6F, 0x7F, 0xC0, 0x76, 0x00, 0x80, 0xDD, 0xFF,
  0x07, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xC0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xD6, 0xFF, 0xA7, 0xFE, 0xFF, 0xE9,
  0xC0, 0xFF, 0x00, 0x80, 0x7F, 0x69, 0x0E, 0x00, 0x00, 0xFC, 0xFF, 0x01,
  0xE0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0x9D, 0x7F, 0xFF, 0xEF, 0xFF, 0x3B, 0xC0, 0x7F, 0x00, 0x80, 0xFE, 0xFD,
  0x0F, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xFF, 0xDE, 0xDD, 0x7D, 0xB6, 0x7F,
  0x40, 0x6D, 0x00, 0x80, 0xD7, 0xBF, 0x0F, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
  0xFF, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00,
  0xDE, 0xD6, 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0xF7, 0x00, 0x80, 0x6D, 0xBF,
  0x06, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFC, 0x7F, 0x9D, 0xD5, 0x6B, 0x7B,
  0x80, 0x5E, 0x00, 0x80, 0xFF, 0xE9, 0x07, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
  0xFF, 0xFF, 0x07, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00,
  0xAE, 0xFF, 0xDB, 0x9F, 0xFE, 0x69, 0xC0, 0xFF, 0x00, 0xC0, 0xFF, 0xBB,
  0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xF8, 0xED, 0xFD, 0xFB, 0xDB, 0xFF,
  0xC0, 0x5D, 0x01, 0xC0, 0xF6, 0xFF, 0x03, 0x00, 0x00, 0xE0, 0xFF, 0xFF,
  0xFF, 0xFF, 0x01, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0xF0, 0xFF, 0xED, 0xF6, 0x7F, 0x3B, 0xC0, 0xED, 0x01, 0xE0, 0x77, 0xDF,
  0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xB0, 0x69, 0xFF, 0xBF, 0xE9, 0x7F,
  0xC0, 0xFF, 0x07, 0x70, 0xFE, 0xFD, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
  0xFF, 0x7F, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00,
  0xC0, 0xFD, 0xF6, 0x9F, 0xFD, 0x6F, 0xC0, 0xFA, 0x1F, 0xFC, 0xEF, 0x77,
  0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0xBF, 0xEF, 0xFB, 0xDF, 0xF6,
  0x40, 0xEF, 0xF9, 0xDF, 0x7B, 0x1D, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF,
  0xFF, 0x0F, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00,
  0x80, 0xBF, 0x77, 0xDD, 0xBF, 0x6F, 0xC0, 0x77, 0xFB, 0xFF, 0xFF, 0x1D,
  0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xE9, 0xFF, 0x77, 0xE9, 0x7F,
  0xC0, 0xFF, 0x5F, 0x9D, 0xD5, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x41,
  0x05, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00,
  0x00, 0xBC, 0xEE, 0xDF, 0xBB, 0x7F, 0x60, 0xEE, 0xF7, 0xDB, 0x9F, 0x03,
  0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0x7B, 0xFD, 0xFF, 0x66,
  0xC0, 0x7B, 0xBE, 0xFD, 0xFB, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0x03, 0x38,
  0x00, 0xB8, 0xE7, 0xFF, 0x7B, 0x76, 0xC0, 0xDE, 0xBB, 0xFD, 0xEE, 0x00,
  0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
  0x0F, 0x00, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0xE0, 0x7E, 0xBD, 0xEF, 0x3F,
  0x80, 0xF7, 0xFF, 0x97, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x04,
  0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0xFF, 0x3F,
  0x00, 0xC0, 0xFF, 0xE9, 0xFE, 0x1F, 0x00, 0x7F, 0x6F, 0xDD, 0x7F, 0x00,
  0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0xE0, 0xFF,
  0x1F, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x80, 0xEF, 0xBF, 0x7B, 0x0E,
  0x00, 0xEE, 0xF6, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
  0xFF, 0x3F, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x7F,
  0x00, 0x80, 0xFB, 0xBD, 0xEF, 0x07, 0x00, 0xFE, 0xEF, 0xFD, 0x17, 0x00,
  0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF,
  0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x6E, 0xFF, 0xFA, 0x07,
  0x00, 0x58, 0xFF, 0xDF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
  0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0xFF,
  0x00, 0x00, 0xFC, 0x6A, 0xFF, 0x03, 0x00, 0xFC, 0x77, 0xA7, 0x07, 0x00,
  0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF,
  0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xB8, 0xFF, 0x6D, 0x07,
  0x00, 0xBC, 0xDE, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
  0xFF, 0xFF, 0x7F, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0xF0, 0xFF, 0xFF, 0xFF,
  0x00, 0x00, 0xF8, 0xED, 0xFF, 0x03, 0x00, 0xFC, 0xFD, 0x77, 0x01, 0x00,
  0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
  0xFF, 0x03, 0xE0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0xFF, 0xD9, 0x05,
  0x00, 0x9C, 0xDF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x07, 0x80, 0xFF, 0xFF, 0x07,
  0x00, 0x00, 0xA0, 0x7F, 0x9D, 0x07, 0x00, 0xBC, 0x97, 0x7E, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF,
  0xFF, 0x03, 0x00, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x80, 0xD6, 0xFF, 0x07,
  0x00, 0xFC, 0xFD, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0x01, 0x81, 0x08, 0x28, 0x00, 0x00, 0x40, 0x01, 0x00,
  0x00, 0x00, 0x80, 0xDF, 0xDD, 0x07, 0x00, 0xBE, 0xFB, 0x0B, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xF7, 0x1E,
  0x00, 0xE7, 0xBF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x7E, 0x6F, 0x1F, 0xC0, 0xFE, 0x97, 0x0E, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xFE, 0xFD,
  0xA1, 0x77, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x40,
  0xF7, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xF8, 0xFB, 0xBB, 0xFF, 0xED, 0x77, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x9F, 0xFE,
  0x9B, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00,
  0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xE0, 0xBF, 0x7F, 0xB9, 0xF6, 0x7E, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF7, 0xEB,
  0xFF, 0xEF, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x00,
  0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x80, 0xDE, 0xB7, 0xBB, 0x77, 0x2D, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xFE,
  0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0x00,
  0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xD6, 0xFF, 0xE5, 0xEE, 0x07, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x6F,
  0xBF, 0x7B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00,
  0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF8, 0xFE, 0xEE, 0xBF, 0x01, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xEE, 0xFF, 0xFF, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x6F,
  0xFF, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
  0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xC0, 0xF7, 0x7F, 0x6E, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xDD,
  0xDE, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
  0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xD6, 0x1F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA,
  0x7F, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
  0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8,
  0xED, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF,
  0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xDB, 0x01, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0,
  0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF,
  0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
  0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

void setup() {
  tft.init();
  tft.setRotation(1);
  tft.fillScreen(TFT_BLACK);
  tft.drawXBitmap(0, 60, icon_bits, icon_width, icon_height, TFT_WHITE, TFT_BLACK);
}


void loop() {}

photo_2021-05-05_11-56-34.jpg