├── Exercise_04_01 └── Exercise_04_01.ino ├── Exercise_04_01_Solution └── Exercise_04_01_Solution.ino ├── Exercise_04_02 └── Exercise_04_02.ino ├── Exercise_04_02_Solution └── Exercise_04_02_Solution.ino ├── Exercise_04_03 └── Exercise_04_03.ino ├── Exercise_04_03_Solution └── Exercise_04_03_Solution.ino ├── Exercise_04_04 └── Exercise_04_04.ino ├── Exercise_04_04_Solution └── Exercise_04_04_Solution.ino ├── Exercise_04_05 └── Exercise_04_05.ino ├── Exercise_04_05_Solution └── Exercise_04_05_Solution.ino ├── Exercise_04_06 └── Exercise_04_06.ino ├── Exercise_04_06_Solution └── Exercise_04_06_Solution.ino ├── Exercise_05_01 └── Exercise_05_01.ino ├── Exercise_05_01_Solution └── Exercise_05_01_Solution.ino ├── Exercise_05_02 └── Exercise_05_02.ino ├── Exercise_05_02_Solution └── Exercise_05_02_Solution.ino ├── Exercise_05_03 └── Exercise_05_03.ino ├── Exercise_05_03_Solution └── Exercise_05_03_Solution.ino ├── Exercise_05_04 └── Exercise_05_04.ino ├── Exercise_05_04_Solution ├── Exercise_05_04_Solution.ino └── Rancho_Regular_16.h ├── Exercise_05_05 └── Exercise_05_05.ino ├── Exercise_05_05_Solution └── Exercise_05_05_Solution.ino ├── Exercise_05_06 └── Exercise_05_06.ino ├── Exercise_05_06_Solution └── Exercise_05_06_Solution.ino ├── LICENSE └── README.md /Exercise_04_01/Exercise_04_01.ino: -------------------------------------------------------------------------------- 1 | int counter = 1; 2 | 3 | void setup() { 4 | // Start the serial output here 5 | // Use 115200 as default speed 6 | } 7 | 8 | void loop() { 9 | // Write here to the serial console: "1. Hello world", "2. Hello world", etc 10 | 11 | // Increase the counter 12 | counter++; 13 | 14 | // Sleep a second 15 | delay(1000); 16 | } 17 | -------------------------------------------------------------------------------- /Exercise_04_01_Solution/Exercise_04_01_Solution.ino: -------------------------------------------------------------------------------- 1 | int counter = 1; 2 | 3 | void setup() { 4 | // Start the serial output here 5 | // Use 115200 as default speed 6 | Serial.begin(115200); 7 | } 8 | 9 | void loop() { 10 | // Explanation: The first line just prints (print) the counter without new line 11 | // The second (println) prints out Hello world and adds a new line afterwards 12 | // You could also do Serial.println(String(counter) + ". Hello world"); in one line 13 | Serial.print(counter); 14 | Serial.println(". Hello world"); 15 | 16 | // Increase the counter 17 | counter++; 18 | 19 | // Sleep a second 20 | delay(1000); 21 | } 22 | -------------------------------------------------------------------------------- /Exercise_04_02/Exercise_04_02.ino: -------------------------------------------------------------------------------- 1 | void setup() { 2 | Serial.begin(115200); 3 | 4 | // Setup here the Flash Button D3 for input 5 | 6 | } 7 | 8 | void loop() { 9 | // Read here the value of D3 and send it to the Serial 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Exercise_04_02_Solution/Exercise_04_02_Solution.ino: -------------------------------------------------------------------------------- 1 | void setup() { 2 | Serial.begin(115200); 3 | 4 | // Setup here the Flash Button D3 for input 5 | pinMode(D3, INPUT); 6 | 7 | } 8 | 9 | void loop() { 10 | // Read here the value of D3 and send it to the Serial console 11 | Serial.println(digitalRead(D3)); 12 | } 13 | -------------------------------------------------------------------------------- /Exercise_04_03/Exercise_04_03.ino: -------------------------------------------------------------------------------- 1 | void setup() { 2 | // Set the LED pin D0 into the correct mode (OUTPUT) 3 | 4 | } 5 | 6 | void loop() { 7 | // lets blink! 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Exercise_04_03_Solution/Exercise_04_03_Solution.ino: -------------------------------------------------------------------------------- 1 | boolean ledState = false; 2 | 3 | void setup() { 4 | // Set the LED pin D0 into the correct mode (OUTPUT) 5 | pinMode(D0, OUTPUT); 6 | } 7 | 8 | void loop() { 9 | // lets blink! 10 | digitalWrite(D0, ledState); 11 | ledState = !ledState; 12 | delay(1000); 13 | } 14 | -------------------------------------------------------------------------------- /Exercise_04_04/Exercise_04_04.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * Using NodeMCU Development Kit V1.0 3 | * Going beyond Blink sketch to see the blue LED breathing. 4 | * A PWM modulation is made in software because GPIO16 can't 5 | * be used with analogWrite(). 6 | * This code is from 7 | * https://arduining.com/2015/08/20/nodemcu-breathing-led-with-arduino-ide/ 8 | */ 9 | 10 | #define LED D0 // Led in NodeMCU at pin GPIO16 (D0). 11 | 12 | #define BRIGHT 350 // max led intensity (1-500) 13 | #define INHALE 1250 // Inhalation time in milliseconds. 14 | #define PULSE INHALE*1000/BRIGHT // How long is the LED on 15 | #define REST 1000 // Rest Between Inhalations. 16 | 17 | void setup() { 18 | pinMode(LED, OUTPUT); 19 | } 20 | 21 | void loop() { 22 | //ramp increasing intensity, Inhalation: 23 | for (int i=1;i0;i--){ 36 | // turn the LED on. 37 | 38 | // wait i*10 microseconds 39 | 40 | // turn the LED off. 41 | 42 | // wait PULSE-i*10 43 | 44 | yield(); //to prevent watchdog firing. 45 | } 46 | delay(REST); //take a rest... 47 | } 48 | -------------------------------------------------------------------------------- /Exercise_04_04_Solution/Exercise_04_04_Solution.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * LED_Breathing.ino Arduining.com 20 AUG 2015 3 | * Using NodeMCU Development Kit V1.0 4 | * Going beyond Blink sketch to see the blue LED breathing. 5 | * A PWM modulation is made in software because GPIO16 can't 6 | * be used with analogWrite(). 7 | * This code is from 8 | * https://arduining.com/2015/08/20/nodemcu-breathing-led-with-arduino-ide/ 9 | */ 10 | 11 | #define LED D0 // Led in NodeMCU at pin GPIO16 (D0). 12 | 13 | #define BRIGHT 350 // max led intensity (1-500) 14 | #define INHALE 1250 // Inhalation time in milliseconds. 15 | #define PULSE INHALE*1000/BRIGHT // How long is the LED on 16 | #define REST 1000 // Rest Between Inhalations. 17 | 18 | void setup() { 19 | pinMode(LED, OUTPUT); 20 | } 21 | 22 | void loop() { 23 | //ramp increasing intensity, Inhalation: 24 | for (int i=1;i0;i--){ 33 | digitalWrite(LED, LOW); // turn the LED on. 34 | delayMicroseconds(i*10); // wait 35 | digitalWrite(LED, HIGH); // turn the LED off. 36 | delayMicroseconds(PULSE-i*10); // wait 37 | yield(); //to prevent watchdog firing. 38 | } 39 | delay(REST); //take a rest... 40 | } 41 | -------------------------------------------------------------------------------- /Exercise_04_05/Exercise_04_05.ino: -------------------------------------------------------------------------------- 1 | 2 | #define BUTTON D3 3 | #define LED D0 4 | boolean state = true; 5 | 6 | void toggle() { 7 | state = !state; 8 | digitalWrite(LED, state); 9 | } 10 | 11 | void setup() { 12 | // Setup Serial 13 | Serial.begin(115200); 14 | 15 | // Setup Pins 16 | pinMode(BUTTON, INPUT); 17 | pinMode(LED, OUTPUT); 18 | digitalWrite(LED, HIGH); 19 | 20 | // Setup Interrupts. Experiment with FALLING, RISING and CHANGE 21 | 22 | } 23 | 24 | void loop() { 25 | // Nothing to do here 26 | } 27 | -------------------------------------------------------------------------------- /Exercise_04_05_Solution/Exercise_04_05_Solution.ino: -------------------------------------------------------------------------------- 1 | 2 | #define BUTTON D3 3 | #define LED D0 4 | boolean state = true; 5 | 6 | void toggle() { 7 | state = !state; 8 | digitalWrite(LED, state); 9 | } 10 | 11 | void setup() { 12 | // Setup Serial 13 | Serial.begin(115200); 14 | 15 | // Setup Pins 16 | pinMode(BUTTON, INPUT); 17 | pinMode(LED, OUTPUT); 18 | digitalWrite(LED, HIGH); 19 | 20 | // Setup Interrupts 21 | attachInterrupt(digitalPinToInterrupt(BUTTON), toggle, FALLING); 22 | } 23 | 24 | void loop() { 25 | // Nothing to do here 26 | } 27 | -------------------------------------------------------------------------------- /Exercise_04_06/Exercise_04_06.ino: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | 5 | // Change your credentials here 6 | const char* ssid = "SSID"; 7 | const char* password = "PASSW0RD"; 8 | 9 | // Change the host 10 | const char* host = "www.squix.org"; 11 | 12 | void setup() { 13 | Serial.begin(115200); 14 | 15 | Serial.print("Connecting to "); 16 | Serial.println(ssid); 17 | 18 | WiFi.begin(ssid, password); 19 | 20 | // Wait until WiFi is connected 21 | while (WiFi.status() != WL_CONNECTED) { 22 | delay(500); 23 | Serial.print("."); 24 | } 25 | 26 | Serial.println(""); 27 | Serial.println("WiFi connected"); 28 | Serial.println("IP address: "); 29 | Serial.println(WiFi.localIP()); 30 | } 31 | 32 | void loop() { 33 | delay(5000); 34 | 35 | Serial.print("connecting to "); 36 | Serial.println(host); 37 | 38 | // https uses port 443 39 | WiFiClientSecure client; 40 | const int httpPort = 80; 41 | if (!client.connect(host, httpPort)) { 42 | Serial.println("connection failed"); 43 | return; 44 | } 45 | 46 | // Add here the certificate check 47 | 48 | 49 | // We now create a URI for the request 50 | String url = "/"; 51 | 52 | Serial.print("Requesting URL: "); 53 | Serial.println(url); 54 | 55 | // This will send the request to the server 56 | client.print(String("GET ") + url + " HTTP/1.1\r\n" + 57 | "Host: " + host + "\r\n" + 58 | "Connection: close\r\n\r\n"); 59 | 60 | unsigned long timeout = millis(); 61 | while (client.available() == 0) { 62 | if (millis() - timeout > 5000) { 63 | Serial.println(">>> Client Timeout !"); 64 | client.stop(); 65 | return; 66 | } 67 | } 68 | 69 | // Read all the lines of the reply from server and print them to Serial 70 | while(client.available()){ 71 | String line = client.readStringUntil('\r'); 72 | Serial.print(line); 73 | } 74 | 75 | } 76 | 77 | -------------------------------------------------------------------------------- /Exercise_04_06_Solution/Exercise_04_06_Solution.ino: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | 5 | // Change your credentials here 6 | const char* ssid = "SSID"; 7 | const char* password = "PASSW0RD"; 8 | 9 | // Change the host 10 | const char* host = "www.google.ch"; 11 | 12 | void setup() { 13 | Serial.begin(115200); 14 | 15 | Serial.print("Connecting to "); 16 | Serial.println(ssid); 17 | 18 | WiFi.begin(ssid, password); 19 | 20 | // Wait until WiFi is connected 21 | while (WiFi.status() != WL_CONNECTED) { 22 | delay(500); 23 | Serial.print("."); 24 | } 25 | 26 | Serial.println(""); 27 | Serial.println("WiFi connected"); 28 | Serial.println("IP address: "); 29 | Serial.println(WiFi.localIP()); 30 | } 31 | 32 | void loop() { 33 | delay(5000); 34 | 35 | Serial.print("connecting to "); 36 | Serial.println(host); 37 | 38 | const char* fingerprint = "D9 35 14 26 D9 FC EA F3 20 9D 10 68 B7 0F 9E 60 FE EE 6F 16"; 39 | 40 | // https uses port 443 41 | WiFiClientSecure client; 42 | const int httpPort = 443; 43 | if (!client.connect(host, httpPort)) { 44 | Serial.println("connection failed"); 45 | return; 46 | } 47 | 48 | 49 | // Add here the certificate check 50 | if (client.verify(fingerprint, host)) { 51 | Serial.println("certificate matches"); 52 | } else { 53 | Serial.println("certificate doesn't match"); 54 | return; 55 | } 56 | 57 | // We now create a URI for the request 58 | String url = "/"; 59 | 60 | Serial.print("Requesting URL: "); 61 | Serial.println(url); 62 | 63 | // This will send the request to the server 64 | client.print(String("GET ") + url + " HTTP/1.1\r\n" + 65 | "Host: " + host + "\r\n" + 66 | "Connection: close\r\n\r\n"); 67 | 68 | unsigned long timeout = millis(); 69 | while (client.available() == 0) { 70 | if (millis() - timeout > 5000) { 71 | Serial.println(">>> Client Timeout !"); 72 | client.stop(); 73 | return; 74 | } 75 | } 76 | 77 | // Read all the lines of the reply from server and print them to Serial 78 | while(client.available()){ 79 | String line = client.readStringUntil('\r'); 80 | Serial.print(line); 81 | } 82 | 83 | } 84 | 85 | -------------------------------------------------------------------------------- /Exercise_05_01/Exercise_05_01.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * Exercise 5.01: draw two lines: 3 | * - from top left to bottom right 4 | * - from bottom left to top right 5 | */ 6 | 7 | // Include the correct display library 8 | // For a connection via I2C using Wire include 9 | #include 10 | #include 11 | 12 | // Declare the display driver 13 | 14 | void setup() { 15 | // Initialize the driver 16 | 17 | // Empty the frame buffer 18 | 19 | // Define the drawing color 20 | 21 | // Draw the lines 22 | 23 | // Write the frame buffer to the display 24 | 25 | } 26 | 27 | void loop() { 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /Exercise_05_01_Solution/Exercise_05_01_Solution.ino: -------------------------------------------------------------------------------- 1 | 2 | // Include the correct display library 3 | // For a connection via I2C using Wire include 4 | #include // Only needed for Arduino 1.6.5 and earlier 5 | #include "SSD1306Wire.h" // legacy include: `#include "SSD1306.h"` 6 | 7 | SSD1306Wire display(0x3c, D3, D4); 8 | 9 | void setup() { 10 | Serial.begin(115200); 11 | display.init(); 12 | 13 | display.clear(); 14 | display.setColor(WHITE); 15 | display.drawLine(0, 0, 128, 64); 16 | display.drawLine(0, 64, 128, 0); 17 | display.display(); 18 | 19 | } 20 | 21 | void loop() { 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Exercise_05_02/Exercise_05_02.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | 4 | SSD1306Wire display(0x3c, D3, D4); 5 | 6 | // The y variable will be used to animate the lines 7 | uint8_t y = 0; 8 | // The direction changes, when y reaches either 0 or 64 9 | sint8_t direction = 1; 10 | 11 | void setup() { 12 | // Initialize the driver 13 | display.init(); 14 | 15 | // Set the drawing color once 16 | display.setColor(WHITE); 17 | } 18 | 19 | void loop() { 20 | // Change the y value here 21 | 22 | if (y == 64) { 23 | // set y direction here 24 | 25 | } else if (y == 0) { 26 | // set y direction here 27 | 28 | } 29 | // Clear the frame buffer 30 | display.clear(); 31 | 32 | // Add the y variable in four places by either 33 | // adding y to the existing value or by subtracting from it 34 | display.drawLine(0, 0, 128, 64); 35 | display.drawLine(0, 64, 128, 0); 36 | 37 | // Write the frame buffer to the display. 38 | display.display(); 39 | 40 | } 41 | 42 | -------------------------------------------------------------------------------- /Exercise_05_02_Solution/Exercise_05_02_Solution.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | 4 | SSD1306Wire display(0x3c, D3, D4); 5 | 6 | // The y variable will be used to animate the lines 7 | uint8_t y = 0; 8 | // The direction changes, when y reaches either 0 or 64 9 | sint8_t direction = 1; 10 | 11 | void setup() { 12 | // Initialize the driver 13 | display.init(); 14 | 15 | // Set the drawing color once 16 | display.setColor(WHITE); 17 | } 18 | 19 | void loop() { 20 | // Change the y value 21 | y = y + direction; 22 | if (y == 64) { 23 | // decrease y 24 | direction = -1; 25 | } else if (y == 0) { 26 | // increase y 27 | direction = 1; 28 | } 29 | // Clear the frame buffer 30 | display.clear(); 31 | 32 | // Draw the lines by using the current y value 33 | display.drawLine(0, y, 128, 64 - y); 34 | display.drawLine(0, 64 - y, 128, y); 35 | 36 | // Write the frame buffer to the display. 37 | display.display(); 38 | 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Exercise_05_03/Exercise_05_03.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | 4 | SSD1306Wire display(0x3c, D3, D4); 5 | 6 | // Optional: declare counter and show it on the display 7 | // uint16_t ... 8 | 9 | void setup() { 10 | // Initialize the driver 11 | display.init(); 12 | 13 | // Set the font type here 14 | // display. ... 15 | 16 | // Set the drawing color once 17 | display.setColor(WHITE); 18 | } 19 | 20 | void loop() { 21 | // Clear the frame buffer 22 | display.clear(); 23 | 24 | // Draw the text and optionally add a counter 25 | // display. .... 26 | 27 | // Write the frame buffer to the display. 28 | display.display(); 29 | 30 | // Optional: Increase counter 31 | //...++ 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /Exercise_05_03_Solution/Exercise_05_03_Solution.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | 4 | SSD1306Wire display(0x3c, D3, D4); 5 | 6 | // Optional: declare counter and show it on the display 7 | uint16_t counter = 0; 8 | 9 | void setup() { 10 | // Initialize the driver 11 | display.init(); 12 | 13 | // Set the font type here 14 | display.setFont(ArialMT_Plain_10); 15 | 16 | // Set the drawing color once 17 | display.setColor(WHITE); 18 | } 19 | 20 | void loop() { 21 | // Clear the frame buffer 22 | display.clear(); 23 | 24 | // Draw the text and optionally add a counter 25 | display.drawString (10, 10, "Hello World: " + String(counter)); 26 | 27 | // Write the frame buffer to the display. 28 | display.display(); 29 | 30 | // Optional: Increase counter 31 | counter++; 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /Exercise_05_04/Exercise_05_04.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | 4 | // Include here the font file 5 | 6 | SSD1306Wire display(0x3c, D3, D4); 7 | 8 | void setup() { 9 | // Initialize the driver 10 | display.init(); 11 | 12 | // Set the font type here 13 | 14 | 15 | // Set the drawing color once 16 | display.setColor(WHITE); 17 | } 18 | 19 | void loop() { 20 | // Clear the frame buffer 21 | display.clear(); 22 | 23 | // Draw the text and optionally add a counter 24 | display.drawString (10, 10, "Crunchy Rancho"); 25 | 26 | // Write the frame buffer to the display. 27 | display.display(); 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /Exercise_05_04_Solution/Exercise_05_04_Solution.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | #include "Rancho_Regular_16.h" 4 | 5 | SSD1306Wire display(0x3c, D3, D4); 6 | 7 | void setup() { 8 | // Initialize the driver 9 | display.init(); 10 | 11 | // Set the font type here 12 | display.setFont(Rancho_Regular_16); 13 | 14 | // Set the drawing color once 15 | display.setColor(WHITE); 16 | } 17 | 18 | void loop() { 19 | // Clear the frame buffer 20 | display.clear(); 21 | 22 | // Draw the text and optionally add a counter 23 | display.drawString (10, 10, "Crunchy Rancho"); 24 | 25 | // Write the frame buffer to the display. 26 | display.display(); 27 | 28 | } 29 | 30 | -------------------------------------------------------------------------------- /Exercise_05_04_Solution/Rancho_Regular_16.h: -------------------------------------------------------------------------------- 1 | // Created by http://oleddisplay.squix.ch/ Consider a donation 2 | // In case of problems make sure that you are using the font file with the correct version! 3 | const uint8_t Rancho_Regular_16[] PROGMEM = { 4 | 0x0E, // Width: 14 5 | 0x15, // Height: 21 6 | 0x20, // First Char: 32 7 | 0xE0, // Numbers of Chars: 224 8 | 9 | // Jump Table: 10 | 0xFF, 0xFF, 0x00, 0x04, // 32:65535 11 | 0x00, 0x00, 0x08, 0x04, // 33:0 12 | 0x00, 0x08, 0x0B, 0x05, // 34:8 13 | 0x00, 0x13, 0x17, 0x08, // 35:19 14 | 0x00, 0x2A, 0x14, 0x08, // 36:42 15 | 0x00, 0x3E, 0x1D, 0x0A, // 37:62 16 | 0x00, 0x5B, 0x1D, 0x0A, // 38:91 17 | 0x00, 0x78, 0x07, 0x03, // 39:120 18 | 0x00, 0x7F, 0x0C, 0x05, // 40:127 19 | 0x00, 0x8B, 0x0B, 0x05, // 41:139 20 | 0x00, 0x96, 0x11, 0x07, // 42:150 21 | 0x00, 0xA7, 0x14, 0x07, // 43:167 22 | 0x00, 0xBB, 0x08, 0x03, // 44:187 23 | 0x00, 0xC3, 0x11, 0x06, // 45:195 24 | 0x00, 0xD4, 0x08, 0x03, // 46:212 25 | 0x00, 0xDC, 0x10, 0x07, // 47:220 26 | 0x00, 0xEC, 0x17, 0x09, // 48:236 27 | 0x01, 0x03, 0x08, 0x05, // 49:259 28 | 0x01, 0x0B, 0x15, 0x08, // 50:267 29 | 0x01, 0x20, 0x17, 0x08, // 51:288 30 | 0x01, 0x37, 0x17, 0x08, // 52:311 31 | 0x01, 0x4E, 0x17, 0x09, // 53:334 32 | 0x01, 0x65, 0x17, 0x09, // 54:357 33 | 0x01, 0x7C, 0x13, 0x08, // 55:380 34 | 0x01, 0x8F, 0x17, 0x08, // 56:399 35 | 0x01, 0xA6, 0x17, 0x08, // 57:422 36 | 0x01, 0xBD, 0x08, 0x03, // 58:445 37 | 0x01, 0xC5, 0x08, 0x03, // 59:453 38 | 0x01, 0xCD, 0x0B, 0x05, // 60:461 39 | 0x01, 0xD8, 0x11, 0x06, // 61:472 40 | 0x01, 0xE9, 0x0B, 0x05, // 62:489 41 | 0x01, 0xF4, 0x14, 0x08, // 63:500 42 | 0x02, 0x08, 0x1D, 0x0A, // 64:520 43 | 0x02, 0x25, 0x1D, 0x0A, // 65:549 44 | 0x02, 0x42, 0x1A, 0x09, // 66:578 45 | 0x02, 0x5C, 0x17, 0x09, // 67:604 46 | 0x02, 0x73, 0x1A, 0x0A, // 68:627 47 | 0x02, 0x8D, 0x17, 0x08, // 69:653 48 | 0x02, 0xA4, 0x16, 0x08, // 70:676 49 | 0x02, 0xBA, 0x17, 0x09, // 71:698 50 | 0x02, 0xD1, 0x1A, 0x0A, // 72:721 51 | 0x02, 0xEB, 0x0E, 0x05, // 73:747 52 | 0x02, 0xF9, 0x16, 0x08, // 74:761 53 | 0x03, 0x0F, 0x17, 0x08, // 75:783 54 | 0x03, 0x26, 0x15, 0x07, // 76:806 55 | 0x03, 0x3B, 0x20, 0x0C, // 77:827 56 | 0x03, 0x5B, 0x19, 0x09, // 78:859 57 | 0x03, 0x74, 0x1A, 0x0A, // 79:884 58 | 0x03, 0x8E, 0x17, 0x08, // 80:910 59 | 0x03, 0xA5, 0x1B, 0x0A, // 81:933 60 | 0x03, 0xC0, 0x1B, 0x09, // 82:960 61 | 0x03, 0xDB, 0x17, 0x09, // 83:987 62 | 0x03, 0xF2, 0x13, 0x07, // 84:1010 63 | 0x04, 0x05, 0x17, 0x09, // 85:1029 64 | 0x04, 0x1C, 0x16, 0x08, // 86:1052 65 | 0x04, 0x32, 0x1F, 0x0B, // 87:1074 66 | 0x04, 0x51, 0x17, 0x08, // 88:1105 67 | 0x04, 0x68, 0x17, 0x09, // 89:1128 68 | 0x04, 0x7F, 0x16, 0x08, // 90:1151 69 | 0x04, 0x95, 0x0C, 0x04, // 91:1173 70 | 0x04, 0xA1, 0x11, 0x06, // 92:1185 71 | 0x04, 0xB2, 0x09, 0x04, // 93:1202 72 | 0x04, 0xBB, 0x11, 0x06, // 94:1211 73 | 0x04, 0xCC, 0x17, 0x09, // 95:1228 74 | 0x04, 0xE3, 0x10, 0x0A, // 96:1251 75 | 0x04, 0xF3, 0x11, 0x07, // 97:1267 76 | 0x05, 0x04, 0x14, 0x07, // 98:1284 77 | 0x05, 0x18, 0x0E, 0x06, // 99:1304 78 | 0x05, 0x26, 0x11, 0x07, // 100:1318 79 | 0x05, 0x37, 0x0E, 0x06, // 101:1335 80 | 0x05, 0x45, 0x0E, 0x05, // 102:1349 81 | 0x05, 0x53, 0x11, 0x07, // 103:1363 82 | 0x05, 0x64, 0x11, 0x07, // 104:1380 83 | 0x05, 0x75, 0x08, 0x04, // 105:1397 84 | 0x05, 0x7D, 0x08, 0x04, // 106:1405 85 | 0x05, 0x85, 0x14, 0x07, // 107:1413 86 | 0x05, 0x99, 0x08, 0x04, // 108:1433 87 | 0x05, 0xA1, 0x1D, 0x0A, // 109:1441 88 | 0x05, 0xBE, 0x11, 0x07, // 110:1470 89 | 0x05, 0xCF, 0x0E, 0x06, // 111:1487 90 | 0x05, 0xDD, 0x11, 0x07, // 112:1501 91 | 0x05, 0xEE, 0x12, 0x07, // 113:1518 92 | 0x06, 0x00, 0x0E, 0x06, // 114:1536 93 | 0x06, 0x0E, 0x0E, 0x06, // 115:1550 94 | 0x06, 0x1C, 0x0A, 0x04, // 116:1564 95 | 0x06, 0x26, 0x11, 0x07, // 117:1574 96 | 0x06, 0x37, 0x11, 0x06, // 118:1591 97 | 0x06, 0x48, 0x1A, 0x09, // 119:1608 98 | 0x06, 0x62, 0x11, 0x06, // 120:1634 99 | 0x06, 0x73, 0x12, 0x07, // 121:1651 100 | 0x06, 0x85, 0x11, 0x06, // 122:1669 101 | 0x06, 0x96, 0x0B, 0x05, // 123:1686 102 | 0x06, 0xA1, 0x08, 0x04, // 124:1697 103 | 0x06, 0xA9, 0x0B, 0x05, // 125:1705 104 | 0x06, 0xB4, 0x14, 0x08, // 126:1716 105 | 0xFF, 0xFF, 0x00, 0x04, // 127:65535 106 | 0xFF, 0xFF, 0x00, 0x04, // 128:65535 107 | 0xFF, 0xFF, 0x00, 0x04, // 129:65535 108 | 0xFF, 0xFF, 0x00, 0x04, // 130:65535 109 | 0xFF, 0xFF, 0x00, 0x04, // 131:65535 110 | 0xFF, 0xFF, 0x00, 0x04, // 132:65535 111 | 0xFF, 0xFF, 0x00, 0x04, // 133:65535 112 | 0xFF, 0xFF, 0x00, 0x04, // 134:65535 113 | 0xFF, 0xFF, 0x00, 0x04, // 135:65535 114 | 0xFF, 0xFF, 0x00, 0x04, // 136:65535 115 | 0xFF, 0xFF, 0x00, 0x04, // 137:65535 116 | 0xFF, 0xFF, 0x00, 0x04, // 138:65535 117 | 0xFF, 0xFF, 0x00, 0x04, // 139:65535 118 | 0xFF, 0xFF, 0x00, 0x04, // 140:65535 119 | 0xFF, 0xFF, 0x00, 0x04, // 141:65535 120 | 0xFF, 0xFF, 0x00, 0x04, // 142:65535 121 | 0xFF, 0xFF, 0x00, 0x04, // 143:65535 122 | 0xFF, 0xFF, 0x00, 0x04, // 144:65535 123 | 0xFF, 0xFF, 0x00, 0x04, // 145:65535 124 | 0xFF, 0xFF, 0x00, 0x04, // 146:65535 125 | 0xFF, 0xFF, 0x00, 0x04, // 147:65535 126 | 0xFF, 0xFF, 0x00, 0x04, // 148:65535 127 | 0xFF, 0xFF, 0x00, 0x04, // 149:65535 128 | 0xFF, 0xFF, 0x00, 0x04, // 150:65535 129 | 0xFF, 0xFF, 0x00, 0x04, // 151:65535 130 | 0xFF, 0xFF, 0x00, 0x04, // 152:65535 131 | 0xFF, 0xFF, 0x00, 0x04, // 153:65535 132 | 0xFF, 0xFF, 0x00, 0x04, // 154:65535 133 | 0xFF, 0xFF, 0x00, 0x04, // 155:65535 134 | 0xFF, 0xFF, 0x00, 0x04, // 156:65535 135 | 0xFF, 0xFF, 0x00, 0x04, // 157:65535 136 | 0xFF, 0xFF, 0x00, 0x04, // 158:65535 137 | 0xFF, 0xFF, 0x00, 0x04, // 159:65535 138 | 0xFF, 0xFF, 0x00, 0x04, // 160:65535 139 | 0x06, 0xC8, 0x08, 0x04, // 161:1736 140 | 0x06, 0xD0, 0x14, 0x08, // 162:1744 141 | 0x06, 0xE4, 0x17, 0x08, // 163:1764 142 | 0x06, 0xFB, 0x14, 0x07, // 164:1787 143 | 0x07, 0x0F, 0x16, 0x09, // 165:1807 144 | 0x07, 0x25, 0x08, 0x04, // 166:1829 145 | 0x07, 0x2D, 0x11, 0x07, // 167:1837 146 | 0x07, 0x3E, 0x13, 0x0A, // 168:1854 147 | 0x07, 0x51, 0x17, 0x09, // 169:1873 148 | 0x07, 0x68, 0x0E, 0x05, // 170:1896 149 | 0x07, 0x76, 0x11, 0x06, // 171:1910 150 | 0x07, 0x87, 0x17, 0x08, // 172:1927 151 | 0x07, 0x9E, 0x11, 0x06, // 173:1950 152 | 0x07, 0xAF, 0x17, 0x09, // 174:1967 153 | 0x07, 0xC6, 0x13, 0x0A, // 175:1990 154 | 0x07, 0xD9, 0x07, 0x04, // 176:2009 155 | 0xFF, 0xFF, 0x00, 0x04, // 177:65535 156 | 0x07, 0xE0, 0x0B, 0x05, // 178:2016 157 | 0x07, 0xEB, 0x0B, 0x05, // 179:2027 158 | 0x07, 0xF6, 0x10, 0x0A, // 180:2038 159 | 0x08, 0x06, 0x11, 0x07, // 181:2054 160 | 0x08, 0x17, 0x16, 0x08, // 182:2071 161 | 0x08, 0x2D, 0x08, 0x03, // 183:2093 162 | 0x08, 0x35, 0x12, 0x0A, // 184:2101 163 | 0x08, 0x47, 0x08, 0x04, // 185:2119 164 | 0x08, 0x4F, 0x0B, 0x05, // 186:2127 165 | 0x08, 0x5A, 0x11, 0x06, // 187:2138 166 | 0x08, 0x6B, 0x17, 0x09, // 188:2155 167 | 0x08, 0x82, 0x1A, 0x09, // 189:2178 168 | 0x08, 0x9C, 0x1A, 0x0A, // 190:2204 169 | 0x08, 0xB6, 0x14, 0x08, // 191:2230 170 | 0x08, 0xCA, 0x1D, 0x0A, // 192:2250 171 | 0x08, 0xE7, 0x1D, 0x0A, // 193:2279 172 | 0x09, 0x04, 0x1D, 0x0A, // 194:2308 173 | 0x09, 0x21, 0x1D, 0x0A, // 195:2337 174 | 0x09, 0x3E, 0x1D, 0x0A, // 196:2366 175 | 0x09, 0x5B, 0x1D, 0x0A, // 197:2395 176 | 0x09, 0x78, 0x28, 0x0E, // 198:2424 177 | 0x09, 0xA0, 0x17, 0x09, // 199:2464 178 | 0x09, 0xB7, 0x17, 0x08, // 200:2487 179 | 0x09, 0xCE, 0x17, 0x08, // 201:2510 180 | 0x09, 0xE5, 0x17, 0x08, // 202:2533 181 | 0x09, 0xFC, 0x17, 0x08, // 203:2556 182 | 0x0A, 0x13, 0x0E, 0x05, // 204:2579 183 | 0x0A, 0x21, 0x0E, 0x05, // 205:2593 184 | 0x0A, 0x2F, 0x0E, 0x05, // 206:2607 185 | 0x0A, 0x3D, 0x0E, 0x05, // 207:2621 186 | 0x0A, 0x4B, 0x1A, 0x0A, // 208:2635 187 | 0x0A, 0x65, 0x19, 0x09, // 209:2661 188 | 0x0A, 0x7E, 0x1A, 0x0A, // 210:2686 189 | 0x0A, 0x98, 0x1A, 0x0A, // 211:2712 190 | 0x0A, 0xB2, 0x1A, 0x0A, // 212:2738 191 | 0x0A, 0xCC, 0x1A, 0x0A, // 213:2764 192 | 0x0A, 0xE6, 0x1A, 0x0A, // 214:2790 193 | 0x0B, 0x00, 0x11, 0x06, // 215:2816 194 | 0x0B, 0x11, 0x1A, 0x0A, // 216:2833 195 | 0x0B, 0x2B, 0x17, 0x09, // 217:2859 196 | 0x0B, 0x42, 0x17, 0x09, // 218:2882 197 | 0x0B, 0x59, 0x17, 0x09, // 219:2905 198 | 0x0B, 0x70, 0x17, 0x09, // 220:2928 199 | 0x0B, 0x87, 0x17, 0x09, // 221:2951 200 | 0x0B, 0x9E, 0x17, 0x08, // 222:2974 201 | 0x0B, 0xB5, 0x17, 0x09, // 223:2997 202 | 0x0B, 0xCC, 0x11, 0x07, // 224:3020 203 | 0x0B, 0xDD, 0x11, 0x07, // 225:3037 204 | 0x0B, 0xEE, 0x11, 0x07, // 226:3054 205 | 0x0B, 0xFF, 0x11, 0x07, // 227:3071 206 | 0x0C, 0x10, 0x11, 0x07, // 228:3088 207 | 0x0C, 0x21, 0x11, 0x07, // 229:3105 208 | 0x0C, 0x32, 0x1A, 0x0A, // 230:3122 209 | 0x0C, 0x4C, 0x0F, 0x06, // 231:3148 210 | 0x0C, 0x5B, 0x0E, 0x06, // 232:3163 211 | 0x0C, 0x69, 0x0E, 0x06, // 233:3177 212 | 0x0C, 0x77, 0x10, 0x06, // 234:3191 213 | 0x0C, 0x87, 0x10, 0x06, // 235:3207 214 | 0x0C, 0x97, 0x08, 0x04, // 236:3223 215 | 0x0C, 0x9F, 0x08, 0x04, // 237:3231 216 | 0x0C, 0xA7, 0x0A, 0x04, // 238:3239 217 | 0x0C, 0xB1, 0x0A, 0x04, // 239:3249 218 | 0x0C, 0xBB, 0x11, 0x06, // 240:3259 219 | 0x0C, 0xCC, 0x11, 0x07, // 241:3276 220 | 0x0C, 0xDD, 0x0E, 0x06, // 242:3293 221 | 0x0C, 0xEB, 0x0E, 0x06, // 243:3307 222 | 0x0C, 0xF9, 0x0E, 0x06, // 244:3321 223 | 0x0D, 0x07, 0x0E, 0x06, // 245:3335 224 | 0x0D, 0x15, 0x0E, 0x06, // 246:3349 225 | 0x0D, 0x23, 0x11, 0x06, // 247:3363 226 | 0x0D, 0x34, 0x11, 0x06, // 248:3380 227 | 0x0D, 0x45, 0x11, 0x07, // 249:3397 228 | 0x0D, 0x56, 0x11, 0x07, // 250:3414 229 | 0x0D, 0x67, 0x11, 0x07, // 251:3431 230 | 0x0D, 0x78, 0x11, 0x07, // 252:3448 231 | 0x0D, 0x89, 0x12, 0x07, // 253:3465 232 | 0x0D, 0x9B, 0x11, 0x07, // 254:3483 233 | 0x0D, 0xAC, 0x12, 0x07, // 255:3500 234 | 235 | // Font Data: 236 | 0xE0,0x81,0x00,0xF0,0xFF,0x00,0xF0,0xCF, // 33 237 | 0xF0,0x00,0x00,0xF0,0x01,0x00,0xF0,0x00,0x00,0xF0,0x01, // 34 238 | 0x00,0x08,0x00,0x00,0x3B,0x00,0x80,0x3F,0x00,0xC0,0x4F,0x00,0x40,0x7F,0x00,0xC0,0x3F,0x00,0xC0,0x0B,0x00,0x00,0x01, // 35 239 | 0x80,0x33,0x00,0xC0,0x77,0x00,0x40,0x66,0x00,0x70,0xE7,0x01,0x70,0xED,0x00,0xE0,0x3D,0x00,0xC0,0x38, // 36 240 | 0xC0,0x01,0x00,0xE0,0x83,0x00,0x70,0xE6,0x00,0xF0,0x7B,0x00,0xC0,0x0F,0x00,0x80,0x7F,0x00,0xE0,0xFD,0x00,0x70,0xCC,0x00,0x10,0x7C,0x00,0x00,0x10, // 37 241 | 0x00,0x30,0x00,0x40,0x7C,0x00,0xF0,0xFF,0x00,0xB0,0xC7,0x00,0xB0,0xDF,0x00,0xF0,0xF9,0x00,0x60,0x70,0x00,0x00,0xFC,0x00,0x00,0xF8,0x00,0x00,0x80, // 38 242 | 0xF0,0x00,0x00,0xF0,0x01,0x00,0x10, // 39 243 | 0x00,0x0F,0x00,0xC0,0x7F,0x00,0xF0,0xF9,0x00,0x38,0xC0,0x01, // 40 244 | 0x00,0xC0,0x01,0xF8,0xE0,0x00,0xE0,0x7F,0x00,0x80,0x1F, // 41 245 | 0x80,0x02,0x00,0xC0,0x06,0x00,0x80,0x03,0x00,0xE0,0x0F,0x00,0xC0,0x07,0x00,0x80,0x01, // 42 246 | 0x00,0x06,0x00,0x00,0x06,0x00,0x80,0x1F,0x00,0x80,0x1F,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x04, // 43 247 | 0x00,0x60,0x00,0x00,0xE0,0x00,0x00,0x60, // 44 248 | 0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06, // 45 249 | 0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x20, // 46 250 | 0x00,0xC0,0x01,0x00,0xF8,0x00,0x00,0x3F,0x00,0xC0,0x07,0x00,0xF0,0x01,0x00,0x30, // 47 251 | 0x00,0x0E,0x00,0xC0,0x7F,0x00,0xE0,0xFF,0x00,0xF0,0xC0,0x00,0x30,0xC0,0x00,0x70,0xE0,0x00,0xE0,0x7F,0x00,0xC0,0x1F, // 48 252 | 0x40,0x00,0x00,0xF0,0xFF,0x00,0xF0,0xFF, // 49 253 | 0x40,0x60,0x00,0xE0,0xF0,0x00,0x70,0xF8,0x00,0x30,0xDC,0x00,0x30,0xCE,0x00,0xF0,0xC7,0x00,0xE0,0xC3,0x01, // 50 254 | 0x20,0x20,0x00,0x70,0xF0,0x00,0x30,0xE6,0x00,0x30,0xC7,0x00,0xB0,0xC7,0x00,0xF0,0xFF,0x00,0x70,0x7C,0x00,0x00,0x18, // 51 255 | 0x00,0x0E,0x00,0x00,0x1F,0x00,0xC0,0x0F,0x00,0xE0,0x0C,0x00,0x70,0xEC,0x00,0xF0,0xFF,0x00,0x30,0xFC,0x00,0x00,0x0C, // 52 256 | 0x00,0x00,0x00,0xF0,0x67,0x00,0xF0,0xF7,0x00,0x30,0xC3,0x00,0x30,0xC3,0x00,0x30,0xFF,0x00,0x30,0x7E,0x00,0x08,0x3C, // 53 257 | 0x00,0x0E,0x00,0xC0,0x7F,0x00,0xE0,0xFF,0x00,0x70,0xC3,0x00,0x30,0x83,0x00,0x30,0xE7,0x00,0x70,0x7E,0x00,0x00,0x3C, // 54 258 | 0x30,0x00,0x00,0x70,0x00,0x00,0x30,0xF8,0x00,0x30,0xFE,0x00,0xB0,0x0F,0x00,0xF0,0x01,0x00,0x70, // 55 259 | 0x00,0x30,0x00,0xE0,0x7D,0x00,0xF0,0xFF,0x00,0x30,0xC6,0x00,0x30,0xC6,0x00,0xF0,0xFF,0x00,0xE0,0x7D,0x00,0x00,0x10, // 56 260 | 0x80,0x01,0x00,0xE0,0x47,0x00,0xF0,0xCF,0x00,0x30,0xCC,0x00,0x30,0x7C,0x00,0xF0,0x7F,0x00,0xE0,0x1F,0x00,0x00,0x03, // 57 261 | 0x00,0x6C,0x00,0x00,0x6C,0x00,0x00,0x6C, // 58 262 | 0x00,0x6C,0x00,0x00,0xEC,0x00,0x00,0x6C, // 59 263 | 0x00,0x06,0x00,0x00,0x0F,0x00,0x80,0x19,0x00,0xC0,0x39, // 60 264 | 0x00,0x0E,0x00,0x00,0x0F,0x00,0x00,0x0F,0x00,0x00,0x0F,0x00,0x00,0x0F,0x00,0x00,0x05, // 61 265 | 0xC0,0x31,0x00,0x80,0x19,0x00,0x00,0x0F,0x00,0x00,0x06, // 62 266 | 0xE0,0x00,0x00,0xF0,0x01,0x00,0xB0,0xFC,0x00,0xB0,0xFE,0x00,0x30,0xE6,0x00,0xF0,0x07,0x00,0xE0,0x03, // 63 267 | 0x00,0x1E,0x00,0x80,0x3F,0x00,0xC0,0x6D,0x00,0x40,0x5F,0x00,0xE0,0x53,0x00,0xA0,0x7F,0x00,0xE0,0x3F,0x00,0xC0,0x30,0x00,0x80,0x1F,0x00,0x00,0x06, // 64 268 | 0x00,0x88,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00,0xC0,0x0F,0x00,0xF0,0x0D,0x00,0xF0,0x0C,0x00,0xF0,0x3F,0x00,0x00,0xFF,0x00,0x00,0xE0,0x00,0x00,0x80, // 65 269 | 0x60,0x00,0x00,0xF0,0xC0,0x00,0xF8,0xFF,0x01,0xF8,0xFF,0x00,0x30,0x84,0x00,0x30,0xCE,0x00,0x70,0x7F,0x00,0xE0,0x3B,0x00,0xC0,0x01, // 66 270 | 0x00,0x1F,0x00,0xC0,0x7F,0x00,0xF0,0xF1,0x00,0x30,0xC0,0x00,0x10,0xC1,0x00,0x90,0xC1,0x00,0xF0,0x79,0x00,0xE0,0x10, // 67 271 | 0x60,0x00,0x00,0xE0,0x80,0x00,0xF0,0xFF,0x01,0xF8,0xFF,0x00,0x38,0xC0,0x00,0x30,0x60,0x00,0x70,0x70,0x00,0xE0,0x3F,0x00,0xC0,0x0F, // 68 272 | 0x30,0x80,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x30,0xC6,0x00,0x30,0xC6,0x00,0x30,0xC6,0x00,0x30,0xCE,0x00,0x30,0xC0, // 69 273 | 0x20,0x00,0x00,0xB0,0xE6,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x30,0x06,0x00,0x30,0x06,0x00,0x30,0x0E,0x00,0x30, // 70 274 | 0x00,0x0E,0x00,0xC0,0x7F,0x00,0xE0,0xFF,0x00,0x70,0xC0,0x00,0x30,0xC0,0x00,0x10,0xC5,0x00,0xF0,0xFD,0x01,0xE0,0xF9, // 71 275 | 0x00,0x04,0x00,0xC0,0xFF,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x20,0xFE,0x00,0xF0,0xFF,0x00,0x00,0xC4, // 72 276 | 0x70,0xC0,0x01,0xF0,0xF8,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x30,0xC0, // 73 277 | 0x00,0x78,0x00,0x00,0xF8,0x00,0x70,0xC4,0x00,0x30,0x80,0x00,0xF0,0xF1,0x00,0xF0,0x7F,0x00,0x30,0x1F,0x00,0x70, // 74 278 | 0x00,0x88,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x00,0x0F,0x00,0x80,0x3F,0x00,0xF0,0x79,0x00,0x70,0xE0,0x00,0x30,0x80, // 75 279 | 0x00,0x80,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x01, // 76 280 | 0x00,0x00,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0xF0,0x03,0x00,0x80,0x1F,0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0xC0,0x1F,0x00,0xF0,0x61,0x00,0xF0,0xFF,0x00,0xF0,0xFF, // 77 281 | 0x00,0x00,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0xE0,0x03,0x00,0x00,0x1F,0x00,0x00,0x7C,0x00,0xE0,0xFF,0x00,0xF0,0xFF,0x00,0x10, // 78 282 | 0x00,0x04,0x00,0xC0,0x7F,0x00,0xE0,0xFF,0x00,0x70,0xC0,0x00,0x70,0xC0,0x00,0x30,0xC0,0x00,0xF0,0xF8,0x00,0xE0,0x7F,0x00,0x80,0x0F, // 79 283 | 0xE0,0x00,0x00,0x70,0x18,0x00,0xF0,0xFF,0x00,0xF8,0xFF,0x00,0x30,0x1C,0x00,0x30,0x0E,0x00,0xF0,0x07,0x00,0xE0,0x03, // 80 284 | 0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xFF,0x00,0x70,0xF0,0x00,0x70,0xF0,0x00,0x30,0xE0,0x00,0xF0,0xFF,0x01,0xE0,0xBF,0x01,0x00,0x0F,0x01, // 81 285 | 0xE0,0x00,0x00,0x70,0xFE,0x00,0xF0,0xFF,0x00,0xF8,0xFF,0x00,0x30,0x0C,0x00,0x70,0x7E,0x00,0xF0,0xF7,0x00,0xE0,0xC3,0x01,0x00,0x80,0x01, // 82 286 | 0x80,0x00,0x00,0xE0,0x73,0x00,0x70,0xF7,0x00,0x30,0xCE,0x00,0x30,0x86,0x00,0x30,0xCC,0x00,0xF0,0xFC,0x00,0x70,0x78, // 83 287 | 0x30,0x00,0x00,0x30,0x00,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x30,0x80,0x00,0x30,0x00,0x00,0x30, // 84 288 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF0,0xFF,0x00,0x00,0xC0,0x00,0x00,0x80,0x00,0x10,0xC0,0x00,0xF0,0xFF,0x00,0xF0,0x3F, // 85 289 | 0xF0,0x00,0x00,0xF0,0x1F,0x00,0xD0,0xFF,0x00,0x00,0xF0,0x00,0x00,0xFF,0x00,0xE0,0x0F,0x00,0xF0,0x01,0x00,0x30, // 86 290 | 0x00,0x00,0x00,0xF0,0x3F,0x00,0xF0,0xFF,0x00,0x00,0xFE,0x00,0xE0,0x1F,0x00,0x70,0x00,0x00,0xF0,0xFF,0x00,0x00,0xF8,0x00,0xE0,0xFF,0x00,0xF0,0x0F,0x00,0x30, // 87 291 | 0x30,0xC0,0x00,0xF0,0xF0,0x00,0xE0,0x7F,0x00,0x00,0x1F,0x00,0x80,0x7F,0x00,0xE0,0xF1,0x00,0x70,0xC0,0x00,0x30,0x80, // 88 292 | 0x00,0x00,0x00,0xF0,0xCF,0x00,0xF0,0xFF,0x01,0x00,0x30,0x03,0x00,0x30,0x03,0x00,0xDE,0x01,0xF0,0xFF,0x00,0xE0,0x3F, // 89 293 | 0x70,0x40,0x00,0xB0,0xF0,0x00,0x30,0xFC,0x00,0x30,0xCE,0x00,0x30,0xC7,0x00,0xF0,0xC3,0x00,0xF0,0xC0,0x00,0x70, // 90 294 | 0x00,0x00,0x00,0xF8,0xFF,0x01,0xF8,0xFF,0x01,0x00,0xC0,0x01, // 91 295 | 0x30,0x00,0x00,0xF0,0x03,0x00,0xC0,0x1F,0x00,0x00,0xFC,0x00,0x00,0xE0,0x00,0x00,0x80, // 92 296 | 0x00,0xC0,0x01,0xF8,0xFF,0x01,0xF8,0xFF,0x01, // 93 297 | 0x00,0x06,0x00,0xC0,0x07,0x00,0xF0,0x01,0x00,0xF0,0x03,0x00,0xC0,0x07,0x00,0x00,0x04, // 94 298 | 0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60, // 95 299 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x38,0x00,0x00,0x60, // 96 300 | 0x00,0x38,0x00,0x00,0x7C,0x00,0x00,0x66,0x00,0x00,0x73,0x00,0x00,0x7F,0x00,0x00,0x7F, // 97 301 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF0,0x7F,0x00,0x00,0x63,0x00,0x00,0x63,0x00,0x00,0x7F,0x00,0x00,0x1C, // 98 302 | 0x00,0x1C,0x00,0x00,0x7E,0x00,0x00,0x63,0x00,0x00,0x47,0x00,0x00,0x77, // 99 303 | 0x00,0x38,0x00,0x00,0x7E,0x00,0x00,0x47,0x00,0x00,0x63,0x00,0xF0,0x7F,0x00,0xF0,0x7F, // 100 304 | 0x00,0x18,0x00,0x00,0x7E,0x00,0x00,0x7F,0x00,0x00,0x5D,0x00,0x00,0x7F, // 101 305 | 0x00,0x02,0x00,0xC0,0x7F,0x00,0xE0,0x7F,0x00,0x30,0x03,0x00,0x70,0x03, // 102 306 | 0x00,0x3C,0x01,0x00,0xFE,0x07,0x00,0x63,0x06,0x00,0x63,0x07,0x00,0xFF,0x03,0x00,0x7F, // 103 307 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF0,0x7F,0x00,0x00,0x07,0x00,0x00,0x7F,0x00,0x00,0x7E, // 104 308 | 0x00,0x00,0x00,0xC0,0x7F,0x00,0xC0,0x7F, // 105 309 | 0x80,0x01,0x03,0xC0,0xFF,0x03,0xC0,0xFE, // 106 310 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF0,0x6B,0x00,0x00,0x0C,0x00,0x00,0x7F,0x00,0x00,0xE3,0x00,0x00,0x80, // 107 311 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF0,0x7F, // 108 312 | 0x00,0x02,0x00,0x00,0x7F,0x00,0x00,0x7F,0x00,0x00,0x06,0x00,0x00,0x7F,0x00,0x00,0x7E,0x00,0x00,0x0E,0x00,0x00,0x27,0x00,0x00,0x7E,0x00,0x00,0x40, // 109 313 | 0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x06,0x00,0x00,0x7E,0x00,0x00,0x7E, // 110 314 | 0x00,0x18,0x00,0x00,0x7E,0x00,0x00,0x6F,0x00,0x00,0x63,0x00,0x00,0x3E, // 111 315 | 0x00,0xC2,0x07,0x00,0xFF,0x07,0x00,0x7E,0x04,0x00,0x43,0x00,0x00,0x7F,0x00,0x00,0x3E, // 112 316 | 0x00,0x18,0x00,0x00,0x7E,0x00,0x00,0x67,0x00,0x00,0x63,0x00,0x00,0xFF,0x07,0x00,0xFF,0x07, // 113 317 | 0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x4F,0x00,0x00,0x0B,0x00,0x00,0x07, // 114 318 | 0x00,0x24,0x00,0x00,0x7E,0x00,0x00,0x7B,0x00,0x00,0x7D,0x00,0x00,0x77, // 115 319 | 0xC0,0x00,0x00,0xE0,0x7F,0x00,0xF0,0x7F,0x00,0xC0, // 116 320 | 0x00,0x18,0x00,0x00,0x7F,0x00,0x00,0x63,0x00,0x00,0x60,0x00,0x00,0x7F,0x00,0x00,0x7F, // 117 321 | 0x00,0x03,0x00,0x00,0x3F,0x00,0x00,0x7E,0x00,0x00,0x71,0x00,0x00,0x1F,0x00,0x00,0x02, // 118 322 | 0x00,0x03,0x00,0x00,0x3F,0x00,0x00,0x7C,0x00,0x00,0x7A,0x00,0x00,0x1F,0x00,0x00,0x78,0x00,0x00,0x79,0x00,0x00,0x3F,0x00,0x00,0x03, // 119 323 | 0x00,0x42,0x00,0x00,0xF7,0x00,0x00,0x3E,0x00,0x00,0x7E,0x00,0x00,0x63,0x00,0x00,0x42, // 120 324 | 0x00,0x08,0x00,0x00,0xFF,0x07,0x00,0xE3,0x06,0x00,0x60,0x06,0x00,0xFF,0x03,0x00,0xFF,0x01, // 121 325 | 0x00,0x06,0x00,0x00,0x63,0x00,0x00,0x7B,0x00,0x00,0x6F,0x00,0x00,0x67,0x00,0x00,0x02, // 122 326 | 0x00,0x04,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x01,0x18,0x80, // 123 327 | 0x00,0x00,0x00,0xF0,0xFF,0x00,0xF0,0xFF, // 124 328 | 0x18,0x00,0x00,0xF8,0xFF,0x01,0xF0,0xFF,0x00,0x00,0x06, // 125 329 | 0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07, // 126 330 | 0x20,0x00,0x00,0xF0,0xFF,0x00,0xB0,0xFF, // 161 331 | 0x00,0x0E,0x00,0x80,0x3F,0x00,0xC0,0x7B,0x00,0x70,0xE0,0x00,0x70,0xE2,0x00,0xE0,0x33,0x00,0xC0,0x19, // 162 332 | 0x00,0x04,0x00,0xC0,0xFF,0x00,0xE0,0x7F,0x00,0x20,0x64,0x00,0x20,0x64,0x00,0xE0,0x65,0x00,0xC0,0xE0,0x00,0x00,0x40, // 163 333 | 0x80,0x00,0x00,0x80,0x3F,0x00,0x80,0x1F,0x00,0x00,0x19,0x00,0x80,0x1F,0x00,0xC0,0x37,0x00,0x80,0x20, // 164 334 | 0x40,0x00,0x00,0xE0,0x38,0x00,0xC0,0x3F,0x00,0x00,0x7F,0x00,0x00,0x7F,0x00,0x80,0x3F,0x00,0xE0,0x3D,0x00,0x60, // 165 335 | 0x00,0x00,0x00,0xF0,0xFF,0x00,0xF0,0xFB, // 166 336 | 0x00,0x00,0x00,0xF0,0xEF,0x00,0xB0,0x9F,0x00,0x90,0x99,0x00,0x70,0xFF,0x00,0x70,0x7F, // 167 337 | 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x30, // 168 338 | 0x80,0x07,0x00,0xE0,0x0F,0x00,0xB0,0x1F,0x00,0xF0,0x16,0x00,0xD0,0x1D,0x00,0xF0,0x1E,0x00,0xE0,0x0F,0x00,0xC0,0x07, // 169 339 | 0x80,0x1B,0x00,0xC0,0x0F,0x00,0x60,0x0E,0x00,0xC0,0x0F,0x00,0xE0,0x14, // 170 340 | 0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x7F,0x00,0x00,0x3C,0x00,0x00,0x76,0x00,0x00,0x43, // 171 341 | 0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0F,0x00,0x00,0x0E, // 172 342 | 0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06, // 173 343 | 0x80,0x07,0x00,0xE0,0x0F,0x00,0xF0,0x1A,0x00,0xF0,0x17,0x00,0x50,0x17,0x00,0xF0,0x1D,0x00,0xE0,0x0F,0x00,0xC0,0x07, // 174 344 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30, // 175 345 | 0x30,0x00,0x00,0x38,0x00,0x00,0x38, // 176 346 | 0x60,0x02,0x00,0x60,0x07,0x00,0xB0,0x07,0x00,0xE0,0x06, // 178 347 | 0x60,0x02,0x00,0xB0,0x07,0x00,0xF0,0x06,0x00,0xF0,0x07, // 179 348 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x78,0x00,0x00,0x30, // 180 349 | 0x00,0xFE,0x01,0x00,0xFF,0x01,0x00,0x70,0x00,0x00,0x60,0x00,0x00,0x7E,0x00,0x00,0x7E, // 181 350 | 0xC0,0x01,0x00,0xE0,0x03,0x00,0xF0,0xCF,0x01,0xF0,0xFF,0x00,0x30,0x00,0x01,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x30, // 182 351 | 0x00,0x04,0x00,0x00,0x06,0x00,0x00,0x02, // 183 352 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0xE0,0x01,0x00,0xC0,0x01, // 184 353 | 0x40,0x00,0x00,0xE0,0x07,0x00,0x00,0x04, // 185 354 | 0x80,0x1B,0x00,0xC0,0x0F,0x00,0x60,0x0E,0x00,0xC0,0x1B, // 186 355 | 0x00,0x67,0x00,0x00,0x76,0x00,0x00,0x7F,0x00,0x00,0x6E,0x00,0x00,0x3C,0x00,0x00,0x18, // 187 356 | 0x40,0x00,0x00,0xE0,0xE7,0x00,0x00,0xFE,0x00,0x00,0x3E,0x00,0x80,0x77,0x00,0xE0,0x7D,0x00,0x70,0xFC,0x00,0x10,0xE0, // 188 357 | 0x40,0x00,0x00,0xE0,0xE7,0x00,0x00,0xFE,0x00,0x00,0x1E,0x00,0x80,0x4F,0x00,0xE0,0xED,0x00,0x70,0xF4,0x00,0x10,0xFC,0x00,0x00,0x80, // 189 358 | 0x60,0x02,0x00,0xB0,0x07,0x00,0xF0,0xC6,0x00,0xF0,0xF7,0x00,0x00,0x1E,0x00,0x80,0x77,0x00,0xE0,0x79,0x00,0x70,0xFC,0x00,0x10,0xFC, // 190 359 | 0x00,0x78,0x00,0x00,0xFC,0x00,0x20,0xCE,0x00,0xF0,0x87,0x00,0xF0,0xD7,0x00,0x00,0xF0,0x00,0x00,0x78, // 191 360 | 0x00,0x88,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00,0xC2,0x0F,0x00,0xF7,0x0D,0x00,0xFC,0x0C,0x00,0xF0,0x3F,0x00,0x00,0xFF,0x00,0x00,0xE0,0x00,0x00,0x80, // 192 361 | 0x00,0x88,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00,0xC0,0x0F,0x00,0xFC,0x0D,0x00,0xFF,0x0C,0x00,0xF6,0x3F,0x00,0x00,0xFF,0x00,0x00,0xE0,0x00,0x00,0x80, // 193 362 | 0x00,0x88,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00,0xC4,0x0F,0x00,0xF6,0x0D,0x00,0xF6,0x0C,0x00,0xF6,0x3F,0x00,0x04,0xFF,0x00,0x00,0xE0,0x00,0x00,0x80, // 194 363 | 0x00,0x88,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00,0xC6,0x0F,0x00,0xF6,0x0D,0x00,0xF6,0x0C,0x00,0xF6,0x3F,0x00,0x07,0xFF,0x00,0x00,0xE0,0x00,0x00,0x80, // 195 364 | 0x00,0x88,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00,0xC4,0x0F,0x00,0xF6,0x0D,0x00,0xF2,0x0C,0x00,0xF6,0x3F,0x00,0x06,0xFF,0x00,0x00,0xE0,0x00,0x00,0x80, // 196 365 | 0x00,0x88,0x00,0x00,0xF8,0x00,0x00,0xFE,0x00,0xC0,0x0F,0x00,0xFC,0x0D,0x00,0xFC,0x0C,0x00,0xFC,0x3F,0x00,0x00,0xFF,0x00,0x00,0xE0,0x00,0x00,0x80, // 197 366 | 0x00,0xE0,0x00,0x00,0xFC,0x00,0x00,0x3E,0x00,0x00,0x0F,0x00,0xC0,0x0F,0x00,0xE0,0x0C,0x00,0x70,0xFC,0x00,0xF0,0xFF,0x00,0xF0,0xC7,0x00,0x30,0xC6,0x00,0x30,0xC6,0x00,0x30,0xCE,0x00,0x30,0xC0,0x01,0x20, // 198 367 | 0x00,0x1F,0x00,0xC0,0x7F,0x00,0xF0,0xF1,0x00,0x30,0xC0,0x07,0x10,0xC1,0x07,0x90,0xC1,0x06,0xF0,0x79,0x00,0xE0,0x10, // 199 368 | 0x30,0x80,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x32,0xC6,0x00,0x37,0xC6,0x00,0x3C,0xC6,0x00,0x30,0xCE,0x00,0x30,0xC0, // 200 369 | 0x30,0x80,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x00,0x3C,0xC6,0x00,0x3F,0xC6,0x00,0x36,0xC6,0x00,0x30,0xCE,0x00,0x30,0xC0, // 201 370 | 0x30,0x80,0x00,0xF0,0xFF,0x00,0xF4,0xFF,0x00,0x36,0xC6,0x00,0x36,0xC6,0x00,0x36,0xC6,0x00,0x34,0xCE,0x00,0x30,0xC0, // 202 371 | 0x30,0x80,0x00,0xF0,0xFF,0x00,0xF4,0xFF,0x00,0x36,0xC6,0x00,0x32,0xC6,0x00,0x36,0xC6,0x00,0x36,0xCE,0x00,0x30,0xC0, // 203 372 | 0x70,0xC0,0x01,0xF2,0xF8,0x00,0xF7,0xFF,0x00,0xFC,0xFF,0x00,0x30,0xC0, // 204 373 | 0x70,0xC0,0x01,0xFC,0xF8,0x00,0xFF,0xFF,0x00,0xF6,0xFF,0x00,0x30,0xC0, // 205 374 | 0x74,0xC0,0x01,0xF6,0xF8,0x00,0xF6,0xFF,0x00,0xF6,0xFF,0x00,0x34,0xC0, // 206 375 | 0x78,0xC0,0x01,0xFC,0xF8,0x00,0xF4,0xFF,0x00,0xFC,0xFF,0x00,0x3C,0xC0, // 207 376 | 0x60,0x04,0x00,0xE0,0x86,0x00,0xF0,0xFF,0x01,0xF8,0xFF,0x00,0x38,0xC6,0x00,0x30,0x66,0x00,0x70,0x70,0x00,0xE0,0x3F,0x00,0xC0,0x0F, // 208 377 | 0x00,0x00,0x00,0xF0,0xFF,0x00,0xFC,0xFF,0x00,0xEC,0x03,0x00,0x0C,0x1F,0x00,0x0C,0x7C,0x00,0xEE,0xFF,0x00,0xF0,0xFF,0x00,0x10, // 209 378 | 0x00,0x04,0x00,0xC0,0x7F,0x00,0xE0,0xFF,0x00,0x72,0xC0,0x00,0x77,0xC0,0x00,0x3C,0xC0,0x00,0xF0,0xF8,0x00,0xE0,0x7F,0x00,0x80,0x0F, // 210 379 | 0x00,0x04,0x00,0xC0,0x7F,0x00,0xE0,0xFF,0x00,0x70,0xC0,0x00,0x7C,0xC0,0x00,0x3F,0xC0,0x00,0xF6,0xF8,0x00,0xE0,0x7F,0x00,0x80,0x0F, // 211 380 | 0x00,0x04,0x00,0xC0,0x7F,0x00,0xE4,0xFF,0x00,0x76,0xC0,0x00,0x76,0xC0,0x00,0x36,0xC0,0x00,0xF4,0xF8,0x00,0xE0,0x7F,0x00,0x80,0x0F, // 212 381 | 0x00,0x04,0x00,0xC0,0x7F,0x00,0xE6,0xFF,0x00,0x76,0xC0,0x00,0x76,0xC0,0x00,0x36,0xC0,0x00,0xF7,0xF8,0x00,0xE0,0x7F,0x00,0x80,0x0F, // 213 382 | 0x00,0x04,0x00,0xC0,0x7F,0x00,0xE4,0xFF,0x00,0x76,0xC0,0x00,0x72,0xC0,0x00,0x36,0xC0,0x00,0xF6,0xF8,0x00,0xE0,0x7F,0x00,0x80,0x0F, // 214 383 | 0x80,0x10,0x00,0x80,0x3F,0x00,0x00,0x0F,0x00,0x00,0x1F,0x00,0x80,0x31,0x00,0x00,0x20, // 215 384 | 0x00,0x0E,0x00,0xC0,0xFF,0x00,0xE0,0xFF,0x00,0x70,0xFC,0x00,0x70,0xCE,0x00,0xB0,0xC3,0x00,0xF0,0xFD,0x00,0xF0,0x7F,0x00,0xA0,0x0F, // 216 385 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF0,0xFF,0x00,0x02,0xC0,0x00,0x07,0x80,0x00,0x1C,0xC0,0x00,0xF0,0xFF,0x00,0xF0,0x3F, // 217 386 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF0,0xFF,0x00,0x0C,0xC0,0x00,0x0F,0x80,0x00,0x16,0xC0,0x00,0xF0,0xFF,0x00,0xF0,0x3F, // 218 387 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF4,0xFF,0x00,0x06,0xC0,0x00,0x06,0x80,0x00,0x16,0xC0,0x00,0xF4,0xFF,0x00,0xF0,0x3F, // 219 388 | 0x00,0x00,0x00,0xF0,0x7F,0x00,0xF8,0xFF,0x00,0x0C,0xC0,0x00,0x04,0x80,0x00,0x1C,0xC0,0x00,0xFC,0xFF,0x00,0xF0,0x3F, // 220 389 | 0x00,0x00,0x00,0xF0,0xCF,0x00,0xF0,0xFF,0x01,0x0C,0x30,0x03,0x0F,0x30,0x03,0x06,0xDE,0x01,0xF0,0xFF,0x00,0xE0,0x3F, // 221 390 | 0x80,0x03,0x00,0xC0,0x21,0x00,0xF0,0xFF,0x01,0xF8,0xFF,0x01,0x60,0x30,0x00,0xE0,0x38,0x00,0xC0,0x1F,0x00,0x80,0x0F, // 222 391 | 0x00,0x03,0x00,0xC0,0x7F,0x00,0xF0,0x7F,0x00,0x30,0x66,0x00,0xF0,0x7F,0x00,0xE0,0x78,0x00,0x00,0x78,0x00,0x00,0x30, // 223 392 | 0x00,0x38,0x00,0x00,0x7C,0x00,0x20,0x66,0x00,0x70,0x73,0x00,0xC0,0x7F,0x00,0x00,0x7F, // 224 393 | 0x00,0x38,0x00,0x00,0x7C,0x00,0xC0,0x66,0x00,0xF0,0x73,0x00,0x60,0x7F,0x00,0x00,0x7F, // 225 394 | 0x00,0x38,0x00,0x40,0x7C,0x00,0x60,0x66,0x00,0x60,0x73,0x00,0x60,0x7F,0x00,0x40,0x7F, // 226 395 | 0x00,0x38,0x00,0xC0,0x7C,0x00,0xC0,0x66,0x00,0xC0,0x73,0x00,0xC0,0x7F,0x00,0xE0,0x7F, // 227 396 | 0x00,0x38,0x00,0x80,0x7C,0x00,0xC0,0x66,0x00,0x40,0x73,0x00,0xC0,0x7F,0x00,0xC0,0x7F, // 228 397 | 0x00,0x38,0x00,0x00,0x7C,0x00,0xC0,0x66,0x00,0xE0,0x73,0x00,0xE0,0x7F,0x00,0x00,0x7F, // 229 398 | 0x00,0x38,0x00,0x00,0x7C,0x00,0x00,0x66,0x00,0x00,0x73,0x00,0x00,0x3F,0x00,0x00,0x7F,0x00,0x00,0x5B,0x00,0x00,0x6F,0x00,0x00,0x36, // 230 399 | 0x00,0x1C,0x00,0x00,0x7E,0x00,0x00,0xE3,0x03,0x00,0xC7,0x03,0x00,0x77,0x03, // 231 400 | 0x00,0x18,0x00,0x00,0x7E,0x00,0x20,0x7F,0x00,0x70,0x5D,0x00,0xC0,0x7F, // 232 401 | 0x00,0x18,0x00,0x00,0x7E,0x00,0xC0,0x7F,0x00,0xF0,0x5D,0x00,0x60,0x7F, // 233 402 | 0x00,0x18,0x00,0x40,0x7E,0x00,0x60,0x7F,0x00,0x60,0x5D,0x00,0x60,0x7F,0x00,0x40, // 234 403 | 0x00,0x18,0x00,0x80,0x7E,0x00,0xC0,0x7F,0x00,0x40,0x5D,0x00,0xC0,0x7F,0x00,0xC0, // 235 404 | 0x20,0x00,0x00,0x70,0x7F,0x00,0xC0,0x7F, // 236 405 | 0xC0,0x00,0x00,0xF0,0x7F,0x00,0x60,0x7F, // 237 406 | 0xC0,0x00,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0x80, // 238 407 | 0xC0,0x00,0x00,0x40,0x7F,0x00,0xC0,0x7F,0x00,0xC0, // 239 408 | 0x00,0x18,0x00,0xE0,0x7F,0x00,0xC0,0x6F,0x00,0xC0,0x63,0x00,0xC0,0x3F,0x00,0x80,0x08, // 240 409 | 0x00,0x00,0x00,0xC0,0x7E,0x00,0xC0,0x7E,0x00,0xC0,0x06,0x00,0xC0,0x7E,0x00,0xE0,0x7E, // 241 410 | 0x00,0x18,0x00,0x20,0x7E,0x00,0x70,0x6F,0x00,0xC0,0x63,0x00,0x00,0x3E, // 242 411 | 0x00,0x18,0x00,0x00,0x7E,0x00,0xC0,0x6F,0x00,0xF0,0x63,0x00,0x60,0x3E, // 243 412 | 0x40,0x18,0x00,0x60,0x7E,0x00,0x60,0x6F,0x00,0x60,0x63,0x00,0x40,0x3E, // 244 413 | 0xC0,0x18,0x00,0xC0,0x7E,0x00,0xC0,0x6F,0x00,0xC0,0x63,0x00,0xE0,0x3E, // 245 414 | 0x80,0x18,0x00,0xC0,0x7E,0x00,0x40,0x6F,0x00,0xC0,0x63,0x00,0xC0,0x3E, // 246 415 | 0x00,0x04,0x00,0x00,0x06,0x00,0x80,0x1F,0x00,0x80,0x1F,0x00,0x00,0x06,0x00,0x00,0x06, // 247 416 | 0x00,0x18,0x00,0x00,0xFE,0x00,0x00,0x7F,0x00,0x00,0x7F,0x00,0x00,0x3F,0x00,0x00,0x03, // 248 417 | 0x00,0x18,0x00,0x20,0x7F,0x00,0x70,0x63,0x00,0xC0,0x60,0x00,0x00,0x7F,0x00,0x00,0x7F, // 249 418 | 0x00,0x18,0x00,0x00,0x7F,0x00,0xC0,0x63,0x00,0xF0,0x60,0x00,0x60,0x7F,0x00,0x00,0x7F, // 250 419 | 0x00,0x18,0x00,0x40,0x7F,0x00,0x60,0x63,0x00,0x60,0x60,0x00,0x60,0x7F,0x00,0x40,0x7F, // 251 420 | 0x00,0x18,0x00,0x80,0x7F,0x00,0xC0,0x63,0x00,0x40,0x60,0x00,0xC0,0x7F,0x00,0xC0,0x7F, // 252 421 | 0x00,0x08,0x00,0x00,0xFF,0x07,0x00,0xE3,0x06,0xC0,0x60,0x06,0xF0,0xFF,0x03,0x60,0xFF,0x01, // 253 422 | 0x00,0x80,0x0F,0xC0,0xFF,0x0F,0xC0,0xFF,0x08,0x00,0x86,0x00,0x00,0xFE,0x00,0x00,0x7C, // 254 423 | 0x00,0x08,0x00,0x80,0xFF,0x07,0xC0,0xE3,0x06,0x40,0x60,0x06,0xC0,0xFF,0x03,0xC0,0xFF,0x01 // 255 424 | }; 425 | 426 | -------------------------------------------------------------------------------- /Exercise_05_05/Exercise_05_05.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | 4 | SSD1306Wire display(0x3c, D3, D4); 5 | 6 | void setup() { 7 | // Initialize the driver 8 | display.init(); 9 | 10 | // define font 11 | display.setFont(ArialMT_Plain_10); 12 | 13 | // add method here to center the text 14 | 15 | 16 | // Set the drawing color once 17 | display.setColor(WHITE); 18 | } 19 | 20 | void loop() { 21 | // Clear the frame buffer 22 | display.clear(); 23 | 24 | String textToDisplay = "This is a very long text which should be aligned horizontally to the center of the screen and automatically wrapped to the next line."; 25 | 26 | // Find a method in the documentation which draws the above text with line wrap enabled 27 | 28 | 29 | // Write the frame buffer to the display. 30 | display.display(); 31 | 32 | } 33 | 34 | -------------------------------------------------------------------------------- /Exercise_05_05_Solution/Exercise_05_05_Solution.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306Wire.h" 3 | 4 | SSD1306Wire display(0x3c, D3, D4); 5 | 6 | void setup() { 7 | // Initialize the driver 8 | display.init(); 9 | 10 | // define font 11 | display.setFont(ArialMT_Plain_10); 12 | 13 | // add method here to center the text 14 | display.setTextAlignment(TEXT_ALIGN_CENTER); 15 | 16 | // Set the drawing color once 17 | display.setColor(WHITE); 18 | } 19 | 20 | void loop() { 21 | // Clear the frame buffer 22 | display.clear(); 23 | 24 | String textToDisplay = "This is a very long text which should be aligned horizontally to the center of the screen and automatically wrapped to the next line."; 25 | 26 | // Find a method in the documentation which draws the above text with line wrap enabled 27 | display.drawStringMaxWidth(64, 0, 120, textToDisplay); 28 | 29 | // Write the frame buffer to the display. 30 | display.display(); 31 | 32 | } 33 | 34 | -------------------------------------------------------------------------------- /Exercise_05_06/Exercise_05_06.ino: -------------------------------------------------------------------------------- 1 | // Include the driver file 2 | 3 | 4 | // Declare the driver 5 | 6 | 7 | void setup() { 8 | Serial.begin(115200); 9 | 10 | // Initialize the driver 11 | 12 | } 13 | 14 | void loop() { 15 | 16 | // Read humidity and temperature into float variables 17 | 18 | 19 | // Use printf to write the values formatted to the command line 20 | 21 | 22 | // Wait 23 | delay(1000); 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /Exercise_05_06_Solution/Exercise_05_06_Solution.ino: -------------------------------------------------------------------------------- 1 | // Include the driver file 2 | #include "DHTesp.h" 3 | 4 | // Declare the driver 5 | DHTesp dht; 6 | 7 | void setup() { 8 | Serial.begin(115200); 9 | 10 | // Initialize the driver 11 | dht.setup(D6, DHTesp::DHT11); 12 | } 13 | 14 | void loop() { 15 | 16 | // Read humidity and temperature into float variables 17 | float humidity = dht.getHumidity(); 18 | float temperature = dht.getTemperature(); 19 | 20 | // Use printf to write the values formatted to the command line 21 | Serial.printf("Hum: %.1f%%, Temp: %.1f°C\n", humidity, temperature); 22 | 23 | // Wait 24 | delay(1000); 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Daniel Eichhorn 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # esp8266-getting-started 2 | Exercises to get started with the ESP8266 following the book/workshop 3 | --------------------------------------------------------------------------------