// Photopea (online Photoshop-like tool): https://www.photopea.com/
// image2cpp (convert images into C code): https://javl.github.io/image2cpp/
// Push buttons - https://s.click.aliexpress.com/e/_DmXS8B9
//Battery Shit -for now set to 100k
//Data Shit - 1 gyro, 1 signal strenth, gps location
//Overide servo shit - a switch to 2 pots (2 3pin female)
#include "U8glib.h"
#include <Wire.h>
#define VRX_PIN A3 // Arduino pin connected to VRX pin
#define VRY_PIN A2 // Arduino pin connected to VRY pin
int xValue = 0; // To store value of the X axis
int yValue = 0; // To store value of the Y axis
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
// U8GLIB_SSD1306_128X64 u8g(13, 11, 8, 9, 10); // SPI connection
// for SPI connection, use this wiring:
// GND > GND
// VCC > 5V
// SCL > 13
// SDA > 11
// RES > 10
// DC > 9
// CS > 8
#define LightLED 12
// all the arrays below are generated from images using image2cpp website
// scroll down to see the actual code
// 'potsONgyroOFF', 128x64px
const unsigned char epd_bitmap_potsONgyroOFF [] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0xc3, 0xfe, 0x00, 0x03, 0xf0, 0xc1, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xce, 0x1f, 0xe0, 0x70, 0x00, 0x07, 0xf8, 0xe1, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc3, 0x18, 0x60, 0x20, 0x00, 0x06, 0x0c, 0xf1, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc3, 0x30, 0x30, 0x20, 0x00, 0x0c, 0x0c, 0xf1, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc3, 0x30, 0x30, 0x20, 0x00, 0x0c, 0x0c, 0xd9, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc7, 0x30, 0x30, 0x20, 0x00, 0x0c, 0x0c, 0xcd, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xfe, 0x30, 0x30, 0x20, 0x00, 0x0c, 0x0c, 0xcd, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x30, 0x20, 0x00, 0x0c, 0x0c, 0xc7, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc0, 0x18, 0x60, 0x20, 0x00, 0x06, 0x0c, 0xc3, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc0, 0x1c, 0xe0, 0x20, 0x00, 0x07, 0x38, 0xc3, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xc0, 0x20, 0x00, 0x03, 0xf0, 0xc1, 0x80, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0x03, 0xc7, 0xf8, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00,
0x0f, 0xc7, 0xe7, 0xf8, 0x31, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xd0, 0x00, 0x00,
0x0c, 0x4c, 0x30, 0xc0, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xd0, 0x00, 0x00,
0x0c, 0x48, 0x30, 0xc0, 0x0f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xd0, 0x00, 0x00,
0x0c, 0xd8, 0x10, 0xc0, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xd0, 0x00, 0x00,
0x0f, 0xd8, 0x10, 0xc0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xd0, 0x00, 0x00,
0x0c, 0x08, 0x10, 0xc0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00,
0x0c, 0x0c, 0x30, 0xc0, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00,
0x0c, 0x0e, 0x60, 0xc0, 0x31, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00,
0x0c, 0x07, 0xc0, 0xc0, 0x20, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x14, 0x00, 0x00,
0x0f, 0x03, 0xc7, 0xf8, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x14, 0x00, 0x00,
0x0f, 0xc7, 0xe7, 0xf8, 0x21, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x14, 0x00, 0x00,
0x0c, 0x4c, 0x30, 0xc0, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x14, 0x00, 0x00,
0x0c, 0x48, 0x30, 0xc0, 0x1a, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00,
0x0c, 0xd8, 0x10, 0xc0, 0x0e, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00,
0x0f, 0xd8, 0x10, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xfb, 0xe0, 0x00,
0x0c, 0x08, 0x10, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xa0, 0x00,
0x0c, 0x0c, 0x30, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xa0, 0x00,
0x0c, 0x0e, 0x60, 0xc0, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x53, 0xca, 0xa0, 0x00,
0x0c, 0x07, 0xc0, 0xc0, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xa0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xa0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xa0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'potsOFFgyroON', 128x64px
const unsigned char epd_bitmap_potsOFFgyroON [] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x8f, 0xc1, 0xf8, 0x40, 0xc3, 0xf1, 0xff, 0x8f, 0xe0, 0xfe, 0x30, 0xc0, 0x00, 0x3f, 0x0c, 0x19,
0x80, 0xc3, 0xfc, 0x61, 0x87, 0x70, 0x18, 0x03, 0x01, 0xee, 0x30, 0xc0, 0x00, 0x7f, 0x8e, 0x19,
0x80, 0xc6, 0x0c, 0x31, 0x8c, 0x00, 0x18, 0x03, 0x01, 0x80, 0x31, 0x80, 0x00, 0x61, 0x8e, 0x19,
0x80, 0xc6, 0x06, 0x33, 0x0c, 0x00, 0x18, 0x03, 0x01, 0x00, 0x33, 0x00, 0x00, 0xc0, 0xcf, 0x19,
0x80, 0xc6, 0x06, 0x1e, 0x07, 0x80, 0x18, 0x03, 0x03, 0x00, 0x36, 0x00, 0x00, 0xc0, 0xcd, 0x99,
0x80, 0xc6, 0x06, 0x0e, 0x03, 0xf0, 0x18, 0x03, 0x03, 0x00, 0x3e, 0x00, 0x00, 0xc0, 0xcd, 0x99,
0x80, 0xc6, 0x06, 0x0c, 0x00, 0x38, 0x18, 0x03, 0x03, 0x00, 0x3b, 0x00, 0x00, 0xc0, 0xcc, 0xd9,
0x80, 0xc6, 0x06, 0x0c, 0x00, 0x18, 0x18, 0x03, 0x01, 0x00, 0x33, 0x80, 0x00, 0xc0, 0xcc, 0x79,
0x80, 0xc6, 0x0c, 0x0c, 0x00, 0x18, 0x18, 0x03, 0x01, 0x80, 0x31, 0x80, 0x00, 0x61, 0x8c, 0x79,
0xb9, 0x83, 0x9c, 0x0c, 0x0f, 0x38, 0x18, 0x03, 0x01, 0xce, 0x30, 0xc0, 0x00, 0x73, 0x8c, 0x39,
0x9f, 0x01, 0xf8, 0x0c, 0x07, 0xf0, 0x18, 0x1f, 0xe0, 0xfe, 0x30, 0x60, 0x00, 0x3f, 0x0c, 0x19,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x00, 0x00, 0x03, 0x08, 0x03, 0x00, 0x31, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x79, 0x8c, 0xf7, 0xd8, 0xf3, 0x30, 0x1e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0xcc, 0x8d, 0x83, 0x19, 0x83, 0x60, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0d, 0x8c, 0xc9, 0x83, 0x19, 0x03, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0d, 0x84, 0xd8, 0xf3, 0x1b, 0x03, 0x80, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0d, 0x8c, 0x50, 0x1b, 0x19, 0x03, 0xc0, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0xcc, 0x70, 0x1b, 0x19, 0x83, 0x60, 0x31, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0xf8, 0x31, 0xf1, 0xd8, 0xf3, 0x30, 0x61, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x00, 0x00, 0x03, 0x08, 0x03, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x79, 0x8c, 0xf7, 0xd8, 0xf3, 0x30, 0x16, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0xcc, 0x8d, 0x83, 0x19, 0x83, 0x60, 0x1c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0d, 0x8c, 0xc9, 0x83, 0x19, 0x03, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0d, 0x84, 0xd8, 0xf3, 0x1b, 0x03, 0x80, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0d, 0x8c, 0x50, 0x1b, 0x19, 0x03, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0xcc, 0x70, 0x1b, 0x19, 0x83, 0x60, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0xf8, 0x31, 0xf1, 0xd8, 0xf3, 0x30, 0x0c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_gps_speed [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x42, 0x08, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x3e, 0x00, 0x7c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x11, 0xc0, 0x00, 0x03, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x06, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x18, 0x20, 0x18, 0x04, 0x18, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x20, 0x20, 0x18, 0x04, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0x10, 0x18, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x10, 0x18, 0x08, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x42, 0x00, 0x00, 0x18, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x24, 0x00, 0xe7, 0x98, 0x97, 0x80, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x00, 0x14, 0x98, 0x94, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x00, 0xe4, 0x98, 0xf4, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x14, 0x98, 0x14, 0x80, 0x04, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x3f, 0xff, 0x80,
0x04, 0x40, 0x00, 0x14, 0x98, 0x14, 0x80, 0x02, 0x20, 0x00, 0x00, 0xff, 0xfe, 0x3f, 0xff, 0x80,
0x02, 0x40, 0x00, 0xe7, 0x98, 0x17, 0x80, 0x02, 0x40, 0x00, 0x01, 0xff, 0xfe, 0x3f, 0xff, 0x80,
0x00, 0x80, 0x00, 0x00, 0x18, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xff, 0xfe, 0x3f, 0xff, 0x80,
0x01, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0c, 0x80, 0x00, 0x07, 0xff, 0xfe, 0x3f, 0xff, 0x80,
0x01, 0x0c, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x80, 0x00, 0x07, 0xff, 0xfe, 0x3f, 0xff, 0x80,
0x22, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x44, 0x00, 0x07, 0xf0, 0x7e, 0x3f, 0x00, 0x00,
0x12, 0x03, 0x9e, 0x00, 0x18, 0x00, 0xf7, 0x80, 0x48, 0x00, 0x07, 0xf0, 0x7e, 0x3f, 0x00, 0x00,
0x04, 0x00, 0x52, 0x00, 0x18, 0x00, 0x84, 0x80, 0x20, 0x00, 0x07, 0xf0, 0x7e, 0x3f, 0x00, 0x00,
0x04, 0x00, 0x92, 0x00, 0x18, 0x00, 0xe4, 0x80, 0x20, 0x00, 0x03, 0xe0, 0x7e, 0x3f, 0x00, 0x00,
0x04, 0x01, 0x12, 0x00, 0x18, 0x00, 0x14, 0x80, 0x20, 0x00, 0x00, 0x00, 0x7e, 0x3f, 0x00, 0x00,
0x08, 0x02, 0x12, 0x00, 0x18, 0x00, 0x14, 0x80, 0x10, 0x00, 0x00, 0x00, 0x7e, 0x3f, 0xfc, 0x00,
0x68, 0x03, 0xde, 0x00, 0x18, 0x00, 0xe7, 0x80, 0x16, 0x00, 0x00, 0x03, 0xfc, 0x3f, 0xfe, 0x00,
0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x03, 0xf8, 0x3f, 0xff, 0x00,
0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x03, 0xf0, 0x3f, 0xff, 0x80,
0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0xfe, 0x3f, 0xff, 0xc0,
0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0xfe, 0x3f, 0xff, 0xc0,
0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x0f, 0xc0,
0xd0, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x0f, 0xc0,
0x10, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x0f, 0xc0,
0x10, 0x2f, 0x00, 0x00, 0x42, 0x00, 0x03, 0xbc, 0x08, 0x00, 0x03, 0xe0, 0x7e, 0x00, 0x0f, 0xc0,
0x10, 0x29, 0x00, 0x00, 0x42, 0x00, 0x04, 0x24, 0x08, 0x00, 0x07, 0xf0, 0x7e, 0x7f, 0x0f, 0xc0,
0x10, 0x29, 0x00, 0x00, 0x42, 0x00, 0x07, 0x24, 0x08, 0x00, 0x07, 0xf0, 0x7e, 0x7f, 0x0f, 0xc0,
0x17, 0xa9, 0x00, 0x00, 0x3c, 0x00, 0x04, 0xa5, 0xe8, 0x00, 0x07, 0xf0, 0x7e, 0x7f, 0x0f, 0xc0,
0xd0, 0x29, 0x00, 0x00, 0x18, 0x00, 0x04, 0xa4, 0x0b, 0x00, 0x07, 0xff, 0xfe, 0x7f, 0xff, 0xc0,
0x10, 0x2f, 0x00, 0x00, 0x18, 0x00, 0x03, 0x3c, 0x08, 0x00, 0x07, 0xff, 0xfe, 0x7f, 0xff, 0xc0,
0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x07, 0xff, 0xfe, 0x3f, 0xff, 0xc0,
0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x07, 0xff, 0xfc, 0x1f, 0xff, 0xc0,
0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x07, 0xff, 0xf8, 0x0f, 0xff, 0xc0,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x07, 0xff, 0xf0, 0x07, 0xff, 0xc0,
0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x04, 0x00, 0x3c, 0x00, 0x00, 0x07, 0xbc, 0x00, 0x20, 0x00, 0x00, 0x01, 0x17, 0xa4, 0x00, 0x00,
0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x20, 0x00, 0x00, 0x01, 0xb4, 0xa4, 0x00, 0x00,
0x02, 0x00, 0x24, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x40, 0x00, 0x00, 0x01, 0x57, 0xbc, 0x00, 0x00,
0x0a, 0x00, 0x24, 0x00, 0x00, 0x01, 0x24, 0x00, 0x50, 0x00, 0x00, 0x01, 0x14, 0x24, 0x00, 0x00,
0x11, 0x00, 0x24, 0x00, 0x00, 0x02, 0x24, 0x00, 0x88, 0x00, 0x00, 0x01, 0x14, 0x24, 0x00, 0x00,
0x01, 0x00, 0x3c, 0x00, 0x00, 0x04, 0x3c, 0x00, 0x80, 0x00, 0x00, 0x01, 0x14, 0x24, 0x00, 0x00,
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x05, 0x75, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x05, 0x51, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0x00, 0x05, 0x65, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x06, 0x45, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'icon_fireworks', 16x16px
const unsigned char bitmap_icon_fireworks [] PROGMEM = {
0x00, 0x00, 0x00, 0x08, 0x00, 0x94, 0x10, 0x08, 0x10, 0x00, 0x6c, 0x00, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x00
};
// 'icon_gps_speed', 16x16px
const unsigned char bitmap_icon_gps_speed [] PROGMEM = {
0x00, 0x00, 0x03, 0xf0, 0x00, 0x08, 0x01, 0xe4, 0x00, 0x12, 0x00, 0xca, 0x06, 0x2a, 0x07, 0x2a,
0x07, 0x8a, 0x07, 0xc2, 0x07, 0xc0, 0x0a, 0x00, 0x1f, 0x00, 0x20, 0x80, 0x7f, 0xc0, 0x00, 0x00
};
// 'icon_battery', 16x16px
const unsigned char bitmap_icon_battery [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x40, 0x04, 0x5b, 0x66, 0x5b, 0x66,
0x5b, 0x66, 0x40, 0x04, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'icon_dashboard', 16x16px
const unsigned char bitmap_icon_dashboard [] PROGMEM = {
0x07, 0xe0, 0x18, 0x18, 0x21, 0x24, 0x50, 0x02, 0x48, 0x0a, 0x84, 0x01, 0x83, 0x81, 0xa2, 0x45,
0x82, 0x41, 0x81, 0x81, 0xa0, 0x05, 0x40, 0x02, 0x4b, 0xd2, 0x23, 0xc4, 0x18, 0x18, 0x07, 0xe0
};
// 'icon_knob_over_oled', 16x16px
const unsigned char bitmap_icon_knob_over_oled [] PROGMEM = {
0x00, 0x00, 0x1f, 0xf0, 0x13, 0x50, 0x1b, 0xb0, 0x11, 0x50, 0x1f, 0xf0, 0x03, 0x80, 0x01, 0x00,
0x00, 0x00, 0x09, 0x20, 0x49, 0x24, 0x20, 0x08, 0x00, 0x01, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00
};
const unsigned char bitmap_icon_turbo [] PROGMEM = {
0x00, 0x0e, 0x07, 0xf1, 0x18, 0x01, 0x20, 0x01, 0x40, 0x01, 0x43, 0xf1, 0x84, 0x4e, 0x8a, 0xa0,
0x89, 0x22, 0x8a, 0xa2, 0x84, 0x42, 0x43, 0x84, 0x40, 0x04, 0x20, 0x08, 0x18, 0x30, 0x07, 0xc0
};
const unsigned char bitmap_icon_parksensor [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x22, 0x00, 0x25, 0x00, 0xf9, 0x00, 0x00, 0x81,
0x0c, 0x85, 0x12, 0x95, 0xd2, 0x95, 0x0c, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 384)
const unsigned char* bitmap_icons[7] = {
bitmap_icon_battery,
bitmap_icon_dashboard,
bitmap_icon_knob_over_oled,
bitmap_icon_fireworks,
bitmap_icon_turbo,
bitmap_icon_gps_speed,
bitmap_icon_parksensor,
};
// 'LightOFF', 128x64px
const unsigned char select_bitmap_LightOFF [] 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, 0x30, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00,
0x06, 0x00, 0x30, 0x00, 0x00, 0xc0, 0x00, 0x80, 0x00, 0x00, 0x1f, 0xf0, 0x1f, 0xfc, 0x7f, 0xe0,
0x06, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x00, 0x00, 0x3c, 0x38, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x00, 0x00, 0x70, 0x1c, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x00, 0x00, 0x60, 0x0e, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0x1f, 0x30, 0xcf, 0x83, 0xfc, 0x00, 0x00, 0xe0, 0x06, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0x39, 0xf0, 0xff, 0xc1, 0xc0, 0x70, 0x00, 0xc0, 0x06, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0x60, 0xf0, 0xe0, 0xe1, 0xc0, 0x70, 0x00, 0xc0, 0x07, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0xe0, 0x70, 0xe0, 0x61, 0xc0, 0x00, 0x00, 0xc0, 0x07, 0x1f, 0xf8, 0x7f, 0xe0,
0x06, 0x00, 0x30, 0xc0, 0x70, 0xc0, 0x61, 0xc0, 0x00, 0x00, 0xc0, 0x07, 0x1f, 0xf8, 0x7f, 0xc0,
0x06, 0x00, 0x30, 0xc0, 0x70, 0xc0, 0x61, 0xc0, 0x00, 0x00, 0xc0, 0x07, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0xc0, 0x30, 0xc0, 0x61, 0xc0, 0x00, 0x00, 0xc0, 0x06, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0xc0, 0x70, 0xc0, 0x61, 0xc0, 0x00, 0x00, 0xe0, 0x06, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0xe0, 0x70, 0xc0, 0x61, 0x80, 0x00, 0x00, 0xe0, 0x0e, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0x60, 0x70, 0xc0, 0x61, 0xc0, 0x00, 0x00, 0x70, 0x0c, 0x1c, 0x00, 0x70, 0x00,
0x06, 0x00, 0x30, 0x70, 0xf0, 0xc0, 0x60, 0xc0, 0x70, 0x00, 0x38, 0x1c, 0x1c, 0x00, 0x70, 0x00,
0x07, 0xff, 0x30, 0x3f, 0xf0, 0xc0, 0x60, 0xfc, 0x70, 0x00, 0x1f, 0xf8, 0x1c, 0x00, 0x70, 0x00,
0x07, 0xff, 0x30, 0x1f, 0x70, 0xc0, 0x60, 0x7c, 0x70, 0x00, 0x0f, 0xe0, 0x1c, 0x00, 0x70, 0x00,
0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'LightON', 128x64px
const unsigned char select_bitmap_LightON [] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xc0, 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, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x30, 0x01, 0x80, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0xff, 0x80, 0xf0, 0x1c, 0x03,
0xc0, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x01, 0xe1, 0xc0, 0xf8, 0x1c, 0x03,
0xc0, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x03, 0x80, 0xe0, 0xf8, 0x1c, 0x03,
0xc0, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x03, 0x00, 0x70, 0xfc, 0x1c, 0x03,
0xc0, 0x30, 0x01, 0x80, 0xf9, 0x86, 0x7c, 0x1f, 0xe0, 0x00, 0x07, 0x00, 0x30, 0xec, 0x1c, 0x03,
0xc0, 0x30, 0x01, 0x81, 0xcf, 0x87, 0xfe, 0x0e, 0x03, 0x80, 0x06, 0x00, 0x30, 0xee, 0x1c, 0x03,
0xc0, 0x30, 0x01, 0x83, 0x07, 0x87, 0x07, 0x0e, 0x03, 0x80, 0x06, 0x00, 0x38, 0xe6, 0x1c, 0x03,
0xc0, 0x30, 0x01, 0x87, 0x03, 0x87, 0x03, 0x0e, 0x00, 0x00, 0x06, 0x00, 0x38, 0xe3, 0x1c, 0x03,
0xc0, 0x30, 0x01, 0x86, 0x03, 0x86, 0x03, 0x0e, 0x00, 0x00, 0x06, 0x00, 0x38, 0xe3, 0x1c, 0x03,
0xc0, 0x30, 0x01, 0x86, 0x03, 0x86, 0x03, 0x0e, 0x00, 0x00, 0x06, 0x00, 0x38, 0xe1, 0x9c, 0x03,
0xc0, 0x30, 0x01, 0x86, 0x01, 0x86, 0x03, 0x0e, 0x00, 0x00, 0x06, 0x00, 0x30, 0xe1, 0x9c, 0x03,
0xc0, 0x30, 0x01, 0x86, 0x03, 0x86, 0x03, 0x0e, 0x00, 0x00, 0x07, 0x00, 0x30, 0xe0, 0xdc, 0x03,
0xc0, 0x30, 0x01, 0x87, 0x03, 0x86, 0x03, 0x0c, 0x00, 0x00, 0x07, 0x00, 0x70, 0xe0, 0xdc, 0x03,
0xc0, 0x30, 0x01, 0x83, 0x03, 0x86, 0x03, 0x0e, 0x00, 0x00, 0x03, 0x80, 0x60, 0xe0, 0x7c, 0x03,
0xc0, 0x30, 0x01, 0x83, 0x87, 0x86, 0x03, 0x06, 0x03, 0x80, 0x01, 0xc0, 0xe0, 0xe0, 0x7c, 0x03,
0xc0, 0x3f, 0xf9, 0x81, 0xff, 0x86, 0x03, 0x07, 0xe3, 0x80, 0x00, 0xff, 0xc0, 0xe0, 0x3c, 0x03,
0xc0, 0x3f, 0xf9, 0x80, 0xfb, 0x86, 0x03, 0x03, 0xe3, 0x80, 0x00, 0x7f, 0x00, 0xe0, 0x3c, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 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, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0xf0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x20, 0x02, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xc0, 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, 0x03,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
const unsigned char select_bitmap_RGB [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00,
0x0f, 0x87, 0xdf, 0x03, 0x9f, 0x41, 0xf1, 0xff, 0xcf, 0x1e, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00,
0x0c, 0xcc, 0x1b, 0x04, 0x30, 0xc3, 0x03, 0x03, 0x19, 0xb3, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0x00,
0x0c, 0xd8, 0x19, 0x04, 0x30, 0xc3, 0x06, 0x03, 0x30, 0xf1, 0x00, 0x38, 0x01, 0xc0, 0x00, 0x00,
0x0c, 0xd0, 0x1b, 0x06, 0x30, 0xc3, 0x04, 0x03, 0x30, 0xf3, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00,
0x0f, 0x90, 0x1e, 0x03, 0xbe, 0xc3, 0xec, 0x03, 0x30, 0xfe, 0x00, 0xc0, 0x00, 0x30, 0x00, 0x00,
0x0d, 0x91, 0xdb, 0x01, 0xb0, 0xc3, 0x04, 0x03, 0x30, 0xf3, 0x01, 0x80, 0x00, 0x18, 0x00, 0x00,
0x0c, 0xd0, 0xd9, 0x00, 0xf0, 0xc3, 0x06, 0x03, 0x30, 0xf3, 0x01, 0x80, 0x00, 0x08, 0x00, 0x00,
0x0c, 0xdc, 0xdb, 0x01, 0xb0, 0xc3, 0x07, 0x03, 0x19, 0xb1, 0x03, 0x00, 0x00, 0x0c, 0x00, 0x00,
0x08, 0x4f, 0xde, 0x07, 0x1f, 0x7d, 0xf1, 0xe2, 0x0f, 0x11, 0x83, 0x00, 0x00, 0x0c, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1f, 0xf9, 0x86, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1f, 0xfb, 0x86, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1f, 0xfb, 0x86, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1f, 0xf7, 0x86, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0xef, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0e, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0e, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0e, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0e, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x07, 0x86, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3c, 0x03, 0x86, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3c, 0x03, 0x86, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3c, 0x03, 0x87, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x01, 0x07, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x07, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xe0, 0x00, 0x37, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xf7, 0x0e, 0x7f, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe7, 0x8e, 0x7f, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf7, 0x8e, 0x7f, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x8f, 0xff, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe7, 0x8e, 0x7c, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc7, 0x8e, 0x3f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x87, 0x0e, 0x1f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x0f, 0x0f, 0x0f, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0e, 0x07, 0x87, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x1e, 0x03, 0xc3, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0x1c, 0x01, 0xe0, 0xfe, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x3c, 0x01, 0xe0, 0x3f, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x78, 0x01, 0xf0, 0x1f, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0xf8, 0x00, 0xf0, 0x07, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0xf0, 0x00, 0xf0, 0x03, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x01, 0xf0, 0x00, 0x70, 0x00, 0x7c,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x01, 0xe0, 0x00, 0x70, 0x00, 0x3e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x01, 0xe0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x01, 0xe0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x01, 0xf0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x01, 0xf0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0xe0, 0x00, 0x70, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x40, 0x00, 0x20, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 2080)
const int select_bitmap_allArray_LEN = 3;
const unsigned char* select_bitmap_allArray[3] = {
select_bitmap_LightOFF,
select_bitmap_LightON,
select_bitmap_RGB
};
// 'scrollbar_background', 8x64px
const unsigned char bitmap_scrollbar_background [] PROGMEM = {
0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02,
0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02,
0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02,
0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00
};
// 'item_sel_outline', 128x21px
const unsigned char bitmap_item_sel_outline [] PROGMEM = {
0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
};
// 'car_image', 56x15px
const unsigned char bitmap_car_image [] PROGMEM = {
0xc0, 0x40, 0x00, 0x00, 0x00, 0x02, 0x03, 0xc0, 0x8f, 0xff, 0xff, 0xff, 0xf1, 0x03, 0xe0, 0x70,
0x00, 0x00, 0x00, 0x0e, 0x07, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xc0, 0xff, 0x00, 0x00,
0x00, 0xff, 0x03, 0xc0, 0x00, 0x05, 0x75, 0xc0, 0x00, 0x03, 0x47, 0xf8, 0x05, 0x51, 0x40, 0x1f,
0xe2, 0x47, 0xfc, 0x05, 0x65, 0x80, 0x3f, 0xe2, 0x40, 0x78, 0x06, 0x45, 0x40, 0x1e, 0x02, 0x30,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x01, 0xff, 0xff, 0xff, 0x80, 0x78, 0x07, 0xe2, 0x00,
0x00, 0x00, 0x47, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff,
0xfd, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x06, 0x00
};
// 'sensor_01_a_off', 32x14px
const unsigned char bitmap_sensor_01_a_off [] PROGMEM = {
0x00, 0x40, 0x00, 0x00, 0x02, 0xa8, 0x00, 0x00, 0x05, 0x55, 0x00, 0x00, 0x02, 0xaa, 0xa0, 0x00,
0x05, 0x55, 0x54, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x15, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa0,
0x01, 0x55, 0x55, 0x40, 0x00, 0x2a, 0xaa, 0xa0, 0x00, 0x15, 0x55, 0x40, 0x00, 0x02, 0xaa, 0xa0,
0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x02, 0xa0
};
// 'sensor_01_a_on', 32x14px
const unsigned char bitmap_sensor_01_a_on [] PROGMEM = {
0x00, 0xc0, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xe0,
0x03, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x03, 0xff, 0xe0,
0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x03, 0xe0
};
// 'sensor_01_b_off', 32x16px
const unsigned char bitmap_sensor_01_b_off [] PROGMEM = {
0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x05, 0x54, 0x00, 0x00,
0x0a, 0xaa, 0x80, 0x00, 0x15, 0x55, 0x50, 0x00, 0x0a, 0xaa, 0xaa, 0x80, 0x15, 0x55, 0x55, 0x50,
0x0a, 0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x50, 0x00, 0xaa, 0xaa, 0xa8, 0x00, 0x15, 0x55, 0x50,
0x00, 0x02, 0xaa, 0xa0, 0x00, 0x00, 0x55, 0x50, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x50
};
// 'sensor_01_b_on', 32x16px
const unsigned char bitmap_sensor_01_b_on [] PROGMEM = {
0x02, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00,
0x0f, 0xff, 0x80, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xf8,
0x1f, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xf8,
0x00, 0x07, 0xff, 0xf0, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0xf0
};
// 'sensor_01_c_off', 32x17px
const unsigned char bitmap_sensor_01_c_off [] PROGMEM = {
0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x00, 0x00, 0x15, 0x50, 0x00, 0x00,
0x2a, 0xaa, 0x00, 0x00, 0x15, 0x55, 0x40, 0x00, 0x2a, 0xaa, 0xaa, 0x00, 0x55, 0x55, 0x55, 0x40,
0x2a, 0xaa, 0xaa, 0xaa, 0x15, 0x55, 0x55, 0x54, 0x02, 0xaa, 0xaa, 0xa8, 0x00, 0x55, 0x55, 0x54,
0x00, 0x0a, 0xaa, 0xa8, 0x00, 0x01, 0x55, 0x54, 0x00, 0x00, 0x2a, 0xa8, 0x00, 0x00, 0x05, 0x54,
0x00, 0x00, 0x00, 0x28
};
// 'sensor_01_c_on', 32x17px
const unsigned char bitmap_sensor_01_c_on [] PROGMEM = {
0x08, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00,
0x3f, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0x7f, 0xff, 0xff, 0xe0,
0x7f, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xfc,
0x00, 0x1f, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x00, 0x3c
};
// 'sensor_01_d_off', 32x18px
const unsigned char bitmap_sensor_01_d_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x00, 0x00,
0x55, 0x50, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x50, 0x00, 0xaa, 0xaa, 0xaa, 0x00,
0x55, 0x55, 0x55, 0x50, 0x2a, 0xaa, 0xaa, 0xaa, 0x05, 0x55, 0x55, 0x54, 0x02, 0xaa, 0xaa, 0xaa,
0x00, 0x55, 0x55, 0x54, 0x00, 0x0a, 0xaa, 0xaa, 0x00, 0x01, 0x55, 0x54, 0x00, 0x00, 0x2a, 0xa8,
0x00, 0x00, 0x01, 0x54, 0x00, 0x00, 0x00, 0x08
};
// 'sensor_02_a_off', 32x9px
const unsigned char bitmap_sensor_02_a_off [] PROGMEM = {
0x05, 0x55, 0x55, 0x40, 0x0a, 0xaa, 0xaa, 0xa0, 0x05, 0x55, 0x55, 0x40, 0x0a, 0xaa, 0xaa, 0xa0,
0x05, 0x55, 0x55, 0x40, 0x0a, 0xaa, 0xaa, 0xa0, 0x05, 0x55, 0x55, 0x40, 0x0a, 0xaa, 0xaa, 0xa0,
0x15, 0x55, 0x55, 0x50
};
// 'sensor_01_d_on', 32x18px
const unsigned char bitmap_sensor_01_d_on [] PROGMEM = {
0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00,
0xff, 0xf8, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xfe, 0x00,
0x7f, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xfe,
0x00, 0x7f, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfc,
0x00, 0x00, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x1c
};
// 'sensor_02_a_on', 32x9px
const unsigned char bitmap_sensor_02_a_on [] PROGMEM = {
0x07, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe0,
0x0f, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe0,
0x1f, 0xff, 0xff, 0xf0
};
// 'sensor_02_b_off', 32x9px
const unsigned char bitmap_sensor_02_b_off [] PROGMEM = {
0x15, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa0, 0x15, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa0,
0x15, 0x55, 0x55, 0x50, 0x2a, 0xaa, 0xaa, 0xa8, 0x15, 0x55, 0x55, 0x50, 0x2a, 0xaa, 0xaa, 0xa8,
0x05, 0x55, 0x55, 0x40
};
// 'sensor_02_b_on', 32x9px
const unsigned char bitmap_sensor_02_b_on [] PROGMEM = {
0x1f, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf0,
0x3f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xf8,
0x0f, 0xff, 0xff, 0xe0
};
// 'sensor_02_c_off', 32x10px
const unsigned char bitmap_sensor_02_c_off [] PROGMEM = {
0x10, 0x00, 0x00, 0x04, 0x0a, 0xaa, 0xaa, 0xa8, 0x15, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xaa,
0x15, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xaa, 0x15, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xaa,
0x15, 0x55, 0x55, 0x54, 0x0a, 0xaa, 0xaa, 0xa8
};
// 'sensor_02_c_on', 32x10px
const unsigned char bitmap_sensor_02_c_on [] PROGMEM = {
0x18, 0x00, 0x00, 0x0c, 0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe,
0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe,
0x3f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xf8
};
// 'sensor_02_d_off', 40x10px
const unsigned char bitmap_sensor_02_d_off [] PROGMEM = {
0x02, 0x80, 0x00, 0x00, 0x28, 0x01, 0x55, 0x55, 0x55, 0x50, 0x02, 0xaa, 0xaa, 0xaa, 0xa8, 0x01,
0x55, 0x55, 0x55, 0x50, 0x02, 0xaa, 0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x55, 0x54, 0x02, 0xaa,
0xaa, 0xaa, 0xa8, 0x05, 0x55, 0x55, 0x55, 0x54, 0x02, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x55, 0x55,
0x55, 0x40
};
// 'sensor_02_d_on', 40x10px
const unsigned char bitmap_sensor_02_d_on [] PROGMEM = {
0x03, 0x80, 0x00, 0x00, 0x38, 0x03, 0xff, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xf8, 0x03,
0xff, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x07, 0xff,
0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff,
0xff, 0xe0
};
// 'sensor_03_a_off', 32x14px
const unsigned char bitmap_sensor_03_a_off [] PROGMEM = {
0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x00, 0x01, 0x55, 0x40, 0x00, 0x0a, 0xaa, 0x80,
0x00, 0x55, 0x55, 0x40, 0x0a, 0xaa, 0xaa, 0xa0, 0x15, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa0,
0x05, 0x55, 0x55, 0x00, 0x0a, 0xaa, 0xa8, 0x00, 0x05, 0x55, 0x50, 0x00, 0x0a, 0xaa, 0x80, 0x00,
0x05, 0x50, 0x00, 0x00, 0x0a, 0x80, 0x00, 0x00
};
// 'sensor_03_b_on', 32x16px
const unsigned char bitmap_sensor_03_b_on [] PROGMEM = {
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x01, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xfc,
0x1f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xfc, 0x00,
0x0f, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00
};
// 'sensor_03_a_on', 32x14px
const unsigned char bitmap_sensor_03_a_on [] PROGMEM = {
0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x0f, 0xff, 0xc0,
0x00, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xe0,
0x0f, 0xff, 0xff, 0x80, 0x0f, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0x80, 0x00,
0x0f, 0xf8, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00
};
// 'sensor_03_b_off', 32x16px
const unsigned char bitmap_sensor_03_b_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x05, 0x40, 0x00, 0x00, 0x2a, 0xa0,
0x00, 0x01, 0x55, 0x50, 0x00, 0x0a, 0xaa, 0xa8, 0x01, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa8,
0x15, 0x55, 0x55, 0x50, 0x0a, 0xaa, 0xaa, 0xa0, 0x15, 0x55, 0x55, 0x00, 0x0a, 0xaa, 0xa8, 0x00,
0x05, 0x55, 0x40, 0x00, 0x0a, 0xaa, 0x00, 0x00, 0x05, 0x50, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00
};
// 'sensor_03_c_off', 32x17px
const unsigned char bitmap_sensor_03_c_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x0a, 0xa8,
0x00, 0x00, 0x55, 0x54, 0x00, 0x02, 0xaa, 0xa8, 0x00, 0x55, 0x55, 0x54, 0x02, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x54, 0x2a, 0xaa, 0xaa, 0xa8, 0x15, 0x55, 0x55, 0x40, 0x2a, 0xaa, 0xaa, 0x00,
0x15, 0x55, 0x50, 0x00, 0x2a, 0xaa, 0x80, 0x00, 0x15, 0x54, 0x00, 0x00, 0x2a, 0xa0, 0x00, 0x00,
0x14, 0x00, 0x00, 0x00
};
// 'sensor_03_d_on', 32x18px
const unsigned char bitmap_sensor_03_d_on [] PROGMEM = {
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x3f, 0xfe, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xfe,
0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0x80,
0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00,
0x7f, 0x80, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00
};
// 'sensor_03_d_off', 32x18px
const unsigned char bitmap_sensor_03_d_off [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x01, 0x54, 0x00, 0x00, 0x02, 0xa8,
0x00, 0x00, 0x15, 0x54, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x15, 0x55, 0x54, 0x00, 0xaa, 0xaa, 0xaa,
0x15, 0x55, 0x55, 0x54, 0xaa, 0xaa, 0xaa, 0xa8, 0x55, 0x55, 0x55, 0x40, 0xaa, 0xaa, 0xaa, 0x80,
0x55, 0x55, 0x54, 0x00, 0xaa, 0xaa, 0xa0, 0x00, 0x55, 0x55, 0x00, 0x00, 0x2a, 0xa8, 0x00, 0x00,
0x55, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
};
// 'sensor_03_c_on', 32x17px
const unsigned char bitmap_sensor_03_c_on [] PROGMEM = {
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x1f, 0xf8,
0x00, 0x00, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x7f, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xfe,
0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0x00,
0x3f, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00,
0x3c, 0x00, 0x00, 0x00
};
// 'sound_on', 24x10px
const unsigned char bitmap_sound_on [] PROGMEM = {
0x03, 0xc0, 0x0f, 0x02, 0x0c, 0x01, 0x02, 0x1c, 0x11, 0x02, 0x3c, 0x49, 0x00, 0x7d, 0x28, 0x00,
0x7d, 0x28, 0x02, 0x3c, 0x49, 0x02, 0x1c, 0x11, 0x02, 0x0c, 0x01, 0x03, 0xc0, 0x0f
};
// 'unit_cm', 24x10px
const unsigned char bitmap_unit_cm [] PROGMEM = {
0xf0, 0x03, 0xc0, 0x80, 0x00, 0x40, 0xbe, 0xff, 0x40, 0xb6, 0xdb, 0x40, 0x30, 0xdb, 0x00, 0x30,
0xdb, 0x00, 0xb6, 0xdb, 0x40, 0xbe, 0xdb, 0x40, 0x80, 0x00, 0x40, 0xf0, 0x03, 0xc0
};
/*
Fontname: gamer_digits
Copyright: Created with Fony 1.4.7
Capital A Height: 0, '1' Height: 6
Calculated Max Values w= 5 h= 6 x= 1 y= 0 dx= 6 dy= 0 ascent= 0 len= 6
Font Bounding box w= 9 h= 5 x= 0 y=-6
Calculated Min Values x= 0 y=-6 dx= 0 dy= 0
Pure Font ascent = 6 descent= 0
X Font ascent = 6 descent= 0
Max Font ascent = 0 descent=-6
*/
const u8g_fntpgm_uint8_t gamer_digits[137] U8G_FONT_SECTION("gamer_digits") = {
0,9,5,0,250,6,0,0,0,0,48,57,0,0,250,6,
0,5,6,6,6,0,250,248,216,216,216,216,248,4,6,6,
6,1,250,224,96,96,96,96,240,5,6,6,6,0,250,248,
24,120,192,192,248,5,6,6,6,0,250,248,24,248,24,216,
248,5,6,6,6,0,250,56,120,216,248,24,24,5,6,6,
6,0,250,248,192,248,24,24,248,5,6,6,6,0,250,248,
192,248,216,216,248,5,6,6,6,0,250,248,24,24,24,24,
24,5,6,6,6,0,250,248,216,248,216,216,248,5,6,6,
6,0,250,248,216,216,248,24,248};
#define sensor_01_ECHO_PIN 12
#define sensor_01_TRIG_PIN 13
#define sensor_02_ECHO_PIN 10
#define sensor_02_TRIG_PIN 11
#define sensor_03_ECHO_PIN 9
#define sensor_03_TRIG_PIN 4
// number of sensors - note that adding a new sensor is not as simple as changing the number, as the image drawing is hardcoded
#define NUMBER_OF_SENSORS 3
struct sensor_data { // structure for the sensor data
int echo_pin; // ECHO pin for the ultrasonic distance sensor
int trig_pin; // TRIG pin for the ultrasonic distance sensor
int measured_distance_cm; // measured distance in CM
int label_xpos; // x position of the distance label
int label_ypos; // y position of the distance label
int label_width; // calculated width of the distance string
int label_startpos_x; // start X position for the label
int label_startpos_y; // start Y position for the label
int label_endpos_x; // end X position for the label
int label_endpos_y; // end Y position for the label
};
char buffer[10]; // helper C-style array of characters to store integers converted to strings
struct sensor_data sensor[NUMBER_OF_SENSORS]; // we have 3 sensors for now
int min_dist = 2; // minimum distance to display in cm, this is also the minimum measurable distance for the used sensor
int max_dist = 100; // maximum distance to display in cm with the tile images, maximum measurable distance is 400cm = 4m
int dist_step_01; // distance for the first tile (there are 4 tiles for each sensor)
int dist_step_02; // distance for the 2nd tile
int dist_step_03; // distance for the 3rd tile
int dist_step_04; // distance for the 4th tile
// ------------------ end generated bitmaps from image2cpp ---------------------------------
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 2080)
const int epd_bitmap_allArray_LEN = 3;
const unsigned char* epd_bitmap_allArray[3] = {
epd_bitmap_potsOFFgyroON,
epd_bitmap_potsONgyroOFF,
epd_bitmap_gps_speed
};
bool ledState = false; // Initialize the LED state, OFF by default
const int NUM_ITEMS = 7; // number of items in the list and also the number of screenshots and screenshots with QR codes (other screens)
const int MAX_ITEM_LENGTH = 20; // maximum characters for the item name
char menu_items [NUM_ITEMS] [MAX_ITEM_LENGTH] = { // array with item names
{ "Battery" },
{ "Values" },
{ "Sensor Switch" },
{ "RGB Settings" },
{ "Light Settings" },
{ "GPS Speed" },
{ "Park Sensor" },
};
// note - when changing the order of items above, make sure the other arrays referencing bitmaps
// also have the same order, for example array "bitmap_icons" for icons, and other arrays for screenshots and QR codes
#define BUTTON_UP_PIN 7 // pin for UP button
#define BUTTON_SELECT_PIN 6 // pin for SELECT button
#define BUTTON_DOWN_PIN 8 // pin for DOWN button
#define DEMO_PIN 5 // pin for demo mode, use switch or wire to enable or disable demo mode, see more details below
int button_up_clicked = 0; // only perform action when button is clicked, and wait until another press
int button_select_clicked = 0; // same as above
int button_down_clicked = 0; // same as above
int item_selected = 0; // which item in the menu is selected
int item_sel_previous; // previous item - used in the menu screen to draw the item before the selected one
int item_sel_next; // next item - used in the menu screen to draw next item after the selected one
int current_screen = 0; // 0 = menu, 1 = screenshot, 2 = qr
int servo_overideFlag = 0; // when demo mode is set to 1, it automatically goes over all the screens, 0 = control menu with buttons
int POT_X_PIN = A0;
int POT_Y_PIN = A1;
const int SERVO_MIN_ANGLE = 0;
const int SERVO_MAX_ANGLE = 180;
int rgb[3] = {0, 0, 0}; // RGB values
int selectedColor = 0; // Index of the selected color component (0 = Red, 1 = Green, 2 = Blue)
const int NUM_IMAGES = 2;
const unsigned char* images[NUM_IMAGES] = { select_bitmap_RGB, select_bitmap_LightON };
int currentIndex = 0;
int LightState = 0;
bool isButtonUpPressed = false; // Flag to indicate if the "Button up" is currently pressed
bool wasButtonUpPressed = false; // Flag to indicate if the "Button up" was previously pressed
bool switchedToScreen2 = false; // Flag to indicate if the screen has been switched to SCREEN_2
enum Screen { SCREEN_1, SCREEN_2 };
Screen currentScreen = SCREEN_1; // Start with the first screen
void drawScreen1() {
u8g.setFont(u8g_font_7x14);
u8g.drawStr(5, 10, "X: ");//X,Y
u8g.drawStr(55, 10, "Stuff");
u8g.drawStr(5, 25, "Y: ");
u8g.drawStr(55, 25, "Stuff");
u8g.drawStr(5, 40, "GPS: ");
u8g.drawStr(65, 40, "LOCATION");
u8g.drawStr(5, 55, "SD detected: ");
u8g.drawStr(90, 55, "Yes");
}
void drawScreen2() {
u8g.setFont(u8g_font_7x14);
u8g.drawStr(5, 10, "Car Battery: ");
u8g.drawStr(5, 25, "100%");
u8g.drawStr(5, 40, "Circuit Battery: ");
u8g.drawStr(5, 55, "100%");
}
void drawImage(const unsigned char* image) {
u8g.drawBitmapP(0, 0, 128 / 8, 64, select_bitmap_LightON); // Pots OFF | Gyro ON
u8g.drawStr(10, 45, "Working");
}
void setup() {
dist_step_01 = min_dist + round((max_dist - min_dist) / 4.0 * 1.0);
dist_step_02 = min_dist + round((max_dist - min_dist) / 4.0 * 2.0);
dist_step_03 = min_dist + round((max_dist - min_dist) / 4.0 * 3.0);
dist_step_04 = min_dist + round((max_dist - min_dist) / 4.0 * 4.0);
// initialize pins for sensors
sensor[0].echo_pin = sensor_01_ECHO_PIN;
sensor[0].trig_pin = sensor_01_TRIG_PIN;
sensor[1].echo_pin = sensor_02_ECHO_PIN;
sensor[1].trig_pin = sensor_02_TRIG_PIN;
sensor[2].echo_pin = sensor_03_ECHO_PIN;
sensor[2].trig_pin = sensor_03_TRIG_PIN;
// set pins to outputs and inputs - trigger is output, echo is input
pinMode(sensor[0].trig_pin, OUTPUT);
pinMode(sensor[0].echo_pin, INPUT);
pinMode(sensor[1].trig_pin, OUTPUT);
pinMode(sensor[1].echo_pin, INPUT);
pinMode(sensor[2].trig_pin, OUTPUT);
pinMode(sensor[2].echo_pin, INPUT);
// initialize label position data
// those are manualy defined in the Photoshop/Photopea file, since it´s just easier to do it that way instead of guessing the numbers
sensor[0].label_startpos_x = 41;
sensor[0].label_startpos_y = 20;
sensor[0].label_endpos_x = 30;
sensor[0].label_endpos_y = 58;
sensor[1].label_startpos_x = 63;
sensor[1].label_startpos_y = 23;
sensor[1].label_endpos_x = 63;
sensor[1].label_endpos_y = 60;
sensor[2].label_startpos_x = 85;
sensor[2].label_startpos_y = 20;
sensor[2].label_endpos_x = 97;
sensor[2].label_endpos_y = 57;
u8g.setFont(gamer_digits); // gamer digits font - manually generated, only includes digits
u8g.setColorIndex(1); // white color
Serial.begin(115200);
// define pins for buttons
// INPUT_PULLUP means the button is HIGH when not pressed, and LOW when pressed
// since it´s connected between some pin and GND
pinMode(BUTTON_UP_PIN, INPUT_PULLUP); // up button
pinMode(BUTTON_SELECT_PIN, INPUT_PULLUP); // select button
pinMode(BUTTON_DOWN_PIN, INPUT_PULLUP); // down button
pinMode(DEMO_PIN, INPUT_PULLUP);
pinMode(LightLED, OUTPUT);
}
void loop() {
xValue = analogRead(VRX_PIN);
int mappedValueXjoystick = map(xValue, 0, 1023, SERVO_MIN_ANGLE, SERVO_MAX_ANGLE);
yValue = analogRead(VRY_PIN);
int mappedValueYjoystick = map(yValue, 0, 1023, SERVO_MIN_ANGLE, SERVO_MAX_ANGLE);
int potValueY = analogRead(POT_Y_PIN); // Read the analog value from the potentiometer
int mappedValuePOTY = map(potValueY, 0, 1023, SERVO_MIN_ANGLE, SERVO_MAX_ANGLE); // Map the analog value to a range from 0 to 100
int potValueX = analogRead(POT_X_PIN); // Read the analog value from the potentiometer
int mappedValuePOTX = map(potValueX, 0, 1023, SERVO_MIN_ANGLE, SERVO_MAX_ANGLE); // Map the analog value to a range from 0 to 100
if (digitalRead(DEMO_PIN) == LOW) {
servo_overideFlag = 0;
}
else {
servo_overideFlag = 1;
}
if (current_screen == 0) { // MENU SCREEN
// up and down buttons only work for the menu screen
if ((digitalRead(BUTTON_UP_PIN) == LOW) && (button_up_clicked == 0)) { // up button clicked - jump to previous menu item
item_selected = item_selected - 1; // select previous item
button_up_clicked = 1; // set button to clicked to only perform the action once
if (item_selected < 0) { // if first item was selected, jump to last item
item_selected = NUM_ITEMS-1;
}
}
else if ((digitalRead(BUTTON_DOWN_PIN) == LOW) && (button_down_clicked == 0)) { // down button clicked - jump to next menu item
item_selected = item_selected + 1; // select next item
button_down_clicked = 1; // set button to clicked to only perform the action once
if (item_selected >= NUM_ITEMS) { // last item was selected, jump to first menu item
item_selected = 0;
}
}
if ((digitalRead(BUTTON_UP_PIN) == HIGH) && (button_up_clicked == 1)) { // unclick
button_up_clicked = 0;
}
if ((digitalRead(BUTTON_DOWN_PIN) == HIGH) && (button_down_clicked == 1)) { // unclick
button_down_clicked = 0;
}
}
if ((digitalRead(BUTTON_SELECT_PIN) == LOW) && (button_select_clicked == 0)) { // select button clicked, jump between screens
button_select_clicked = 1; // set button to clicked to only perform the action once
if (current_screen == 0) {current_screen = 1;} // menu items screen --> screenshots screen
else {current_screen = 0;} // qr codes screen --> menu items screen
}
if ((digitalRead(BUTTON_SELECT_PIN) == HIGH) && (button_select_clicked == 1)) { // unclick
button_select_clicked = 0;
}
// set correct values for the previous and next items
item_sel_previous = item_selected - 1;
if (item_sel_previous < 0) {item_sel_previous = NUM_ITEMS - 1;} // previous item would be below first = make it the last
item_sel_next = item_selected + 1;
if (item_sel_next >= NUM_ITEMS) {item_sel_next = 0;} // next item would be after last = make it the first
u8g.firstPage(); // required for page drawing mode for u8g library
do {
if (current_screen == 0) { // MENU SCREEN
// selected item background
u8g.drawBitmapP(0, 22, 128/8, 21, bitmap_item_sel_outline);
// draw previous item as icon + label
u8g.setFont(u8g_font_7x14);
u8g.drawStr(25, 15, menu_items[item_sel_previous]);
u8g.drawBitmapP( 4, 2, 16/8, 16, bitmap_icons[item_sel_previous]);
// draw selected item as icon + label in bold font
u8g.setFont(u8g_font_7x14B);
u8g.drawStr(25, 15+20+2, menu_items[item_selected]);
u8g.drawBitmapP( 4, 24, 16/8, 16, bitmap_icons[item_selected]);
// draw next item as icon + label
u8g.setFont(u8g_font_7x14);
u8g.drawStr(25, 15+20+20+2+2, menu_items[item_sel_next]);
u8g.drawBitmapP( 4, 46, 16/8, 16, bitmap_icons[item_sel_next]);
// draw scrollbar background
u8g.drawBitmapP(128-8, 0, 8/8, 64, bitmap_scrollbar_background);
// draw scrollbar handle
u8g.drawBox(125, 64/NUM_ITEMS * item_selected, 3, 64/NUM_ITEMS);
// draw upir logo
}
if (current_screen == 1) { // SELECT SCREEN
u8g.setFont(u8g_font_7x14);
if (item_selected == 0) {
do {
} while (u8g.nextPage());
} else if (item_selected == 1) {
// Values Screen
u8g.firstPage();
do {
isButtonUpPressed = (digitalRead(BUTTON_UP_PIN) == LOW);
bool isButtonDownPressed = (digitalRead(BUTTON_DOWN_PIN) == LOW);
// Check if the "Button up" was pressed and released
if (!isButtonUpPressed && wasButtonUpPressed) {
// Switch to SCREEN_2 and set the flag
currentScreen = SCREEN_2;
switchedToScreen2 = true;
}
// Check if the "Button down" is pressed and reset the flag
if (isButtonDownPressed) {
currentScreen = SCREEN_1;
switchedToScreen2 = false;
}
if (currentScreen == SCREEN_1) {
drawScreen1();
} else if (currentScreen == SCREEN_2) {
drawScreen2();
}
wasButtonUpPressed = isButtonUpPressed;
} while (u8g.nextPage());
} else if (item_selected == 2) {
// Sensor Switch
u8g.firstPage();
do {
if(servo_overideFlag == 1){
u8g.drawBitmapP(0, 0, 128/8, 64, epd_bitmap_potsONgyroOFF);// Pots ON | JOYSTICK OFF
char mappedValueYStr[4]; // POT Y
snprintf(mappedValueYStr, sizeof(mappedValueYStr), "%d", mappedValuePOTY);
char mappedValueXStr[4]; // POT X
snprintf(mappedValueXStr, sizeof(mappedValueXStr), "%d", mappedValuePOTX);
u8g.setFont(u8g_font_7x14B);
u8g.drawStr(50, 35, mappedValueXStr);//pot X
u8g.drawStr(50, 50, mappedValueYStr); // pot y
Serial.print("X:");
Serial.print(mappedValuePOTX);
Serial.print("\tY:");
Serial.println(mappedValuePOTY);
}else{
u8g.drawBitmapP(0, 0, 128/8, 64, epd_bitmap_potsOFFgyroON);// Pots OFF | JOYSTICK ON
char mappedValueXStr[4]; // POT Y
snprintf(mappedValueXStr, sizeof(mappedValueXStr), "%d", mappedValueXjoystick);
char mappedValueYStr[4]; // POT Y
snprintf(mappedValueYStr, sizeof(mappedValueYStr), "%d", mappedValueYjoystick);
u8g.setFont(u8g_font_7x14B);
u8g.drawStr(60, 40, mappedValueXStr);//joy X
u8g.drawStr(60, 55, mappedValueYStr); // joy y
Serial.print("X:");
Serial.print(mappedValueXjoystick);
Serial.print("\tY:");
Serial.println(mappedValueYjoystick);
}
} while (u8g.nextPage());
}else if (item_selected == 3) {
// RGB Settings
u8g.firstPage();
do {
u8g.drawBitmapP(0, 0, 128/8, 64, select_bitmap_RGB);
rgb[selectedColor] = mappedValuePOTX;
// Update the selected color component based on the button press
if (digitalRead(BUTTON_DOWN_PIN) == LOW) {
selectedColor = (selectedColor + 1) % 3;
delay(200); // Debounce the button
} else if (digitalRead(BUTTON_UP_PIN) == LOW) {
selectedColor = (selectedColor - 1);
if (selectedColor < 0) {
selectedColor = 2; // Set to the last color component index (B)
}
}
Serial.print("R: ");
Serial.print(rgb[0]);
Serial.print("\tG: ");
Serial.print(rgb[1]);
Serial.print("\tB: ");
Serial.println(rgb[2]);
for (int i = 0; i < 3; i++) {
if (i == selectedColor) {
u8g.setFont(u8g_font_7x14B);
char buffer[10];
snprintf(buffer, sizeof(buffer), "%d,", rgb[i]);
u8g.setFont(u8g_font_7x14);
u8g.drawStr(5, 30, "R:");
u8g.drawStr(5, 45, "G:");
u8g.drawStr(5, 60, "B:");
u8g.setFont(u8g_font_7x14B);
u8g.drawStr(20, 30 + i * 15, buffer);
u8g.setFont(u8g_font_6x10);
} else {
char buffer[10];
snprintf(buffer, sizeof(buffer), "%d,", rgb[i]);
u8g.drawStr(20, 30 + i * 15, buffer);
}
}
} while (u8g.nextPage());
}else if (item_selected == 4) {
// Light settings
u8g.firstPage();
do { if (digitalRead(BUTTON_UP_PIN) == LOW) {
button_up_clicked = true;
}
// Read the state of BUTTON_DOWN_PIN and store it in button_down_clicked variable
if (digitalRead(BUTTON_DOWN_PIN) == LOW) {
button_down_clicked = true;
}
// If either button is pressed, update the LED state accordingly
if (button_up_clicked || button_down_clicked) {
ledState = button_up_clicked; // Set LED state based on button_up_clicked
button_up_clicked = false; // Reset button_up_clicked to prevent continuous toggling
button_down_clicked = false; // Reset button_down_clicked to prevent continuous toggling
}
// Set the LED state according to ledState variable
// Display the appropriate bitmap based on the LED state
if (ledState) {
u8g.drawBitmapP(0, 0, 128 / 8, 64, select_bitmap_LightON); // LIGHT ON
Serial.println("LED: ON");
LightState = 1;
} else {
LightState = 0;
u8g.drawBitmapP(0, 0, 128 / 8, 64, select_bitmap_LightOFF); // LIGHT OFF
Serial.println("LED: OFF");
}
} while (u8g.nextPage());
}else if (item_selected == 5) {
// gps speed
u8g.firstPage();
do {
u8g.drawBitmapP(0, 0, 128/8, 64, select_bitmap_RGB);
} while (u8g.nextPage());
}else if (item_selected == 6) {
// Parking Sensor
u8g.firstPage();
do {
for (int i=0; i<NUMBER_OF_SENSORS; i++) { // for each sensor
// MEASURE DISTANCES
// trigger the trigger pin for at least 10 microseconds
digitalWrite(sensor[i].trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(sensor[i].trig_pin, LOW);
// Read the result:
sensor[i].measured_distance_cm = pulseIn(sensor[i].echo_pin, HIGH); // pulseIn command will measure the time for the pulse on a defined pin
sensor[i].measured_distance_cm = round(sensor[i].measured_distance_cm * 0.0343 / 2.0); // speed of sound = 343m/s, has to travel back and forth, that´s why we divide it by 2
//Serial.print("Sensor ");
//Serial.print(i);
//Serial.print(" ");
//Serial.println(sensor[i].measured_distance_cm);
// calculate string width
itoa(sensor[i].measured_distance_cm, buffer, 10); // convert integer to C-style string
sensor[i].label_width = u8g.getStrWidth(buffer);
// calculate label positions
sensor[i].label_xpos = map(constrain(sensor[i].measured_distance_cm, min_dist, max_dist), min_dist, max_dist, sensor[i].label_startpos_x, sensor[i].label_endpos_x);
sensor[i].label_ypos = map(constrain(sensor[i].measured_distance_cm, min_dist, max_dist), min_dist, max_dist, sensor[i].label_startpos_y, sensor[i].label_endpos_y);
}
u8g.drawBitmapP( 36, 0, 56/8, 15, bitmap_car_image); // car image on top of the display
u8g.drawBitmapP( 104, 0, 24/8, 10, bitmap_sound_on); // sound on indicator - not doing anything for now
u8g.drawBitmapP( 0, 0, 24/8, 10, bitmap_unit_cm); // cm unit indicator - not doing anything for now
// individual pieces of the distance measurement in the 3*4 grid
u8g.drawBitmapP( 24, 17, 32/8, 14, sensor[0].measured_distance_cm > dist_step_01 ? bitmap_sensor_01_a_on : bitmap_sensor_01_a_off);
u8g.drawBitmapP( 21, 25, 32/8, 16, sensor[0].measured_distance_cm > dist_step_02 ? bitmap_sensor_01_b_on : bitmap_sensor_01_b_off);
u8g.drawBitmapP( 18, 34, 32/8, 17, sensor[0].measured_distance_cm > dist_step_03 ? bitmap_sensor_01_c_on : bitmap_sensor_01_c_off);
u8g.drawBitmapP( 16, 43, 32/8, 18, sensor[0].measured_distance_cm > dist_step_04 ? bitmap_sensor_01_d_on : bitmap_sensor_01_d_off);
u8g.drawBitmapP( 48, 23, 32/8, 9, sensor[1].measured_distance_cm > dist_step_01 ? bitmap_sensor_02_a_on : bitmap_sensor_02_a_off);
u8g.drawBitmapP( 48, 33, 32/8, 9, sensor[1].measured_distance_cm > dist_step_02 ? bitmap_sensor_02_b_on : bitmap_sensor_02_b_off);
u8g.drawBitmapP( 47, 42, 32/8, 10, sensor[1].measured_distance_cm > dist_step_03 ? bitmap_sensor_02_c_on : bitmap_sensor_02_c_off);
u8g.drawBitmapP( 42, 52, 40/8, 10, sensor[1].measured_distance_cm > dist_step_04 ? bitmap_sensor_02_d_on : bitmap_sensor_02_d_off);
u8g.drawBitmapP( 72, 17, 32/8, 14, sensor[2].measured_distance_cm > dist_step_01 ? bitmap_sensor_03_a_on : bitmap_sensor_03_a_off);
u8g.drawBitmapP( 74, 25, 32/8, 16, sensor[2].measured_distance_cm > dist_step_02 ? bitmap_sensor_03_b_on : bitmap_sensor_03_b_off);
u8g.drawBitmapP( 77, 34, 32/8, 17, sensor[2].measured_distance_cm > dist_step_03 ? bitmap_sensor_03_c_on : bitmap_sensor_03_c_off);
u8g.drawBitmapP( 80, 43, 32/8, 18, sensor[2].measured_distance_cm > dist_step_04 ? bitmap_sensor_03_d_on : bitmap_sensor_03_d_off);
for (int i=0; i<NUMBER_OF_SENSORS; i++) { // for all the sensors
u8g.setColorIndex(0); // black color
// draw box below the label
u8g.drawBox((sensor[i].label_xpos - sensor[i].label_width / 2) - 1 ,sensor[i].label_ypos - 4,sensor[i].label_width + 2, 8);
itoa(sensor[i].measured_distance_cm, buffer, 10); // convert integer to C-style string
u8g.setColorIndex(1); // white color
// draw the distance label
u8g.drawStr(sensor[i].label_xpos - sensor[i].label_width / 2, sensor[i].label_ypos - 3, buffer); // draw the label
}
} while (u8g.nextPage());
}
}
} while ( u8g.nextPage() ); // required for page drawing mode with u8g library
}