1.54-inch E-paper Display
Contents
Support[edit]
1.54-inch E-paper Display
Setup
Install Seeed GFX Library https://github.com/Seeed-Studio/Seeed_GFX
This library has same function as TFT library and no compatible with it. If you have installed TFT library or other similary display libraries, please uninstall it first.
Create a driver.h file and paste the following code into it.
Seeed GFX Library - Online Configuration Generator
https://seeed-studio.github.io/Seeed_GFX/
// driver.h file #define BOARD_SCREEN_COMBO 505 // 1.54 inch monochrome ePaper Screen (SSD1681) #define USE_XIAO_EPAPER_BREAKOUT_BOARD
Sketch -> Include Library -> Add .ZIP
Seeed_GFX-master.zip
Upload the Code
driver.h
HelloWorld.ino
Liens externes[edit]
https://www.seeedstudio.com/1-54-Monochrome-ePaper-Display-with-200x200-Pixels-p-5776.html Shop
https://wiki.seeedstudio.com/XIAO-eInk-Expansion-Board/ Wiki
Exemples[edit]
/examples/ePaper/Basic
1 Bitmap: Display a bitmap image.
2 Clock: Display a clock.
3 Clock_digital: Display a digital clock.
4 HelloWorld:
5 Shape: Display different sizes of words and shape randomly.
[Code 1] Display a bitmap image[edit]
#include "TFT_eSPI.h"
#include "image.h"
#ifdef EPAPER_ENABLE
EPaper epaper;
#endif
void setup()
{
#ifdef EPAPER_ENABLE
Serial.begin(115200);
delay(2000);
Serial.println("1.54\" E-Paper Bitmap Display Example");
epaper.begin();
// Clear screen to white
epaper.fillScreen(TFT_WHITE);
epaper.update();
delay(1000);
// Display bitmap image using drawBitmap API
// drawBitmap(x, y, bitmap_data, width, height, color)
epaper.drawBitmap(0, 0, gImage_1inch54, 200, 200, TFT_BLACK);
epaper.update();
Serial.println("Bitmap displayed successfully");
// Put display to sleep to save power
epaper.sleep();
#else
Serial.begin(115200);
Serial.println("EPAPER_ENABLE not defined. Please select the correct setup file.");
#endif
}
void loop()
{
// Nothing to do here
}
onglet driver.h
// driver.h file #define BOARD_SCREEN_COMBO 505 // 1.54 inch monochrome ePaper Screen (SSD1681) #define USE_XIAO_EPAPER_BREAKOUT_BOARD
onglet image.h
/*
* Image header file for 1.54" E-Paper Display
*
* Image specifications:
* - Size: 200x200 pixels
* - Format: 1-bit monochrome bitmap
* - Color depth: Black and White
*
* To generate your own image:
* 1. Prepare a 200x200 pixel image
* 2. Convert to 1-bit monochrome bitmap
* 3. Use image2cpp or similar tool to generate C array
* 4. Replace the array below with your generated data
*/
#ifndef _IMAGE_H_
#define _IMAGE_H_
// Placeholder for 200x200 bitmap image
// Replace this with your actual image data
const unsigned char gImage_1inch54[] PROGMEM = {
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, 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, 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, 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, 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, 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, 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, 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, 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, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x00,
0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x07, 0xC0,
0x7C, 0x07, 0xC0, 0xFD, 0x81, 0xFC, 0xC6, 0x18, 0x7E, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x0F, 0xF0, 0xFE, 0x1F, 0xE1, 0xFF, 0x83, 0xFC, 0xEE,
0x18, 0xFF, 0xCC, 0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
0x1C, 0x71, 0xC7, 0x1C, 0x73, 0xC7, 0x83, 0x00, 0xEE, 0x19, 0xE3, 0xCC, 0xE3, 0xC0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x18, 0x3B, 0x83, 0x38, 0x33, 0x83, 0x83,
0x80, 0xCE, 0x19, 0xC1, 0xCD, 0xC1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7C, 0x3F, 0xFB, 0xFF, 0xBF, 0xF3, 0x03, 0x83, 0xF0, 0xCE, 0x19, 0x81, 0xCD, 0xC0, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0xFB, 0xFF, 0xBF, 0xF3,
0x03, 0x81, 0xFC, 0xCE, 0x19, 0x81, 0xCD, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xB8, 0x03, 0x80, 0x38, 0x03, 0x03, 0x80, 0x1C, 0xCE, 0x19, 0x81, 0xCD,
0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9C, 0x01, 0x80,
0x38, 0x03, 0x87, 0x80, 0x0C, 0xC6, 0x19, 0xC3, 0xCC, 0xE1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x9F, 0xF1, 0xFF, 0x1F, 0xE1, 0xFF, 0x83, 0x1C, 0xE7, 0xF8,
0xFF, 0xCC, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x0F,
0xE0, 0xFE, 0x0F, 0xE0, 0xFF, 0x83, 0xF8, 0xE3, 0xF0, 0x7F, 0xCC, 0x7F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x03, 0x80, 0x38, 0x03, 0x80, 0x39, 0x80, 0xE0,
0x20, 0xC0, 0x1C, 0xCC, 0x1C, 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, 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, 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, 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, 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, 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, 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,
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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
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, 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, 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, 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, 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, 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, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79,
0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xDC, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFE, 0xFC, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x00, 0x01, 0x80, 0x13, 0xC6, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0xB7, 0xE6, 0x66, 0xE4,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xE6, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xFC, 0xC6, 0x76,
0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x04, 0x3C, 0xCC, 0xC6, 0x66, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x30, 0xCC,
0xC3, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
0xFF, 0xF8, 0x00, 0x03, 0x00, 0x3F, 0x3B, 0x70, 0xCE, 0xC1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x43, 0x06, 0x3F, 0x33,
0xB0, 0xE6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFE,
0x00, 0x00, 0xFF, 0xF8, 0x00, 0xE3, 0x9F, 0xBB, 0xB3, 0xBE, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0xF7, 0x99,
0x99, 0xBB, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0xF7, 0x99, 0x99, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFC, 0x00,
0x7F, 0x99, 0x99, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x03, 0xFB, 0xFC, 0x00, 0x7D, 0x9F, 0x98, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x30, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x03, 0xFB,
0xFC, 0x00, 0x6C, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xE7, 0x60, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x07, 0xF3, 0xFC, 0x00, 0x64, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0xC0, 0x02, 0x31, 0x33, 0x60, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00,
0x07, 0xF3, 0xFC, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xB8, 0x71, 0xE0,
0x00, 0x03, 0xFC, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x07, 0xF3, 0xFE, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0x07, 0x99, 0x99, 0xB1, 0xC0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x1F, 0xE0,
0x00, 0x00, 0x0F, 0xF3, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x66, 0x19, 0x99,
0xB8, 0xC0, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xE3, 0xFE, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x67, 0x19, 0x99, 0xF8, 0xC1, 0x00, 0x7F, 0xFE, 0x00, 0x00,
0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xE1, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xC6, 0x67,
0xD9, 0x9C, 0xC1, 0xFF, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1F, 0xE1, 0xFE,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xE7, 0x60, 0xDF, 0x80, 0x0F, 0xFF, 0x01, 0xFF, 0xFE,
0x00, 0x00, 0x0F, 0xF7, 0xFC, 0x00, 0x1F, 0xC1, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xE0,
0x66, 0x77, 0xDE, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x00, 0x3F,
0xC1, 0xFF, 0x00, 0x00, 0x04, 0x00, 0x3E, 0x66, 0xC0, 0x66, 0x37, 0x8C, 0x7F, 0xFF, 0xFF, 0x01,
0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x3F, 0x81, 0xFF, 0xF0, 0x00, 0x3F, 0x0E, 0x7F,
0x7E, 0xE0, 0x7C, 0x20, 0x0F, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xFF, 0xFF,
0xC0, 0x3F, 0x81, 0xFF, 0xF0, 0x00, 0x3B, 0xBE, 0x73, 0x78, 0x60, 0x78, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0x00, 0x81, 0xFF, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xE0, 0x7F, 0x9F, 0xFF, 0xF0, 0x00, 0x31,
0x87, 0x73, 0x70, 0x60, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x07,
0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, 0xF0, 0x0F, 0x3B, 0x8F, 0x33, 0x3E, 0x40, 0x0F, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x07, 0xF8, 0x7F, 0xF0, 0x7F, 0xFF, 0xFF, 0xF8,
0x0D, 0x9F, 0x1B, 0x3F, 0x18, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0x00,
0x00, 0x07, 0xE0, 0x3F, 0xF0, 0xFF, 0xFF, 0xFF, 0xF8, 0x19, 0x9C, 0x3B, 0x3E, 0x00, 0x7F, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xF8, 0x7F, 0xFF,
0xFF, 0xF0, 0x1F, 0x98, 0x1F, 0x30, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x7F, 0xFF, 0xFF, 0x80, 0x1C, 0x18, 0x00, 0x33, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xF8,
0x7F, 0xFF, 0xFF, 0x80, 0x0F, 0x98, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x7F, 0xC0, 0x7F, 0x80, 0x07, 0x00, 0x1F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x00,
0x0F, 0xF8, 0x78, 0x00, 0x7F, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00,
0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F,
0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F,
0xC0, 0x00, 0x01, 0x80, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x03, 0xE0, 0x7F, 0xF0, 0x00,
0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x7F, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xFF, 0xFF,
0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07,
0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x3F, 0xE7, 0xC1, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x3F, 0xFF,
0xC3, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x3F, 0xFF, 0xC3, 0xE0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0F,
0xFF, 0xFF, 0xC3, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x1F, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7F, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFE, 0x7F, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF,
0xFF, 0xEF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFE, 0x7F, 0xF7, 0x3F, 0xFF, 0xFF,
0xF1, 0xE3, 0xE7, 0xF2, 0x39, 0x3F, 0xFF, 0xC7, 0x8F, 0x9F, 0xCC, 0xE7, 0x7F, 0xFF, 0xFF, 0xFF,
0xC0, 0xFF, 0xFF, 0xFE, 0x7F, 0xE7, 0xFF, 0xFF, 0xFF, 0xC0, 0xC1, 0xC3, 0xF3, 0x39, 0xBC, 0xF3,
0x03, 0x07, 0x0F, 0xCC, 0xE7, 0x3F, 0xFF, 0xFF, 0xFF, 0xCE, 0x61, 0xC3, 0x8E, 0x66, 0x41, 0x38,
0x70, 0x73, 0xFC, 0xCC, 0x99, 0xF7, 0x33, 0xBE, 0x67, 0xF3, 0x32, 0x67, 0xDC, 0xE7, 0x3F, 0xFF,
0xFF, 0xFF, 0xCC, 0x40, 0x83, 0x06, 0x66, 0x41, 0x30, 0x30, 0x33, 0xFC, 0xCC, 0x99, 0xF7, 0x33,
0x9F, 0x0F, 0xF3, 0x32, 0x67, 0xDC, 0x67, 0xBF, 0xFF, 0xFF, 0xFF, 0xC0, 0xCC, 0x8E, 0x62, 0x66,
0x67, 0x33, 0x33, 0x33, 0xF8, 0xCC, 0x99, 0xE7, 0x13, 0x9F, 0x9F, 0xE3, 0x32, 0x67, 0x9C, 0x07,
0xBF, 0xFF, 0xFF, 0xFF, 0xC1, 0xC0, 0xC2, 0x72, 0x66, 0x67, 0x33, 0x33, 0x3F, 0xF9, 0xCC, 0x99,
0xE7, 0x97, 0x9F, 0x0F, 0xE7, 0x32, 0x67, 0x9C, 0x67, 0xBF, 0xFF, 0xFF, 0xFF, 0xCC, 0xCF, 0xF2,
0x62, 0x66, 0x67, 0x33, 0x33, 0x3F, 0xF3, 0xCC, 0x99, 0xF7, 0x87, 0x9E, 0x67, 0xCF, 0x32, 0x67,
0xDC, 0xE7, 0xBF, 0xFF, 0xFF, 0xFF, 0xCC, 0xC5, 0x93, 0x06, 0x20, 0x63, 0x30, 0x33, 0x33, 0xE0,
0xC1, 0x81, 0xF7, 0x87, 0x9C, 0xF3, 0x83, 0x06, 0x07, 0xDC, 0xE7, 0x3F, 0xFF, 0xFF, 0xFF, 0xCE,
0x61, 0x87, 0x0F, 0x30, 0x71, 0x38, 0x73, 0x33, 0xC0, 0xE1, 0xC3, 0xF3, 0xC7, 0xBF, 0xFF, 0x03,
0x8F, 0x0F, 0xCC, 0xE7, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0x3F, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0x7F,
0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x8F, 0xCE, 0x0E, 0x7F, 0xFC,
0x18, 0x3E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x7F, 0xFF, 0xFF, 0x07, 0x86, 0x07, 0xFF, 0xFC, 0x18, 0x1C, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xE1, 0xD1, 0x91, 0xC3, 0xC4, 0x18, 0x74, 0xDF, 0xE7, 0x86, 0x62,
0x60, 0xFC, 0xF9, 0x98, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xC0, 0xC0,
0x81, 0xC1, 0x84, 0x10, 0x60, 0x8F, 0xE7, 0x26, 0x62, 0x60, 0x7C, 0xF9, 0x99, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCC, 0xCC, 0x88, 0x99, 0x1E, 0x73, 0x23, 0xDF, 0xE6,
0x66, 0x06, 0x66, 0x7C, 0x18, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF,
0xCC, 0xCC, 0x8C, 0x81, 0x3E, 0x63, 0x23, 0xFF, 0xCE, 0x06, 0x0E, 0x66, 0x7C, 0x38, 0x39, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCC, 0xCC, 0x8C, 0x9F, 0x3E, 0x73, 0x23,
0xFF, 0x8E, 0x06, 0x7E, 0x66, 0x7C, 0xF9, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0xC0, 0xCC, 0x8C, 0x8B, 0x86, 0x30, 0x23, 0x8F, 0x03, 0xE6, 0x7E, 0x66, 0x7C, 0xF9,
0xFC, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE1, 0xCC, 0x8C, 0xC3, 0x87,
0x18, 0x63, 0x9F, 0x03, 0xE6, 0x7E, 0x66, 0x7C, 0xF9, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF,
0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x7C, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0x7C,
0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF,
0xE9, 0x0E, 0x66, 0x1C, 0x61, 0xCE, 0x1D, 0xF8, 0x7C, 0xE1, 0x99, 0xC7, 0x30, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xE1, 0x06, 0x64, 0x18, 0x60, 0xCC, 0x18,
0xF8, 0x7C, 0xC0, 0x99, 0x83, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xCC, 0x67, 0xE6, 0x64, 0x71, 0xFC, 0xCC, 0xCD, 0xF2, 0x7C, 0xCC, 0x99, 0x33, 0x23, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0x67, 0x07, 0x0E, 0x13, 0xE0,
0xCC, 0x0F, 0xF0, 0x3C, 0xC0, 0xCB, 0x03, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCE, 0x67, 0x27, 0x0F, 0x93, 0xE4, 0xCC, 0xFF, 0xF0, 0x3C, 0xCF, 0xC3, 0x3F,
0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x67, 0x07, 0x9C,
0x98, 0x60, 0xC4, 0x58, 0xFE, 0x7C, 0x45, 0xC3, 0x17, 0x24, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE7, 0x07, 0x9C, 0x38, 0x60, 0xE6, 0x19, 0xFE, 0x7E, 0x61,
0xE7, 0x83, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFE, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF,
0x87, 0x07, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xCF, 0xFC, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0x07, 0x03, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0x98, 0x30, 0xC8, 0x18, 0x78,
0xE3, 0x9F, 0x3F, 0x33, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCC, 0x08, 0x20, 0xC0, 0x18, 0x30, 0xC1, 0x9F, 0x1F, 0x33, 0x3F, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 0xE6, 0x47,
0x3E, 0x23, 0x89, 0x9F, 0x07, 0x03, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 0xE0, 0x4F, 0x38, 0x27, 0x81, 0xFF, 0xE3, 0x07, 0x3F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC,
0xE7, 0xCF, 0x33, 0x23, 0x8F, 0xFF, 0xF3, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 0x62, 0xCF, 0x30, 0x30, 0xC1, 0x9F, 0x03,
0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xCC, 0xCE, 0x30, 0xCF, 0x38, 0x30, 0xE1, 0x9F, 0x07, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
#endif
[Code 2 Display a clock][edit]
/*
An example digital clock using a TFT LCD screen to show the time.
Demonstrates use of the font printing routines. (Time updates but date does not.)
For a more accurate clock, it would be better to use the RTClib library.
But this is just a demo.
This examples uses the hardware SPI only. Non-hardware SPI
is just too slow (~8 times slower!)
Based on clock sketch by Gilchrist 6/2/2014 1.0
Updated by Bodmer
A few colour codes:
code color
0x0000 Black
0xFFFF White
0xBDF7 Light Gray
0x7BEF Dark Gray
0xF800 Red
0xFFE0 Yellow
0xFBE0 Orange
0x79E0 Brown
0x7E0 Green
0x7FF Cyan
0x1F Blue
0xF81F Pink
*/
#include <TFT_eSPI.h> // Graphics and font library for ST7735 driver chip
#include <SPI.h>
#ifdef EPAPER_ENABLE // Only compile this code if the EPAPER_ENABLE is defined in User_Setup.h
EPaper epaper = EPaper(); // Invoke library, pins defined in User_Setup.h
uint32_t targetTime = 0; // for next 1 second timeout
byte omm = 99;
bool initial = 1;
byte xcolon = 0;
unsigned int colour = 0;
static uint8_t conv2d(const char* p) {
uint8_t v = 0;
if ('0' <= *p && *p <= '9')
v = *p - '0';
return 10 * v + *++p - '0';
}
uint8_t hh=conv2d(__TIME__), mm=conv2d(__TIME__+3), ss=conv2d(__TIME__+6); // Get H, M, S from compile time
#endif
void setup(void) {
#ifdef EPAPER_ENABLE
epaper.begin();
epaper.setRotation(1);
epaper.fillScreen(TFT_BLACK);
epaper.setTextColor(TFT_YELLOW, TFT_BLACK); // Note: the new fonts do not draw the background colour
epaper.update(); // update the display
targetTime = millis() + 1000;
#endif
}
void loop() {
#ifdef EPAPER_ENABLE
if (targetTime < millis()) {
targetTime = millis()+1000;
ss++; // Advance second
if (ss==60) {
ss=0;
omm = mm;
mm++; // Advance minute
if(mm>59) {
mm=0;
hh++; // Advance hour
if (hh>23) {
hh=0;
}
}
}
if (ss==0 || initial) {
initial = 0;
epaper.setTextColor(TFT_GREEN, TFT_BLACK);
epaper.setCursor (8, 52);
epaper.print(__DATE__); // This uses the standard ADAFruit small font
epaper.setTextColor(TFT_BLUE, TFT_BLACK);
epaper.drawCentreString("It is windy",120,48,2); // Next size up font 2
//epaper.setTextColor(0xF81F, TFT_BLACK); // Pink
//epaper.drawCentreString("12.34",80,100,6); // Large font 6 only contains characters [space] 0 1 2 3 4 5 6 7 8 9 . : a p m
}
// Update digital time
byte xpos = 6;
byte ypos = 0;
if (omm != mm) { // Only redraw every minute to minimise flicker
// Uncomment ONE of the next 2 lines, using the ghost image demonstrates text overlay as time is drawn over it
epaper.setTextColor(TFT_BLACK, TFT_BLACK); // Leave a 7 segment ghost image, comment out next line!
//epaper.setTextColor(TFT_BLACK, TFT_BLACK); // Set font colour to black to wipe image
// Font 7 is to show a pseudo 7 segment display.
// Font 7 only contains characters [space] 0 1 2 3 4 5 6 7 8 9 0 : .
epaper.drawString("88:88",xpos,ypos,7); // Overwrite the text to clear it
epaper.setTextColor(0xFBE0); // Orange
omm = mm;
if (hh<10) xpos+= epaper.drawChar('0',xpos,ypos,7);
xpos+= epaper.drawNumber(hh,xpos,ypos,7);
xcolon=xpos;
xpos+= epaper.drawChar(':',xpos,ypos,7);
if (mm<10) xpos+= epaper.drawChar('0',xpos,ypos,7);
epaper.drawNumber(mm,xpos,ypos,7);
}
if (ss%2) { // Flash the colon
epaper.setTextColor(TFT_BLACK, TFT_BLACK);
xpos+= epaper.drawChar(':',xcolon,ypos,7);
epaper.setTextColor(0xFBE0, TFT_BLACK);
}
else {
epaper.drawChar(':',xcolon,ypos,7);
colour = random(0xFFFF);
// Erase the old text with a rectangle, the disadvantage of this method is increased display flicker
epaper.fillRect (0, 64, 160, 20, TFT_BLACK);
epaper.setTextColor(TFT_WHITE);
}
epaper.update(); // update the display
}
#endif
}
onglet driver.h
// driver.h file #define BOARD_SCREEN_COMBO 505 // 1.54 inch monochrome ePaper Screen (SSD1681) #define USE_XIAO_EPAPER_BREAKOUT_BOARD
[Code 2 Display a clock - WIFI][edit]
#include <WiFi.h>
#include <time.h>
#include <TFT_eSPI.h> // Librairie pour ton écran E-paper
#include <SPI.h>
#ifdef EPAPER_ENABLE
EPaper epaper = EPaper(); // Pins définis dans User_Setup.h
#endif
// ⚙️ Paramètres WiFi
const char* ssid = "TON_SSID";
const char* password = "TON_MOTDEPASSE";
// ⚙️ Paramètres NTP
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 3600; // Décalage GMT (ex: +1h pour Suisse en hiver)
const int daylightOffset_sec = 3600; // Décalage été (DST)
// Variables pour éviter scintillement
int lastMinute = -1;
void setup() {
#ifdef EPAPER_ENABLE
epaper.begin();
epaper.setRotation(1);
epaper.fillScreen(TFT_BLACK);
epaper.setTextColor(TFT_WHITE, TFT_BLACK);
epaper.update();
#endif
// Connexion WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
// Initialisation NTP
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
}
void loop() {
// Récupérer l’heure système
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
return; // Si pas d’heure dispo
}
// Rafraîchir uniquement si la minute change
if (timeinfo.tm_min != lastMinute) {
lastMinute = timeinfo.tm_min;
#ifdef EPAPER_ENABLE
epaper.fillScreen(TFT_BLACK);
// Afficher la date
epaper.setTextColor(TFT_GREEN, TFT_BLACK);
epaper.setCursor(10, 20);
epaper.printf("%02d/%02d/%04d", timeinfo.tm_mday, timeinfo.tm_mon+1, timeinfo.tm_year+1900);
// Afficher l’heure
epaper.setTextColor(TFT_ORANGE, TFT_BLACK);
epaper.setCursor(10, 60);
epaper.printf("%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min);
epaper.update(); // Mise à jour écran
#endif
}
delay(1000); // Boucle chaque seconde mais rafraîchit seulement à chaque minute
}
[Code 2 Display a clock - WIFI v2][edit]
version modifié
#include <WiFi.h>
#include <time.h>
#include <TFT_eSPI.h> // Librairie pour ton écran E-paper
#include <SPI.h>
#ifdef EPAPER_ENABLE
EPaper epaper = EPaper(); // Pins définis dans User_Setup.h
#endif
// ⚙️ Paramètres WiFi
const char* ssid = "TON_SSID";
const char* password = "TON_MOTDEPASSE";
// ⚙️ Paramètres NTP
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 3600; // Décalage GMT (ex: +1h pour Suisse en hiver)
const int daylightOffset_sec = 3600; // Décalage été (DST)
// Variables pour éviter scintillement
int lastMinute = -1;
void setup() {
Serial.begin(115200);
#ifdef EPAPER_ENABLE
epaper.begin();
epaper.setRotation(1);
epaper.fillScreen(TFT_WHITE); // Fond blanc
epaper.setTextColor(TFT_BLACK, TFT_WHITE); // Texte noir sur fond blanc
epaper.update();
epaper.sleep(); // Mise en veille après init
#endif
// Connexion WiFi
WiFi.begin(ssid, password);
Serial.print("Connexion au WiFi ");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connecté !");
Serial.print("Adresse IP : ");
Serial.println(WiFi.localIP());
Serial.print("Adresse MAC : ");
Serial.println(WiFi.macAddress());
// Initialisation NTP
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
}
void loop() {
// Récupérer l’heure système
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
Serial.println("Erreur récupération heure NTP");
return; // Si pas d’heure dispo
}
// Rafraîchir uniquement si la minute change
if (timeinfo.tm_min != lastMinute) {
lastMinute = timeinfo.tm_min;
#ifdef EPAPER_ENABLE
//epaper.wakeup(); // Réveille l’écran avant mise à jour
epaper.fillScreen(TFT_WHITE);
// --- Affichage DATE (plus petite, centrée en haut) ---
epaper.setTextColor(TFT_BLACK, TFT_WHITE);
epaper.setTextDatum(TC_DATUM); // Centrage horizontal (Top Center)
epaper.drawString(
String(timeinfo.tm_mday) + "/" +
String(timeinfo.tm_mon+1) + "/" +
String(timeinfo.tm_year+1900),
epaper.width()/2, 30, 4 // police taille 2 -> 4
);
// --- Affichage HEURE (plus grande, centrée au milieu) ---
char buffer[6];
sprintf(buffer, "%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min);
epaper.setTextDatum(MC_DATUM); // Centrage horizontal + vertical (Middle Center)
epaper.drawString(buffer, epaper.width()/2, epaper.height()/2, 7); // police taille 6 -> 7
epaper.update(); // Mise à jour écran
//epaper.sleep(); // Mise en veille après mise à jour
#endif
// --- Sortie série ---
Serial.printf("Heure actuelle : %02d:%02d:%02d\n",
timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
}
delay(1000); // Boucle chaque seconde mais rafraîchit seulement à chaque minute
}